StopLimit - Seite 6

 

Ein nach der Pause verfügbarer Preisdruck bei der Eröffnung der Tagessitzung am nächsten Tag.
Das ist so ein Squeeze bei der Markteröffnung.
Verwirrend ist nur, warum die Ausführung nicht zum Angebotspreis erfolgte.
Ich habe den Verdacht, dass die Angaben des Tiefenmessers im Prüfgerät entweder lügen oder die Angaben gebogen sind.
Wurde die Simulation durch echte Ticks gewählt?

Im realen Handel werden in der Regel die ersten 1-5 Minuten nach Markteröffnung verpasst.
Andernfalls kommt es zu solchen Engpässen zum erstbesten Preis und zu einer Volatilität mit einem irren Spread.
Aus diesem Grund sollten Sie vor Marktschluss, beispielsweise um 23.40 Uhr, alle Ihre Stop-Limit-Aufträge entfernen.
Erlauben Sie die Platzierung von Aufträgen nach 10.01 Uhr mit Kontrolle des Spreads.

Sie haben einen Stop-Limit-Auftrag, der gestern erteilt wurde und der bei Markteröffnung, wenn keine Liquidität vorhanden ist, ausläuft.
Warum haben Sie die Grenze auf 100 Ticks festgelegt? Setzen Sie ein Limit von 5 Ticks für den Einstieg.


 
Dmitry Fedoseev:

Deshalb ziehen Sie seltsame Schlüsse - aus Faulheit. Es geht nicht um mich, sondern darum, dass Sie verstehen, was vor sich geht.

Der letzte Kurs auf dem Diagramm war am 2. Dezember um 23:48 Uhr. Die Protokolle zeigen die Auftragsausführung am 3. um 10 Uhr. Was ist das?

Noch einmal: Ich brauche es nicht, ich habe schon lange alles verstanden. Verstehen Sie das wirklich nicht oder tun Sie nur so?

DerChart am 2. Dezember um 23:48 Uhr ist nicht der letzte Kurs, sondern die Zeitachse, so funktioniert das Terminal ))))))))))))


 
Sergey Chalyshev:

Noch einmal: Ich brauche das nicht, ich habe das alles schon lange verstanden. Verstehen Sie das wirklich nicht oder tun Sie nur so?

DasDiagramm am 2. Dezember um 23:48 Uhr ist nicht der letzte Kurs, sondern die Zeitachse, so funktioniert das Terminal ))))))))))))


Ein sehr tiefgründiger Ausdruck: 23:48 ist nicht der Preis.

Na ja... Ich bin dann mal weg... Ich werde versuchen, mich nicht mehr in Ihre Themen einzumischen.

 
Dmitry Fedoseev:

Ein sehr tiefgründiger Ausdruck: 23:48 ist nicht der Preis.

Na ja... Ich bin dann mal weg... Ich werde versuchen, mich nicht mehr in Ihre Themen einzumischen.

Dimitri, gehen Sie nicht zu weit weg und greifen Sie in den Fall ein ))

Sie helfen manchmal und haben mir persönlich geholfen, einige der Probleme zu verstehen.

Soll ich Ihnen ein Login und ein Passwort für mein Handelskonto geben? Nur unter der Bedingung, nicht zu viel zu verbrauchen und das Passwort nicht zu ändern.

 
Sergey Chalyshev:

Dimitri, gehen Sie nicht zu weit weg und greifen Sie in den Fall ein ))

Sie helfen manchmal und haben mir persönlich geholfen, einige Fragen zu verstehen.

Möchten Sie, dass ich Ihnen Login und Passwort für mein Handelskonto gebe? Nur unter der Bedingung, nicht zu viel zu verbrauchen und das Passwort nicht zu ändern.

Ja, ich würde auch ein paar Bestellungen im Testgerät ausprobieren.

 
Dmitry Fedoseev:

Ja, ich würde auch ein paar Bestellungen im Testgerät ausprobieren.

Ich schreibe Ihnen persönlich

 
Sergey Chalyshev:

Offenbar benutzt sie niemand,

der Auftrag wird zu nicht existierenden Preisen eröffnet:

Ein einfaches Beispiel zur Überprüfung:

