StopLimit - pagina 6

 

Una compressione dei prezzi disponibile dopo la pausa, all'apertura della sessione del giorno, il giorno successivo.
È una stretta così, all'apertura del mercato.
L'unica confusione è perché l'esecuzione non era al prezzo dell'offerta.
Ho il sospetto che le quotazioni del misuratore di profondità nel tester stiano mentendo o che le quotazioni siano curve.
È stata selezionata la simulazione con tick reali?

Nel trading reale, di solito si perdono i primi 1-5 minuti dall'apertura del mercato.
Altrimenti ci saranno questi schiacciamenti, al primo prezzo disponibile, e volatilità con uno spread pazzesco.
Per questo motivo prima che il mercato chiuda, per esempio alle 23.40, rimuovi tutti i tuoi ordini stoplimit.
E permette di piazzare ordini dopo le 10.01 con il controllo dello spread.

Avete un ordine stoplimit che è stato emesso ieri e si blocca all'apertura del mercato quando non c'è liquidità.
Perché avete fissato il limite di 100 tick? Metti un limite di 5 tick per l'entrata.


 
Dmitry Fedoseev:

Ecco perché si traggono strane conclusioni - per pigrizia. Non è per me, è per voi, per capire cosa sta succedendo.

L'ultimo prezzo sul grafico era il 2 dicembre alle 23:48. I registri mostrano l'esecuzione dell'ordine il 3 alle 10. Cos'è questo?

Ancora una volta, non ne ho bisogno, ho capito tutto da molto tempo. Davvero non capisci o fai solo finta?

Ilgrafico del 2 dicembre alle 23:48 non è l'ultimo prezzo, è la linea temporale, è così che funziona il terminale ))))))))))))


 
Sergey Chalyshev:

Ancora una volta, non ho bisogno di questo, ho capito tutto da molto tempo. Davvero non capisci o fai solo finta?

Ilgrafico del 2 dicembre alle 23:48 non è l'ultimo prezzo, è la linea temporale, è così che funziona il terminale ))))))))))))


Un'espressione molto profonda: 23:48 non è il prezzo.

Bene... Sono fuori... Cercherò di non interferire più nei vostri argomenti.

 
Dmitry Fedoseev:

Un'espressione molto profonda: 23:48 non è il prezzo.

Bene... Sono fuori... Cercherò di non interferire più nei vostri thread.

Dimitri, non allontanarti troppo e intervieni sul caso ))

Voi aiutate a volte, e mi avete aiutato personalmente a capire alcune questioni.

Vuoi che ti dia il login e la password del mio conto di trading? Solo a condizione: non scaricare molto e non cambiare la password.

 
Sergey Chalyshev:

Dimitri, non allontanarti troppo e intervieni sul caso ))

Voi aiutate a volte, e mi avete aiutato personalmente a capire alcune questioni.

Vuoi che ti dia il login e la password del mio conto di trading? Solo a condizione: non scaricare molto e non cambiare la password.

Sì, proverei anche un paio di ordini nel tester.

 
Dmitry Fedoseev:

Sì, anch'io proverei un paio di ordini nel tester.

Ti scriverò di persona

 
Sergey Chalyshev:

A quanto pare nessuno lo usa,

l'ordine viene aperto a prezzi inesistenti:

Un semplice esempio da verificare:

//+------------------------------------------------------------------+
//|                                               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
      );
  }
//+------------------------------------------------------------------+

Ed ecco il vero problema: stop_price e limit_price sono confusi. In realtà, viene confuso prima il parametro limit_price e poi il prezzo. Pertanto, se si imposta un buy-stop-limit, il prezzo dovrebbe essere superiore a limit_price. Ma nel codice della quotazione al contrario, il primo trigger avviene al prezzo di chiusura tick.ask+10*ticksise e il bylite appare da qualche parte lassù (sopra il prezzo di mercato) e si attiva immediatamente.

Ma nel tester all'inizio del periodo di prova il prezzo scende così ho controllato con uno stoplimit, questo tipo di codice funziona bene:

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
      );
   }

  }

dopo il primo innesco appare il limite...

 
Dmitry Fedoseev:

Ecco il vero problema: il prezzo dello stoploom e il limite sono confusi. Infatti, il parametro limit_price è prima e poi il prezzo. Pertanto, se si imposta un buy-stop-limit, il prezzo dovrebbe essere superiore a limit_price. Ma nel codice della quotazione al contrario, il primo trigger avviene al prezzo di chiusura tick.ask+10*ticksise e il bylite appare da qualche parte lassù (sopra il prezzo di mercato) e si attiva immediatamente.

Ma nel tester all'inizio del periodo di prova il prezzo scende così ho controllato con uno stoplimit, questo tipo di codice funziona bene:

dopo il primo innesco appare il limite...

Non c'è niente di confuso nel mio esempio, BuyLimit è impostato più in alto di Ask e dovrebbe essere eseguito a Ask e non al prezzo che è specificato in BuyLimit.

Leggi di nuovo tutto il ramo, stanco di spiegare.

Prova a impostare il BuyLimit sopra l'Ask senza lo StopLimit.

Basta sostituireORDER_TYPE_BUY_STOP_LIMIT conORDER_TYPE_BUY_LIMIT .

BuyLimit viene attivato adeguatamente al prezzo Ask, e nel caso di BuyStopLimit adeguatamente al prezzo specificato inBuyLimit.

 
Sergey Chalyshev:

Nel mio esempio non c'è niente di confuso, BuyLimit è posto sopra Ask e dovrebbe essere eseguito a Ask, non al prezzo che è specificato in BuyLimit.

Leggi di nuovo tutto il ramo, stanco di spiegare.

Prova a impostare il BuyLimit sopra l'Ask senza lo StopLimit.

Basta sostituireORDER_TYPE_BUY_STOP_LIMIT con ORDER_TYPE_BUY_LIMIT .

BuyLimit si attiva adeguatamente al prezzo Ask, mentre nel caso di BuyStopLimit si attiva adeguatamente al prezzo specificato inBuyLimit.

Ora è chiaro.

 

Un ordine stop limit può essere controllato nel tester anche per il Forex. È sufficiente impostare "Execution" = Exchange.



Ho controllato il limite di acquisto come segue: ho impostato il prezzo dell'ordine limite peggiore del prezzo di attivazione. L'ordine si è aperto al prezzo di mercato (ask price) al momento dell'attivazione. Quindi, sembra che la funzionalità nel tester funzioni.

Motivazione: