Überprüfung des Mindeststopps in den auf dem Marktplatz veröffentlichten EAs. - Seite 16

 
Vladislav Andruschenko:

der Spread berücksichtigt wird, betrug der Spread 8 Pips. + Mindeststopp 18=26 Pips

27 ist in Ordnung.

Und weiter, wenn eine Person braucht, um einen Stoploss von 100 Pips zu platzieren, bedeutet dies, dass er 100 Pips verlieren wird, so dass für BAY aus dem ASC-Preis müssen Sie 100 Pips zu zählen.

bzw. für Sell from BID.

Ich habe nicht gesagt, wo der SL stehen soll. Ich habe gesagt, welcher Preis bei der Überprüfung zu verwenden ist.
 
Andrey Khatimlianskii:
Ich habe nicht gesagt, wo der SL stehen soll. Ich habe gesagt, welcher Preis bei der Überprüfung zu verwenden ist.
Ich danke Ihnen. Auch diese Option zählt.
 
Taras Slobodyanik:

Wie können Sie also nicht raten? wenn der Makler ein unangemessenes Stoppniveau vorgibt? %)

...es ist klar, dass man nach all den Prüfungen raten muss, um den Mindesteinzug zu kennen

Im Layout können Sie nicht raten. Sie müssen alles wissen. Im Voraus. Um nicht einen einzigen Fehler zu machen. Obwohl ich glaube, dass Fehler des Servers kein Fehler sind. Das ist eine Warnung.
 

Ich habe keine Erfahrung mit dem Verkauf von EAs auf dem Markt, aber nachdem ich alle Meinungen gelesen habe, werde ich meine fünf Cent hinzufügen.

Sie können versuchen, mehrere Optionen im Menü auszuwählen

1 Variante - Standard. In diesem Fall wird der Mindestanschlag vollständig durchMODE_STOPLEVEL bestimmt. Stellen Siesicher, dass Sievor jeder Aktion auf der Bestellungeine neueSTOPP-Ebeneanfordern.

2 Variante, wennMODE_STOPLEVEL == 0, dann verlässt der Anschlag den Spread.

3 Optional können wir manuell unsere eigene Stopp-Stufe oder einen Multiplikator, multipliziert mit dem Spread, festlegen.

Es ist notwendig, eine Kontrolle einzuführen. Wenn ein EA getestet oder optimiert wird, kann das Stop-Level nicht kleiner als der Spread sein. Ich denke, damit kann der Markt jeden Stresstest bestehen, auch einen mit StopLoss = 1.

 
Dmytro Zelenskyy:

Ich habe keine Erfahrung mit dem Verkauf von EAs auf dem Markt, aber nachdem ich alle Meinungen gelesen habe, werde ich meine fünf Cents dazugeben.

Sie können versuchen, mehrere Optionen im Menü auszuwählen

1 Variante - Standard. In diesem Fall wird der Mindestanschlag vollständig durchMODE_STOPLEVEL bestimmt. Stellen Siesicher, dass Sievor jeder Aktion auf der Bestellungeine neueSTOPP-Ebeneanfordern.

2 Variante, wennMODE_STOPLEVEL == 0, dann verlässt der Anschlag den Spread.

3 Optional können wir manuell unsere eigene Stopp-Stufe oder einen Multiplikator, multipliziert mit dem Spread, festlegen.

Es ist notwendig, eine Kontrolle einzuführen. Wenn ein EA getestet oder optimiert wird, kann das Stop-Level nicht kleiner als der Spread sein. Ich denke, damit kann der Markt jeden Stresstest bestehen, auch einen mit StopLoss = 1.

Leider nein.

Auf dem Markt sollte alles automatisch ablaufen.

Jetzt gibt es eine neue lustige Sache mit Gold, es gibt 3 Ziffern, aber die letzte Ziffer muss gerundet werden, d.h. die letzte Ziffer sollte 0 sein,

Die letzte Ziffer sollte 0 sein, damit beim Runden nach einer mathematischen Regel gerundet wird und nicht in der Richtung, die es Ihnen ermöglicht, die Mindeststoppregel zu umgehen.

Natürlich kann ich einfach - durch die Marktprüfung - alle Stufen in 10 Stoppstufen setzen - sozusagen, um die Moderatoren passieren zu lassen, aber ich möchte es richtig handhaben.

Ich muss es für den Kauf auf- und für den Verkauf abrunden. oh............

 
Vladislav Andruschenko:

Leider nein.

