Diskussion zum Artikel "MQL5 Cookbook: Wie man bei der Einrichtung/Änderung von Handelsstufen Fehler vermeidet" - Seite 2

 
tatankaska:
Hallo, beim Testen Ihres Expert Advisors im Strategietester auf GOLD erhielt ich immer die Meldungen Failed to open position - Invalid stops - no positions were opened. Was war falsch? Wurde er geschrieben, um diese Art von Fehler zu vermeiden?
Ich fürchte, wir brauchen etwas Code, um Ihnen zu helfen. Am wahrscheinlichsten ist, dass der Fehler in Ihrem Code vorhanden ist. Prüfen Sie, ob Ihre Stops größer sind als der zulässige Mindestabstand und ob Sie nicht zufällig Kauf- und Verkaufsstopps verlegt haben. Vergewissern Sie sich auch, dass Ihr Broker das Festlegen von Stops bei der Positionseröffnung zulässt - einige von ihnen verlangen, dass Stops nur bei bestehenden Positionen hinzugefügt werden (so genannte"Marktausführung").
 
marketeer:
Ich fürchte, wir brauchen etwas Code, um Ihnen helfen zu können. Am wahrscheinlichsten ist, dass der Fehler in Ihrem Code vorhanden ist. Prüfen Sie, ob Ihre Stops größer sind als der zulässige Mindestabstand und ob Sie nicht zufällig Kauf- und Verkaufsstopps verlegt haben. Vergewissern Sie sich auch, dass Ihr Broker das Festlegen von Stops bei der Positionseröffnung zulässt - einige von ihnen verlangen, dass Stops nur zu bestehenden Positionen hinzugefügt werden (so genannte"Marktausführung").

Hallo, ich habe nur den Expert Advisor getestet, der dem Artikel How to avoid errors when setting/modifying trade level beigefügt ist, ohne jegliche Änderung (Positionpropertiesplus). Instatrader-Plattform von Instaforex. Die Funktionen in diesem Advisor sind so geschrieben, dass wenn ich falsche Stop-Parameter setze, diese auf den niedrigsten erlaubten Wert gesetzt werden. Normalerweise sollte ich also keine Fehlermeldung erhalten - das ist bei Forex-Paaren der Fall. Aber bei GOLD in dieser Plattform erhalte ich bei jedem Versuch von positionpropertiesplus EA, eine Position mit Stops zu eröffnen, die Fehlermeldung ungültige Stops und keine Position im Strategietester wurde eröffnet. Ist das der von Ihnen erwähnte Fall - ein Problem mit der Instatrader-Plattform und dem Broker? In GOLD symbol properties steht instant execution.

Hier ist ein Beispiel für eine Funktion zur Stoploss-Berechnung aus dem erwähnten EA - ich habe den EA, der dem erwähnten Artikel angehängt ist, ohne Änderungen verwendet, ich habe nur GOLD anstelle von Forex-Paaren verwendet:

//+------------------------------------------------------------------+

//| Berechnung des Stop-Loss-Wertes|

//+------------------------------------------------------------------+

