Como codificar? - página 201

 

Como melhorar estes resultados?!

Hi,

Estou escrevendo minha primeira EA que mostra parcialmente bons números nos testes anteriores. No entanto, não consigo descobrir como melhorar as partes ruins.

Em primeiro lugar, tem uma alta porcentagem de ganho de 86%, porém apenas um pequeno fator de lucro porque os negócios perdedores perdem muito mais do que os vencedores ganham!

Tenho um MM que não usa mais de 5% do saldo da conta por negociação e, sobre todas as negociações ativas, não mais de 11% do saldo da conta pode ser usado. Também acompanho todas as perdas.

Parece que estou fechando (OrderClose) os negócios vencedores muito cedo e cortando os negócios perdedores muito tarde (ou S/L eles).

Qual é uma boa estratégia para isso? Eu implementei algo como "não feche os negócios vencedores mesmo que haja um sinal de compra fechada", mas isso também não funcionou melhor!

Agradeceria qualquer dica! O relatório completo pode ser encontrado aqui.

 

a maneira mais fácil de adicionar um TP de 3 tubos para cada comércio manual?

eu preciso adicionar um 3 pip take-thar lucro no forex para cada operação manual inserida. qual é a maneira mais fácil de fazer isso? eu não tenho nenhuma habilidade de programação e não consigo encontrar nenhum valor padrão para definir nas opções do metatrader 4.

 

Reinicialização da ordem de parada de compra

Hi,

Escrevi este código e embora ele compila, não funciona. (O que significa que não apaga o ponto de compra).

Eu estava pensando que poderia haver algo de errado com a declaração "para", mas sou bastante novo, portanto não tenho certeza.

Se alguém pudesse me apontar o problema, eu realmente apreciaria.

obrigado

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

 
asgard2:
Hi,

Escrevi este código e embora ele compila, não funciona. (O que significa que não apaga o ponto de compra).

Eu estava pensando que poderia haver algo de errado com a declaração "para", mas sou bastante novo, portanto não tenho certeza.

Se alguém pudesse me apontar o problema, eu realmente apreciaria.

obrigado

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

[/code]

[CÓDIGO] if( StopResetMinutes > 0)

{

total = EncomendasTotal();

if(total>0)

para(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}
 
asgard2:
Hi,

Escrevi este código e embora ele compila, não funciona. (O que significa que não apaga o ponto de compra).

Se você quiser fechar os pedidos de COMPRA ou VENDA, você tem que usar a função OrderClose().

 
okfar:

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

Estou trabalhando nisto há dois dias e você resolveu em poucos segundos.

Obrigado, obrigado, obrigado... Obrigada e obrigada...

Espero parecer grato porque estou entusiasmado!

Abraço

 

Prezados todos,

Tenho uma pergunta simples, acho eu.

Tenho um indicador que me notifica com um pop-up (alerta) e queria acrescentar um som personalizado (que não o padrão de alerta.wav).

Notei que uma vez que o evento acontece e o alerta aparece, não importa o som "personalizado" que programei no indicador, o Metatrader 4 irá SEMPRE tocar o som que designei para alerta (o padrão é alert.wav, veja o menu Ferramentas>Opções>Eventos do MT4).

É possível programar o indicador de tal forma que eu obtenha um alerta visual E um alerta sonoro personalizado...?

Muito obrigado antecipadamente...!

 

Na verdade, você pode pegar qualquer som e chamá-lo de alert.wav e substituir o arquivo original.

 

Alerta personalizado de mudança

Snowski:
Prezados todos,

Tenho uma pergunta simples, acho eu.

Tenho um indicador que me notifica com um pop-up (alerta) e queria acrescentar um som personalizado (que não o padrão de alerta.wav).

Notei que uma vez que o evento acontece e o alerta aparece, não importa o som "personalizado" que programei no indicador, o Metatrader 4 irá SEMPRE tocar o som que designei para alerta (o padrão é alert.wav, veja o menu Ferramentas>Opções>Eventos do MT4).

É possível programar o indicador de tal forma que eu obtenha um alerta visual E um alerta sonoro personalizado...?

Muito obrigado de antemão!

Olá Snowski,

Try............

se (alert_ON == verdadeiro) // para ligar ou desligar o alerta sonoro

{

Alerta ("Key in you custom PopUp Here",Symbol(),"-",TimeFrame);

PlaySound("custom.wav");

}

Não sou tão bom em codificação, mas você pode tentar isso como deve funcionar. o .wav personalizado, você pode inserir seu próprio nome de arquivo no ("??????.wav")

se você quer ser capaz de ativar e desativar o alerta, você também precisa acrescentar

alerta de bool externo_ON = Verdadeiro; // ou falso no início de seu código indicador

 

Função de histórico

Hi,

Eu tenho este código abaixo. Estou tentando implementar um atraso entre minhas ordens de compra no caso de elas serem apagadas. Eu nunca usei a função de histórico antes.

Não consigo compilá-la por causa de um erro de parênteses desequilibrados, alguém pode me dizer por que eles são desequilibrados?

Além disso, alguém pode me dizer se estou no caminho certo ou se eu deveria estar olhando para outra maneira de fazer isso?

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

Print("Access to history failed (",GetLastError(),")"); break;

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Obrigado

Razão: