Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 581

 
Ihor Herasko:

Se você quiser levar uma vela M30 que fechou junto com a última vela H1 fechada, pode ser uma vela com índice não só 1, mas também 2. Outra coisa é que então não está claro porque o preço de fechamento da M30 é tomado, se é o mesmo preço de fechamento da vela H1 anterior. Ou seja, neste caso não faz sentido perguntar o preço de fechamento de outra TF, porque é o mesmo que o preço de fechamento da TF atual.

Exatamente o que precisamos saber é o preço de fechamento da M30 dentro do H1

Encontrei a razão, controle de abertura de barras. Obrigado.

 

Como no indicador comparar, no loop, o preço Alto[i+1] +/-10*Ponto com os fractais mais baixos?

se encontrado igual, colocar seta Buf_o[i+1]= Alto[i+1] ;.

 

Olá!

Quero escrever um código estratégico binário simples para testá-lo com o testador MetaTrader 4. Sei que o testador incorporado não testa completamente as estratégias binárias, mas só preciso conhecer a parte de negócios lucrativos durante o período de testes. Não sou capaz de estabelecer o prazo de validade de um acordo. Eu uso o operador OrderSend:

OrderSend(Symbol(),OP_BUY,1,Ask,10,0,0,0, "5",15167,Expiration,clrGreen);

Tudo funciona bem quando se realiza uma negociação automatizada, mas os termos do corretor especificam o prazo de expiração no comentário à posição. Neste caso, meu comentário é "5". São cinco minutos. Entretanto, o testador, é claro, não considera o comentário como uma indicação do prazo de validade. O testador não reage de forma alguma a diferentes valores do parâmetro Validade. Primeiro abre as negociações seguindo os sinais da estratégia e depois fecha todas as negociações abertas dentro do período de teste no momento do término do período de teste. Como resultado, o resultado dos testes é absolutamente incorreto.

Como especificar um período de validade compreensível para o testador? Eu ainda estou dominando a versão "antiga" do código.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
kirson-7:

Como posso estabelecer um período de validade que o testador possa entender?

Feche a posição se o tempo atual = tempo de abertura mais 5 minutos ou na abertura de um novo bar, se o tempo for M5.
 

Como faço para queHigh[i+1] +/-10*Point não seja exatamente igual ao preço do fractal?

 {
//---
   if(rates_total<2) return(0);

   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      // BufferUP[i+1]=EMPTY_VALUE;
      
      //
      for(int y=i+2;y<=i+100;y++)
        {
         if(low[i+1]==iFractals(Symbol(),0,MODE_HIGH,y))estb=true;
        }
      if(estb)
        {
         BufferUP[i+1]=low[i+1]-distance*Point;//НЕПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      estb=0;
      //==//
      for(int y=i+2;y<=i+100;y++)
        {
         if(high[i+1]==iFractals(Symbol(),0,MODE_LOWER,y))ests=true;
        }
      if(ests)
        {
         BufferDN[i+1]=high[i+1]+distance*Point;//ПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      ests=0;

      //Comment("");
     }
   return(rates_total);
  }
 
bij:

Como faço para queHigh[i+1] +/-10*Point não seja exatamente igual ao preço do fractal?

A diferença de valores é maior que 10* pontos, mas precisamos considerar se a diferença será positiva ou negativa.
 
bij:
Feche a posição se o tempo atual = tempo de abertura da posição mais 5 minutos ou na abertura de um novo bar, se o tempo for M5.
E por que o prazo de validade padrão na lista de parâmetros do operador OrderSend não pode funcionar? Está marcado como Expiração em meu exemplo.
 
kirson-7:
Por que o prazo de validade padrão na lista de parâmetros do operador OrderSend não pode funcionar? Está marcado como Expiração em meu exemplo.
Isto é para ordens pendentes
 
Por favor, ajude-me a escrever uma função: fechar pedidos de um lote maior para um lote menor (corda Símbolo, tipo int, pedidos de mão bool, int Magic)
Isto é, seleção do símbolo, tipo, se as ordens manuais são levadas em conta, número mágico.


 
Olá a todos: Posso prescrever em uma função definida pelo usuário abrindo uma posição(por exemplo, comprar no mercado), e chamar esta função quando houver sinais diferentes para comprar? Isto é, _Chamar um sinal MACD - endereço para esta função - posição aberta, _Chamar um sinal médio móvel - endereço para esta função - comprar novamente.... etc. Ou em cada caso específico, quando se trabalha o sinal, é necessário escrever OrderSand(Symbol,OP_BAI, etc.);