double CalculateStopLoss(ENUM_ORDER_TYPE order_type)

  {

//--- Wenn Stop Loss erforderlich ist

   if(StopLoss>0)

     {

      //--- Für den berechneten Stop-Loss-Wert

      double sl=0.0;

      //--- Wenn Sie den Wert für eine BUY-Position berechnen müssen

      if(order_type==ORDER_TYPE_BUY)

        {

         // Berechnen Sie den Pegel

         sl=NormalizeDouble(sym_ask-CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Rückgabe des berechneten Wertes, wenn er niedriger ist als die untere Grenze der Haltestellenebene

         // Wenn der Wert höher oder gleich ist, wird der angepasste Wert zurückgegeben

         return(sl<sym_down_level ? sl : sym_down_level-sym_offset);

        }

      //--- Wenn Sie den Wert für eine SELL-Position berechnen müssen

      if(order_type==ORDER_TYPE_SELL)

        {

         //--- Berechnen Sie den Pegel

         sl=NormalizeDouble(sym_bid+CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Rückgabe des berechneten Wertes, wenn er höher ist als die Obergrenze der Haltestellenebene

         // Wenn der Wert kleiner oder gleich ist, wird der angepasste Wert zurückgegeben

         return(sl>sym_up_level ? sl : sym_up_level+sym_offset);

        }

     }

//---

   return(0.0);

  } 
 
tatankaska:
...

Forum zum Thema Trading, automatisierte Handelssysteme und Testen von Handelsstrategien


Hallo,

Bitte verwenden Sie die SRC-Schaltfläche, wenn Sie einen Code posten. Vielen Dank dafür.


Dieses Mal habe ich es für Sie bearbeitet.


 
tatankaska:

Hallo, ich habe nur den Expert Advisor getestet, der dem Artikel Wie vermeide ich Fehler bei der Einstellung/Änderung des Handelsniveaus, ohne jegliche Änderung (Positionpropertiesplus) beigefügt ist. Instatrader-Plattform von Instaforex. Die Funktionen in diesem Advisor sind so geschrieben, dass wenn ich falsche Stop-Parameter setze, diese auf den niedrigsten erlaubten Wert gesetzt werden. Normalerweise sollte ich also keine Fehlermeldung erhalten - das ist bei Forex-Paaren der Fall. Aber bei GOLD in dieser Plattform erhalte ich bei jedem Versuch von positionpropertiesplus EA, eine Position mit Stops zu eröffnen, die Fehlermeldung ungültige Stops und keine Position im Strategietester wurde eröffnet. Ist das der von Ihnen erwähnte Fall - ein Problem mit der Instatrader-Plattform und dem Broker? In GOLD symbol properties steht instant execution.

Hier ist ein Beispiel für eine Funktion zur Stoploss-Berechnung aus dem erwähnten EA - ich habe den EA im Anhang des erwähnten Artikels ohne jegliche Änderung verwendet, ich habe nur GOLD anstelle von Devisenpaaren verwendet:

Ja, das war der Fall. Bei GOLD in Instatrader konnten die Stops erst nach der Positionseröffnung gesetzt werden. Wenn die Position ohne Stops eröffnet und nach der Eröffnung geändert wurde, war alles in Ordnung. Vielen Dank, Leute.
 

Noch einmal zur Berechnung der Stops (SL/TP) im angehängten EA - sie werden nur bei Instrumenten korrekt berechnet, bei denen Symbolpunkt = Symboltickgröße. Das ist bei GOLD nicht der Fall.

Stops müssen in diesem Fall (von GOLD) auf gültige Symbol-Tick-Size korrigiert werden, sonst erhalten Sie die Fehlermeldung - ungültige Stops.

Die Fehlermeldungen von GOLD sind also nicht das Ergebnis der Marktausführung. EA braucht eine kleine Korrektur in der Berechnung von SL/TP, wenn Sie es mit GOLD verwenden wollen.

 
Was ist mit dem Schließen einer Position? Wenn es Bedingungen (Signale) für das Schließen von Positionen im Expert Advisor gibt, wie kann man das machen, wo kann ich solche Beispiele sehen?
 
Nauris:
Was ist mit dem Schließen einer Position? Wenn es Bedingungen (Signale) für das Schließen von Positionen im Expert Advisor gibt, wie kann man das machen, wo kann ich solche Beispiele sehen?
In diesem Artikel wird die Klasse CTrade aus der Standardbibliothek verwendet. Sie verfügt über die Methode PositionClose. Sie können sie verwenden.
 
Ich ändere den Code wie folgt

//+------------------------------------------------------------------+
//| Einstellen der Infotafel|
//|------------------------------------------------------------------+
void SetInfoPanel()
  {
//--- Visualisierung oder Echtzeit-Modi
   if(ShowInfoPanel && (IsVisualMode() || IsRealtime()))
     {
     // Der restliche Code der Funktion SetInfoPanel()
     // ...
     }
  }