Auf dem Markt sollte alles automatisch ablaufen.

Jetzt kommt ein neuer Trick bei Gold: Es gibt dreistellige Notierungen, aber die letzte Ziffer muss gerundet werden, d.h. die letzte Ziffer muss 0 sein,

Die letzte Ziffer sollte 0 sein, so dass beim Runden nach einer mathematischen Regel gerundet wird und nicht nach der Seite, die es erlaubt, die Min-Stop-Regel zu umgehen.

Natürlich kann ich einfach - durch die Marktprüfung - alle Stufen in 10 Stoppstufen setzen - sozusagen, um die Moderatoren passieren zu lassen, aber ich möchte es richtig handhaben.

Ich muss sie für den Kauf auf- und für den Verkauf abrunden. oh............

Auch ich bin mit diesem Problem konfrontiert worden, als ich Gold und Silber getestet habe.

double NormalizePrice(string symbol,double value)
  {
   double ts=SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE);
   if(ts==0)return(value);
   return(NormalizeDouble(value/ts,0)*ts);
  }

Anwendungsbeispiel

      double ask=NormalizeDouble(SymbolInfoDouble(symbol,SYMBOL_ASK),digits);
      if(NormalizeDouble(NormalizePrice(symbol,ask),digits)!=ask)return;
 

So sieht meine Take-Profit- und Stop-Loss-Funktion zum Beispiel aus

void ModifyTP(string symbol,double tp)
  {
   if(tp<=0)return;
   bool res;
   double last=SymbolInfoDouble(symbol,SYMBOL_LAST);
   double bid=SymbolInfoDouble(symbol,SYMBOL_BID);
   double ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
   double point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);

   if(last<=0.0)
     {
      bid=SymbolInfoDouble(symbol,SYMBOL_BID);
      ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
     }
   else
     {
      bid=SymbolInfoDouble(symbol,SYMBOL_LAST);
      ask=SymbolInfoDouble(symbol,SYMBOL_LAST);
     }

   if(bid<=0.0)return;
   if(ask<=0.0)return;

   int total=OrdersTotal();

   for(int i=0; i<total; i++)
     {
      if(!OrderSelect(i,SELECT_BY_POS))continue;
      if(OrderMagicNumber()!=Magic)continue;
      if(OrderSymbol()!=symbol)continue;
      if(OrderType()>1)continue;
      if(OrderTakeProfit()!=0)continue;

      if(OrderType()==OP_BUY) tp=NormalizeDouble(NormalizePrice(symbol,bid+tp*point),digits);
      if(OrderType()==OP_SELL) tp=NormalizeDouble(NormalizePrice(symbol,ask-tp*point),digits);
      if(tp<0)continue;
      res=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp,0);
      if(!res)
        {
         int error=GetLastError();
         rezult=StringConcatenate(OrderSymbol(),": error modifying TakeProfit order ",StrToType(OrderType())," №- ",error," ",ErrorDescription(error)," Ticket: ",OrderTicket());
         Print(rezult);
        }
     }
  }
 
Sergey Gritsay:

Auch mit dem Problem der Prüfung auf Gold und Silber konfrontiert, schrieb ich eine Funktion wie diese

Anwendungsbeispiel

Wenn ich Gold auf mt5 Server verwenden - 3 Dezimalstellen, aber Stops und offenen Preis sollte auf !!!! gesetzt werden Wenn Sie immer noch mit 2 Dezimalstellen spielen wollen, runden Sie auf 2 Dezimalstellen anstelle von 3, und Sie können auch einige lustige Tricks mit Mindeststopps bei Gold und Silber sehen,

wie diese:

   request.tp=NormalizeDouble(request.tp,SymbolInfoInteger(symToWork2,SYMBOL_DIGITS)-Rounding);
   request.sl=NormalizeDouble(request.sl,SymbolInfoInteger(symToWork2,SYMBOL_DIGITS)-Rounding);
   request.price=NormalizeDouble(request.price,SymbolInfoInteger(symToWork2,SYMBOL_DIGITS)-Rounding);

wobeiRundung= für Gold mt5 gleich 1 ist.

Sie müssen den Preis runden, sonst wird Ihnen mitgeteilt, dass der Preis falsch ist, aber wenn Sie ihn runden, korrigiert der Server ihn auf den richtigen Preis und die Transaktion wird abgeschlossen.

Die mt4 hat keine solchen Macken - es gibt 2 Dezimalstellen und man kann problemlos auf 2 Dezimalstellen aufrunden.