//+------------------------------------------------------------------+
//|                                               StopLimit_Test.mq5 |
//+------------------------------------------------------------------+
#include <Trade\Trade.mqh>
CTrade trade;

input int Deviation = 100;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0)
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_BUY_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.ask+Deviation*ticksise,  // цена исполнения
         tick.ask+10*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
  }
//+------------------------------------------------------------------+

Und hier liegt das eigentliche Problem: Der Stoploom-Preis und das Limit werden verwechselt. Tatsächlich wird zuerst der Parameter limit_price verwechselt und dann der Preis. Wenn Sie also ein Kauf-Stopp-Limit setzen, sollte der Preis höher sein als limit_price. Im Code aus dem Zitat hingegen erfolgt der erste Trigger beim Schlusskurs tick.ask+10*ticksise und das Bylite erscheint irgendwo da oben (über dem Marktpreis) und löst sofort aus.

Aber im Tester geht der Preis zu Beginn der Testphase nach unten, also habe ich mit einem Stoplimit überprüft, dass diese Art von Code gut funktioniert:

void OnTick()
  {

   static int x=0;
   
   if(x==1)return;
   
   x=1;
  

   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0){
      Comment(GetTickCount()," ",ticksise);
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_SELL_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.bid-100*ticksise,  // цена исполнения
         tick.bid-1000*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
   }

  }

nach dem ersten Auslösen erscheint die Grenze...

 
Dmitry Fedoseev:

Hier liegt das eigentliche Problem: Stoploom-Preis und Limit werden ver wechselt. Tatsächlich steht der Parameter limit_price an erster Stelle und dann der Preis. Wenn Sie also ein Kauf-Stopp-Limit setzen, sollte der Preis höher sein als der limit_price. Im Code aus dem Zitat hingegen erfolgt der erste Trigger beim Schlusskurs tick.ask+10*ticksise und das Bylite erscheint irgendwo da oben (über dem Marktpreis) und löst sofort aus.

Aber im Tester geht der Preis zu Beginn der Testphase nach unten, also habe ich mit einem Stoplimit überprüft, dass diese Art von Code gut funktioniert:

nach dem ersten Auslösen erscheint die Grenze...

In meinem Beispiel ist nichts verwechselt worden, BuyLimit ist höher als Ask und sollte zum Ask-Preis ausgeführt werden und nicht zum Preis, der in BuyLimit angegeben ist.

Lesen Sie den gesamten Zweig noch einmal, ich bin müde zu erklären.

Versuchen Sie, das BuyLimit über den Ask zu setzen, ohne das StopLimit.

Ersetzen Sie einfachORDER_TYPE_BUY_STOP_LIMIT durchORDER_TYPE_BUY_LIMIT .

BuyLimit wird adäquat zum Ask-Preis ausgelöst, und im Falle von BuyStopLimit adäquat zu dem inBuyLimit angegebenen Preis.

 
Sergey Chalyshev:

In meinem Beispiel ist nichts durcheinander, BuyLimit ist über Ask platziert und sollte zum Ask ausgeführt werden, nicht zum Preis, der in BuyLimit angegeben ist.

Lesen Sie den ganzen Zweig noch einmal, ich bin müde zu erklären.

Versuchen Sie, das BuyLimit über den Ask zu setzen, ohne das StopLimit.

Ersetzen Sie einfachORDER_TYPE_BUY_STOP_LIMIT durch ORDER_TYPE_BUY_LIMIT .

BuyLimit wird adäquat zum Ask-Kurs ausgelöst, während es im Falle von BuyStopLimit adäquat zu dem inBuyLimit angegebenen Kurs ausgelöst wird.

Jetzt ist es klar.

 

Eine Stop-Limit-Order kann im Tester auch für Forex überprüft werden. Es genügt, wenn Sie "Ausführung" = Austausch einstellen.



Ich habe das Kauf-Stopp-Limit wie folgt überprüft: Ich habe den Preis der Limit-Order schlechter als den Aktivierungspreis eingestellt. Der Auftrag wurde bei der Aktivierung zum Marktpreis (Briefkurs) eröffnet. Es sieht also so aus, als ob die Funktionalität im Testgerät funktioniert.

Grund der Beschwerde: