Discussão do artigo "Criando um EA gradador multiplataforma (Parte III): grade baseada em correções com martingale" - página 5

 
Ben Shapiro:

Sempre que tento testar isso em dados históricos, obtenho o resultado:

2019.08.17 20:38:02.707 2018.11.18 22:23:30 failed market sell 0.01 XXX [Unsupported filling mode]

Isso acontece para qualquer símbolo que eu escolher (FX ou ações). Nenhuma negociação é realizada. Qual poderia ser o problema?


Você pode tentar modificar o parâmetro de entrada "Order filling mode". Deixe-o atender às especificações do símbolo de sua corretora.

Como verificar o modo de preenchimento do símbolo:

Vá para "Market Watch" (Observação do mercado) -> Selecione o símbolo e clique com o botão direito do mouse -> Clique no item de menu "Specification..." (Especificação) -> Verifique a descrição "Filling" (Preenchimento).

 

Você não acha que um takeout muito maior é uma forma de fracassar?

O que impede a negociação com lucro no canal, por exemplo, 20 pips de stop and take e 20 pips de take?

A conta no real está esgotada - não excluo pelo menos por causa disso...

" O segundo sinal foi aberto recentemente em uma conta real. No momento em que escrevo, ele está sendo negociado apenas em instrumentos do mercado de ações: SBUX, MCD, KO, MSFT, NKE, ORCL, ADBE, CMCSA, LLY, HPE."

Um takeout distante - fala de ganância, eu acho que, antes de tudo, e especialmente como você descreveu no artigo, o volume inicial do preço leva muito tempo para chegar a esse takeout....

 
Por que esse EA não consegue concluir o teste no MT5? Os registros não mostram erros, apenas recotações constantes, mas nenhuma transação. Você pode me dizer o que está acontecendo?
 
Ben Shapiro:

Sempre que tento testar isso em dados históricos, obtenho o resultado:

2019.08.17 20:38:02.707 2018.11.18 22:23:30 failed market sell 0.01 XXX [Unsupported filling mode]

Isso acontece para qualquer símbolo que eu escolher (FX ou ações). Nenhuma negociação é realizada. Qual poderia ser o problema?


Leia o código-fonte, Luke!

switch(useORDER_FILLING_RETURN){
   case FOK:
      mrequest.type_filling = ORDER_FILLING_FOK;
      break;
   case RETURN:
      mrequest.type_filling = ORDER_FILLING_RETURN;
      break;
   case IOC:
      mrequest.type_filling = ORDER_FILLING_IOC;
      break;
}

O código é muito bom. Escolha seu modo de preenchimento. Compatível com corretores :)

 
Arthur Albano:

Leia a fonte, Luke!

O código é muito bom. Escolha seu modo de preenchimento. Compatível com corretores :)

O código é muito bom para uma plataforma cruzada, com séries temporais e tudo mais, MAS, estou tentando descobrir qual preço de compra/venda meu testador MT4 (versão 1260) obtém para que esse código abra negociações. Cada tentativa de OrderSend termina com o erro 138 (New Prices), como se a estrutura MqlTick produzisse um Ask/Bid errado para o tick... ou está obtendo os dados de períodos de tempo alternativos? - Executei-o em todos os mesmos períodos de tempo que o tf operacional, e continua a mesma coisa.

Alguém aqui que testou o EA teve um problema semelhante e qual pode ser o motivo do erro 138 no testador?

Além disso, como o problema acima, o preenchimento de uma ordem a preço de mercado (como poderia ser a única opção para um corretor/instrumento) não parece ser uma opção nesse EA, pelo menos para a compilação MQL4:

#ifdef __MQL5__ 
   #include <Trade\Trade.mqh>
   CTrade Trade;

   enum TypeOfFilling // Modo de preenchimento
     {
      FOK,//ORDER_FILLING_FOK
      RETURN,// ORDER_FILLING_RETURN
      IOC,//ORDER_FILLING_IOC
     }; 
   input TypeOfFilling  useORDER_FILLING_RETURN=FOK; // Modo de preenchimento de pedidos
#endif 

(mas eu não deveria mostrar minha arrogância perguntando se essa opção é necessária para a plataforma MT5... ;-)


Além disso, como não sou programador, encontrei um exemplo de código em que se postula que ...'A execução em cada tick de entrada é obrigatória para o testador de estratégia, mas o processamento em tempo real é melhor no evento Timer - padrão de 200 ms.' Como isso pode afetar o desempenho do EA, especialmente em um período de tempo múltiplo como este?

Obrigado por qualquer comentário sobre o assunto acima.

The Fundamentals of Testing in MetaTrader 5
The Fundamentals of Testing in MetaTrader 5
  • www.mql5.com
The idea of ​​automated trading is appealing by the fact that the trading robot can work non-stop for 24 hours a day, seven days a week. The robot does not get tired, doubtful or scared, it's is totally free from any psychological problems. It is sufficient enough to clearly formalize the trading rules and implement them in the algorithms, and...
 
rmshau:

O código é muito bom para uma plataforma cruzada, com séries temporais e tudo mais, MAS, estou tentando descobrir qual preço de compra/venda meu testador MT4 (build 1260) obtém para esse código abrir negociações. Cada tentativa de OrderSend termina com o erro 138 (New Prices), como se a estrutura MqlTick produzisse um Ask/Bid errado para o tick... ou está obtendo os dados de períodos de tempo alternativos? - Eu o executei em todos os mesmos períodos de tempo que o tf operacional, e continua a mesma coisa.

Alguém aqui que testou o EA teve um problema semelhante e qual pode ser o motivo do erro 138 no testador?

Além disso, como o problema acima, o preenchimento de uma ordem a preço de mercado (como poderia ser a única opção para um corretor/instrumento) não parece ser uma opção nesse EA, pelo menos para a compilação MQL4:

(mas eu não deveria mostrar minha arrogância perguntando se essa opção é necessária para a plataforma MT5... ;-)


Além disso, como não sou programador, deparei-me com um exemplo de código em que se postula que ...'A execução em cada tick de entrada é obrigatória para o testador de estratégia, mas o processamento em tempo real é melhor no evento Timer - padrão de 200 ms.' Como isso pode afetar o desempenho do EA, especialmente em um período de tempo múltiplo como este?

Obrigado por qualquer comentário sobre o assunto acima.

Este tópico é sobre MQL5, você não parece saber qual plataforma está usando.

Qualquer assunto relacionado ao MT4 deve ser publicado na seção MT4.

 
Foi o que aconteceu com o meu.
 
fxsaber número de negociações cai.

Também é possível retirar esses retornos diretamente no testador, criando um TS comum em uma linha.

Conclusão.

Como resultado, não consigo entender onde estou errado em minha conclusão. Todos os TSs de recarga são uma espécie de autoengano - redução de lucros. Não estou falando sobre a drenagem na forma de pôquer, mas sobre a redução do lucro. Afinal de contas, é possível retirar uma TS mais lucrativa de qualquer TS de recarga. Parece que tudo está logicamente correto nessa conclusão. Mas não consigo entender por que não tenho certeza, já que fiz esse experimento.

Não estou vendo a mesma conclusão. A entrada número dois não tem memória, assim como as seguintes, o que significa que seu MO é o mesmo de qualquer outra entrada nesse TC, ou seja, zero. Isso é como esperar pelo quinto preto depois do quarto vermelho, só que a probabilidade de 5 vermelhos seguidos é insignificante. Na realidade, temos os mesmos 50/50, o que significa que negociar com Martin ou com uma grade desse tipo requer um capital infinito para obter um retorno fixo garantido.

 
Vasiliy Sokolov #:

Não vejo a mesma conclusão. A entrada número dois não tem memória, assim como as seguintes, e, portanto, seu MO é o mesmo de qualquer outra entrada nesse TS, ou seja, igual a zero. É como esperar pelo quinto preto depois do quarto vermelho, apenas porque a probabilidade de 5 vermelhos seguidos é insignificante. Na realidade, temos os mesmos 50/50, o que significa que negociar com Martin ou com essa grade requer um capital infinito para obter um retorno fixo garantido.

Acho que você interpretou mal minhas palavras.

 
igual a