meine persönliche Meinung zu Fehler 130:

Ich habe alle Prüfungen für Fehler 130 - es gibt eine Fehlerprotokollausgabe.

Es gibt auch eine Normalisierung.

Auf dem Marktplatz wurde ich dazu angehalten, auf den Mindeststopp bzw. den Spread zu normalisieren (z. B. sollte ich zum ASK-Kurs kaufen und den Mindeststopp zum BID-Kurs überprüfen).

Wenn also ein Händler den EA benutzt und z.B. 20 Punkte Stop Loss setzt, dann sollte der EA diesen automatisch um 50 Punkte (MinStop + Spread) überschreiben, was nicht korrekt ist. Der Händler muss den Fehler 130 erkennen und den Stopp auf eigenes Risiko korrigieren.

Eine andere Möglichkeit - wenn ein Benutzer den Stoploss niedriger als das Minimum setzt - verbietet den Handel und die Modifikation, weil die Moderatoren den Expert Advisor mit einem Fehler von 130 nicht zulassen werden.

Aber den Handel zu verbieten ist falsch, Stop und Spread sind im Fluss, jetzt ist es weniger als das Minimum - dann ist es OK.

Ich glaube nicht, dass es eine gute Idee ist, den Markt für einen solchen Ansatz zu nutzen.

IMHO: ein Fehler 130 sollte sein und ein Benutzer sollte den 130. Fehler vom Server sehen, nicht von einem Expert Advisor, der sagt: "Ihr Stop ist unter dem Minimum, korrigieren Sie ihn".

Marktregel: Verpassen Sie nicht den Expert Advisor, der Fehler 130 generiert - weil der Checker 1 Punkt in den Stop Loss gesetzt hat - nun, das ist ein Fehler.

Ein und dieselbe Expert Advisor-Version kann weitergegeben werden, muss aber nicht.

Ich habe eine Version gepostet - alles ist OK, nach einer Weile sah ich, dass die EA druckt eine Menge (nur die Tatsache, dass der Stop-Loss ist weniger als das Minimum), ich schnell korrigiert und wartete eine Woche, bis sie anfangen zu testen, wieder 2 Wochen der Stagnation, weil wieder sehe ich 130 Fehler auf einige Symbol

 
Vladislav Andruschenko:

In Gold auf dem mt5 Server - 3 Dezimalstellen, aber Stops und offener Preis sollten auf !!!! gesetzt werden. Wenn Sie den Preis für Gold und Silber ändern wollen, müssen Sie ihn auf 2 Dezimalstellen einstellen, d.h. auf 2 Dezimalstellen runden und nicht auf 3, und es gibt einen Trick mit Ihrem Min-Stop für Gold und Silber,

wie diese:

wobeiRundung= für Gold mt5 gleich 1 ist.

Sie müssen den Preis runden, sonst wird Ihnen mitgeteilt, dass der Preis falsch ist, aber wenn Sie ihn runden, korrigiert der Server ihn auf den richtigen Preis und die Transaktion wird abgeschlossen.

Die mt4 hat keine solchen Macken - es gibt 2 Dezimalstellen und man kann problemlos auf 2 Dezimalstellen aufrunden.

meine persönliche Meinung zu Fehler 130:

Ich habe alle Prüfungen für Fehler 130 - es gibt eine Fehlerprotokollausgabe.

Es gibt auch eine Normalisierung.

Auf dem Marktplatz wurde ich dazu angehalten, auf den Mindeststopp bzw. den Spread zu normalisieren (z. B. sollte ich zum ASK-Kurs kaufen und den Mindeststopp zum BID-Kurs überprüfen).

Wenn ein Händler den EA benutzt und z.B. 20 Punkte Stop Loss setzt, dann sollte der EA diesen automatisch um 50 Punkte (MinStop + Spread) überschreiben, was nicht korrekt ist. Der Händler muss den Fehler 130 erkennen und den Stopp auf eigenes Risiko korrigieren.

Eine andere Möglichkeit - wenn ein Benutzer den Stoploss niedriger als das Minimum setzt - verbietet den Handel und die Modifikation, weil die Moderatoren den Expert Advisor mit einem Fehler von 130 nicht zulassen werden.

Aber den Handel zu verbieten ist falsch, Stop und Spread sind im Fluss, jetzt ist es weniger als das Minimum - dann ist es OK.

Ich glaube nicht, dass es eine gute Idee ist, den Markt für einen solchen Ansatz zu nutzen.

