Especialistas: Alexav SpeedUp M1

 

Alexav SpeedUp M1:

Abertura simultânea de duas posições opostas. Trailing de posições.


Autor: Vladimir Karputov

[Excluído]  
Por que eles adicionaram ticks reais que arruinam todas as estratégias? ))
 
Maxim Dmitrievsky:
Por que eles adicionaram ticks reais que arruinam todas as estratégias? ))

Provavelmente para que o mercado não fique cheio de grails de teste =)

 
Vitaly Muzichenko:

Provavelmente para que o mercado não fique repleto de grails de teste =)

Sim!!!

 
Não foi dada nenhuma explicação para essa discrepância. Em que lugar exatamente os ticks gerados olham para o futuro?
 
//+------------------------------------------------------------------+
|| Trailing|
//+------------------------------------------------------------------+
void Trailing()
  {
   if(InpTrailingStop==0)
      return;
   for(int i=PositionsTotal()-1;i>=0;i--) // retorna o número de posições abertas
      if(m_position.SelectByIndex(i))
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
           {
            if(m_position.PositionType()==POSITION_TYPE_BUY)
              {
               if(m_position.PriceCurrent()-m_position.PriceOpen()>ExtTrailingStop+ExtTrailingStep)
                  if(m_position.StopLoss()<m_position.PriceCurrent()-(ExtTrailingStop+ExtTrailingStep))
                    {
                     if(!m_trade.PositionModify(m_position.Ticket(),
                        m_symbol.NormalizePrice(m_position.PriceCurrent()-ExtTrailingStop),
                        m_position.TakeProfit()))
                        Print("Modify ",m_position.Ticket(),
                              " Position -> false. Result Retcode: ",m_trade.ResultRetcode(),
                              ", description of result: ",m_trade.ResultRetcodeDescription());
                     continue;
                    }
              }
            else
              {
               if(m_position.PriceOpen()-m_position.PriceCurrent()>ExtTrailingStop+ExtTrailingStep)
                  if((m_position.StopLoss()>(m_position.PriceCurrent()+(ExtTrailingStop+ExtTrailingStep))) || 
                     (m_position.StopLoss()==0))
                    {
                     if(!m_trade.PositionModify(m_position.Ticket(),
                        m_symbol.NormalizePrice(m_position.PriceCurrent()+ExtTrailingStop),
                        m_position.TakeProfit()))
                        Print("Modify ",m_position.Ticket(),
                              " Position -> false. Result Retcode: ",m_trade.ResultRetcode(),
                              ", description of result: ",m_trade.ResultRetcodeDescription());
                    }
              }

           }
  }

Qual é o objetivo do destaque?

Quando o original foi escrito (2007), não havia MQL5 e, consequentemente, nenhuma diretiva estrita em MQL4. É por isso que existe uma construção if muito aninhada. No momento, isso tem sido um rudimento. E como a KB carrega funções de treinamento, não há necessidade de arrastar essa relíquia para a MQL5, para não causar ridículo entre os programadores de outras linguagens.


Se o original for reescrito para o strcit-MQL4 atual, seu código-fonte será reduzido em 1,5 a 2 vezes. Nesse sentido, a variante MT5 é ***parece *** - 4 vezes maior em tamanho do que o original (isso ainda está no antigo MQL4). Por que fazer persistentemente essa anti-propaganda do MT5?

 
fxsaber:
Não foi dada nenhuma explicação para essa discrepância. Em que lugar exatamente está o olhar para o futuro dos ticks gerados?

Parecia estar há muito tempo, aqui, na seção "Pontos de referência".

 

Isso não colocará uma negociação em minha conta ECN de 5 dígitos.


m

 
moneyfoundbymichael :

Isso não colocará uma negociação em minha conta ECN de 5 dígitos.


m

Se você não negociar, é claro que isso não afetará :)