Discussão do artigo "Guia passo a passo para iniciantes para escrever um Expert Advisor no MQL5" - página 20

 
Srta. fox pro, ma esses eram os dias
 

Portanto, agora reconstruí o EA.

É claro que ele não élucrativo, mas pelo menos está legível (para mim).

Boa sorte ao continuar com ele.

Arquivos anexados:
 
Otto Pauser:

Portanto, agora reconstruí o EA.

É claro que ele não é lucrativo, mas pelo menos está legível (para mim).

Boa sorte ao continuar com ele.

MUITO OBRIGADO POR ISSO!

Diga adeus às minhas férias sem notebook por enquanto

 
vmajor:

Olá, sou novo, ótimo guia, obrigado!


Mas estou com um problema. Compilei o exemplo fornecido, executei o depurador, os pontos de interrupção funcionaram, retomei a depuração e recebo 4756 erros nas ordens de compra e venda, como este:



O que pode estar acontecendo e o que devo verificar para corrigir esse comportamento?


V.


É um bug no EA. Dê uma olhada na página 2, onde está a solução.

Melhor abordagem: usar a classe https://www.mql5.com/pt/docs/standardlibrary/tradeclasses/ctrade.

Documentation on MQL5: Standard Library / Trade Classes / CTrade
Documentation on MQL5: Standard Library / Trade Classes / CTrade
  • www.mql5.com
Standard Library / Trade Classes / CTrade - Reference on algorithmic/automated trading language for MetaTrader 5
 

O EA está abrindo muitas posições, tanto de compra quanto de venda.

A melhor maneira de corrigir isso é a seguinte:

if(Buy_Condition_1 && Buy_Condition_2)

{

if(Buy_Condition_3 && Buy_Condition_4)

{

// alguma posição de compra aberta?

if(Buy_opened || Sell_opened)

{

Alert("We already have a open Position!!!");

return; // Não abra uma nova posição de compra

}

--------------- O mesmo se aplica à posição de venda-----------------------


O código original abaixo abre várias posições:

if(Buy_Condition_1 && Buy_Condition_2)

{

if(Buy_Condition_3 && Buy_Condition_4)

{

// alguma posição de compra aberta?

if(Buy_opened ) //Erro, deveria ser: if(Buy_opened || Sell_opened)

Alert("We already have a open Position!!!");

return; // Não abra uma nova posição de compra

}

 
chucks4sure:

Edite sua publicação e use o botão de código (Alt + S) ao publicar o código.

 
Alguém poderia me ajudar na execução de otimização do EA?
Quais o valor inicial, final e passo que eu utilizo?
Posso utilizar otimização genética?
 
Já que mais pessoas estão vindo aqui, bom artigo, bom trabalho))))) Pergunta: está correto, no artigo, calcular o preço de abertura da ordem, o stoploss e o take profit para compra a partir do preço de venda e para venda a partir do preço de compra? Parece estar correto para o preço de abertura da ordem de compra - ask, mas o stoploss e o takeprofit são calculados a partir do preço de oferta? Afinal, a ordem de compra fecha no preço de oferta. Peço desculpas por meus termos em russo.
 
VikMorroHun:


É um bug no EA. Dê uma olhada na página 2, onde está a solução.

Melhor abordagem: usar a classe https://www.mql5.com/pt/docs/standardlibrary/tradeclasses/ctrade.



Recebi o erro 4756, vi a solução na página 2 e verifiquei o código original, havia ZeroMemory(mrequest); na própria linha 218, mas continuo com o erro 4756.

 
wefgoncalves:
Alguém poderia me ajudar na execução de otimização do EA?
Quais o valor inicial, final e passo que eu utilizo?
Posso utilizar otimização genética?

Olá! meu amigo, sou iniciante também mas tem um canal no Youtube que me ajudou bastante sobre otimização, o canal do Vilela!

Encontrei bastante coisa útil por lá com didática excelente, posso te chamar no bate papo para trocarmos experiências?
bons estudos!!!