Expert Advisors: Alexav SpeedUp M1

 

Alexav SpeedUp M1:

Gleichzeitiges Öffnen zweier Gegenpositionen Trailing Stop.


Autor: Vladimir Karputov

[Gelöscht]  
Warum haben sie echte Zecken hinzugefügt, die alle Strategien verderben? ))
 
Maxim Dmitrievsky:
Warum haben sie echte Zecken hinzugefügt, die alle Strategien ruinieren? ))

Wahrscheinlich, damit der Markt nicht voll von Tester-Grails ist =)

 
Vitaly Muzichenko:

Wahrscheinlich, damit der Markt nicht voll von Tester-Grails ist =)

Ja!!!

 
Eine Erklärung für diese Diskrepanz wurde nicht gegeben. An welcher Stelle genau schauen die erzeugten Zecken in die Zukunft?
 
//+------------------------------------------------------------------+
|| Nachlaufend|
//+------------------------------------------------------------------+
void Trailing()
  {
   if(InpTrailingStop==0)
      return;
   for(int i=PositionsTotal()-1;i>=0;i--) // gibt die Anzahl der offenen Positionen zurück
      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());
                    }
              }

           }
  }

Was ist der Sinn des hervorgehobenen Textes?

Als das Original geschrieben wurde (2007), gab es noch kein MQL5 und dementsprechend auch keine strict-directive in MQL4. Deshalb gibt es dort ein viel verschachteltes if-Konstrukt. Im Moment ist das schon lange ein Rudiment. Und da die KB Trainingsfunktionen mit sich führt, gibt es keinen Grund, dieses Relikt in MQL5 zu schleppen, um sich nicht bei Programmierern anderer Sprachen lächerlich zu machen.


Wenn das Original in das aktuelle strcit-MQL4 umgeschrieben wird, wird sein Quellcode um das 1,5-2fache reduziert. In diesem Sinne ist die MT5-Variante ***looks *** - 4 mal größer als das Original (das noch im alten MQL4 ist). Warum beharrlich eine solche Anti-Werbung für MT5 machen!

 
fxsaber:
Eine Erklärung für diese Diskrepanz wurde nicht gegeben. An welcher Stelle genau befindet sich der Blick in die Zukunft der erzeugten Ticks?

Es klang vor langer Zeit, hier, Abschnitt "Referenzpunkte".

 

Dadurch wird kein Handel auf meinem 5-stelligen ECN-Konto platziert.


m

 
moneyfoundbymichael :

Dadurch wird kein Handel auf meinem 5-stelligen ECN-Konto platziert.


m

Wenn Sie nicht handeln - dann natürlich: es wird nicht beeinflussen :)