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

 
Igor Makanu:

O mais provável é que você precise da variante 1, então no indicador no ciclo de cálculo, onde você procura por barras, você usa a seguinte estrutura:

Você tem o tempo necessário no Tempo[i] após verificar a condição

Obrigado por sua resposta. Uso a funçãoCheckTimer() onde passoa hora de início, hora de fim como data.TimeDayOfWeek()retorna valores de 1 a 5 como eu o entendo. Como posso convertê-los para o formato de data para usá-los na funçãoCheckTimer()? Ou terei que modificar esta função também?

 
Gerkl:

Obrigado pela resposta. Eu uso a funçãoCheckTimer() onde eu passo ahora inicial, a hora final como data.TimeDayOfWeek()retorna valores de 1 a 5, como eu entendo. Como posso convertê-los para o formato de data para usá-los na funçãoCheckTimer()? Ou terei que modificar esta função também?

Que tal isto

int   shift = iBarShift(NULL,PERIOD_W1,Time[i]);  
  
datetime startTime = iTime(NULL,PERIOD_W1,shift); 
datetime endTime = startTime + PeriodSeconds(PERIOD_W1); 
 
Alekseu Fedotov:

Talvez sim

Obrigado, mas isso se mostra durante toda a semana de domingo a domingo e eu preciso de segunda a sexta-feira (semana de negociação).


Semana

 

Qual é a melhor maneira de colocar 10 cópias da mesma EA em uma EA, mas com parâmetros diferentes?


Eu acho que sim...
O código completo da EA em uma função.
E basta fazer os parâmetros de entrada dos parâmetros EA da função.

Em Ontick, basta registrar a função 10 vezes, com parâmetros diferentes.


E devemos dividir as ordens através de comentários.
Prescrever diferentes comentários para diferentes cópias da EA.

 
multiplicator:

Qual é a melhor maneira de colocar 10 cópias da mesma EA em uma EA, mas com parâmetros diferentes?


Eu acho que sim...
O código completo da EA em uma função.
E basta fazer os parâmetros de entrada dos parâmetros EA da função.

Em Ontick, basta reescrever a função 10 vezes, com parâmetros diferentes.


E devemos dividir as ordens através de comentários.
Escreveremos diferentes comentários para diferentes cópias da EA.

É melhor fazer Majiks diferentes

 
Vladimir Pastushak:

É melhor fazer o Mejis diferente

Por que melhor?
É que talvez ainda haja outro comércio de EA lá.
 
Gerkl:

Obrigado, mas é assim que mostra a semana inteira de domingo a domingo, enquanto eu preciso de segunda a sexta-feira (semana de negociação).

Se isso lhe convém, acrescente 5 dias em segundos = 5 * 24 * 60 * 60 e você terá o horário de início da sexta-feira.

é difícil adivinhar o que você precisa, mas é sempre mais confiável usar o tempo de abertura de um bar em TF


multiplicador:
por que melhor?
apenas talvez ainda haja outra EA negociando lá.

Como o comentário do pedido não é confiável, alguns servidores sobrescrevem o comentário às 0 horas ou anexam informações proprietárias a ele.

magik é confiável, você não sente pena dos números? magik é do tipo int - leia em sua ajuda qual é o número máximo que você pode armazenar em int.... você tem números mágicos suficientes para vários bilhões de Consultores Especialistas... não seja ganancioso, gaste os números mágicos ))))

 
Igor Makanu:

porque o comentário do pedido não é confiável, alguns servidores sobrescrevem o comentário às 0 horas ou anexam informações de serviço a ele

wizard é confiável, você não sente pena dos números? wizard é do tipo int - leia em sua ajuda qual número máximo pode ser armazenado em int.... você tem números mágicos suficientes para vários bilhões de EAs... não seja ganancioso, gaste números mágicos ))))

Eu tenho um estereótipo: um EA - um número mágico.


Você não terá que fechar todas as ordens da coruja, então você também não precisa de um magik comum para a coruja.

 

Olá, eu preciso de alguns conselhos. Este Consultor Especialista que encerra todas as posições sobre Lucro Líquido tem deslizes freqüentes. Isto é, o lucro atinge um certo valor, as negociações são então fechadas, então não, não desde a primeira vez, em geral

extern double EquityProfit  = 1.2;

int start()
  {
   Comment("" ,AccountName(),"\n""ACCOUNT"  ,AccountNumber(),"\n""FREE MARGIN"  ,AccountFreeMargin(),"\n""EQUITY"  ,AccountEquity(),"\n""BALANCE"  ,AccountBalance());

   if(AccountEquity() > AccountBalance()*EquityProfit)
     {
      int total=OrdersTotal();

      for(int i=total-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS)==true)
           {
            int type=OrderType();

            bool result=false;

            switch(type)
              {
               case OP_BUY       : result=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Red);
               break;
               case OP_SELL      : result=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5,Red);
              }

            if(result==false)
              {
               Sleep(0);
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
 
Vladimir Baskakov:

Olá, eu preciso de alguns conselhos. Este Consultor Especialista que encerra todas as posições sobre Lucro Líquido tem deslizes freqüentes. Ou seja, o lucro atinge o valor especificado, as negociações são então fechadas, depois não.

Você tem que consertar o excesso de equidade usando a bandeira

Depois é preciso fechar todos os pedidos até que cheguem a 0 e inverter a bandeira.

Agora, uma parte dos pedidos fechou e outra parte não. O capital próprio mudou e, como resultado, a condição não funciona corretamente no próximo tick.

Razão: