Asesores Expertos: Alexav SpeedUp M1

 

Alexav SpeedUp M1:

Apertura simultánea de dos posiciones opuestas. Trailing de posiciones.


Autor: Vladimir Karputov

[Eliminado]  
¿Por qué añadieron ticks reales que arruinan todas las estrategias? ))
 
Maxim Dmitrievsky:
¿Por qué añadieron ticks reales que arruinan todas las estrategias? ))

Probablemente para que el mercado no esté lleno de grails probadores =)

 
Vitaly Muzichenko:

Seguramente para que el mercado no esté plagado de grails tester =)

¡¡¡Sí!!!

 
No se ha dado ninguna explicación para esta discrepancia. ¿En qué lugar exactamente los ticks generados miran hacia el futuro?
 
//+------------------------------------------------------------------+
|| Trailing|
//+------------------------------------------------------------------+
void Trailing()
  {
   if(InpTrailingStop==0)
      return;
   for(int i=PositionsTotal()-1;i>=0;i--) // devuelve el número de posiciones abiertas
      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());
                    }
              }

           }
  }

¿Cuál es el sentido de lo destacado?

Cuando se escribió el original (2007), no había MQL5 y, en consecuencia, no había directiva estricta en MQL4. Es por eso que hay mucho anidada si la construcción allí. Por el momento, esto ha sido durante mucho tiempo un rudimento. Y puesto que la KB lleva funciones de entrenamiento, no hay necesidad de arrastrar esta reliquia a MQL5, para no causar el ridículo entre los programadores de otros lenguajes.


Si el original se reescribe al strcit-MQL4 actual, su código fuente se reducirá en 1,5-2 veces. En este sentido, la variante MT5 es ***parece *** - 4 veces más grande en tamaño que el original (esto es todavía en el antiguo MQL4). ¡Por qué persistentemente hacer tal anti-anuncio de MT5!

 
fxsaber:
No se ha dado ninguna explicación para esta discrepancia. ¿En qué lugar está exactamente el mirar hacia el futuro de los ticks generados?

Sonaba hace tiempo, aquí, sección "Puntos de referencia".

 

Esto no colocará una operación en mi cuenta ECN de 5 dígitos.


m

 
moneyfoundbymichael :

Esto no colocará una operación en mi cuenta ECN de 5 dígitos.


m

Si no el comercio - a continuación, por supuesto: no afectará :)