IMHO: ein Fehler 130 sollte sein und ein Benutzer sollte den 130. Fehler vom Server sehen, nicht von einem Expert Advisor, der sagt: "Ihr Stop ist unter dem Minimum, korrigieren Sie ihn".

Marktregel: Überspringen Sie nicht den Expert Advisor, der den Fehler 130 generiert - denn der Checker hat 1 Punkt in den Stop Loss gesetzt - nun, das ist ein Fehlschlag.

Ein und dieselbe Expert Advisor-Version kann weitergegeben werden, muss aber nicht.

Ich habe eine Version gepostet - alles ist OK, nach einer Weile sah ich, dass die EA druckt eine Menge (nur die Tatsache, dass der Stop-Loss ist weniger als das Minimum), ich schnell korrigiert und wartete eine Woche, bis sie anfangen zu überprüfen, wieder 2 Wochen der Stagnation, weil 130 Fehler erscheint wieder auf einige Symbol

IMHO - viele Server-Meldungen - nicht ein Fehler, und der Return-Code. Und sie soll nicht durch allerlei Tricks umgangen werden, sondern der Expert Advisor soll Entscheidungen treffen können. Die Entscheidungen basieren auf der Reaktion des Servers auf seine Aktionen. Andernfalls wäre es nur ein dummes Spielzeug, das nicht in der Lage ist, den Markt zu überwachen und seine Aktionen auf der Grundlage der "Kommunikation" mit dem Server zu korrigieren.

Die "Facettierung" der Moderatoren bei Fehler 130 ist also übertrieben. Wir müssen nachdenklich sein: Es ist eine Sache, wenn ein Expert Advisor nach dem 130. Fehler weiter auf den Server einprügelt, und eine andere, wenn er darauf reagiert und seine Aktionen ändert. Warum dürfen wir Letzteres nicht tun? Liegt es einfach daran, dass jemand (der Moderator) die Arbeit des EA nicht genauer unter die Lupe nehmen will? Es fühlt sich an, als würde man 130 sehen - in der Ehe. Es spielt keine Rolle, dass der EA eine solche Antwort vom Server höchstwahrscheinlich für seine eigene Logik benötigt, es ist wichtig, sie einfach zurückzuweisen und nicht weiter zu suchen. Funktioniert das so?

 
Artyom Trishkin:

IMHO handelt es sich bei vielen Servermeldungen nicht um einen Fehler, sondern um einen Returncode. Und die braucht man nicht, um sie mit allen möglichen Tricks zu umgehen, sondern damit der Expert Advisor Entscheidungen treffen kann. Es sind Entscheidungen, die auf der Reaktion des Servers auf seine Aktionen basieren. Andernfalls wäre es nur ein dummes Spielzeug, das nicht in der Lage ist, dem Markt zu folgen und seine Aktionen auf der Grundlage einer gegenseitigen "Kommunikation" mit dem Server zu korrigieren.

Es ist also übertrieben, die Moderatoren zu zwingen, den 130sten Fehler zu machen. Wir müssen nachdenklich sein: Es ist eine Sache, wenn der Expert Advisor nach dem 130. Fehler weiter auf den Server einprügelt, aber es ist eine ganz andere Sache, wenn er darauf reagiert und seine Aktionen ändert. Warum dürfen wir Letzteres nicht tun? Liegt es einfach daran, dass jemand (der Moderator) die Arbeit des EA nicht genauer unter die Lupe nehmen will? Es fühlt sich an, als würde man 130 sehen - in der Ehe. Es spielt keine Rolle, dass der Experte eine solche Antwort vom Server wahrscheinlich für seine eigene Logik benötigt, es ist wichtig, sie einfach abzulehnen und nicht weiter zu suchen. Funktioniert das so?

Das ist der Grund, warum mein EA Min-/Max-Bewegungen abfängt und deshalb den Server nicht mit 1 Pip Stoploss, sondern mit einem normalen Min-Level + Spread angreift, aber der Spread ist fließend. Daher wird EA so lange auf den Server einhämmern, bis dieser einen normalen Spread zurückgibt.

Mit anderen Worten, beim Öffnen der Datei wird geprüft, ob ein Minimalstopp vorliegt - die Werte werden neu aufgebaut - und dann wird auf den Server zugegriffen. Aber wenn Sie einen Stopp von 10 Pips setzen müssen, müssen Sie auf den Min-Spread warten und den Server schlagen.