Il tag [tp] rimosso in alcuni broker?

 

Sto usando i commenti per sapere se un ordine è stato chiuso da TakeProfit o StopLoss... Mi sono reso conto che in MIG BANK(conti reali) hanno rimosso il tag "[tp]" o "[sl]" negli ordini... i miei EA funzionano nel conto demo ma non in quello reale perché hanno rimosso il tag... Sto pensando di fare un confronto tra il prezzo di TakeProfit e il prezzo di chiusura, ma potrebbe non essere preciso in caso di slittamento alla chiusura o altro. Qualche idea?

 
non è uno di quei broker che hanno bisogno di modificare l'ordine dopo ordersend() con ordermodify() per impostare TP e SL a causa delle nuove regole?
 
NablaQuant:

Sto usando i commenti per sapere se un ordine è stato chiuso da TakeProfit o StopLoss... Mi sono reso conto che in MIG BANK (conti reali) hanno rimosso il tag "[tp]" o "[sl]" negli ordini... i miei EA funzionano nel conto demo ma non in quello reale perché hanno rimosso il tag... Sto pensando di fare un confronto tra il prezzo di TakeProfit e il prezzo di chiusura, ma potrebbe non essere preciso in caso di slittamento alla chiusura o altro. Qualche idea?


I commenti '[tp]', '[sl]' sono specifici del broker. Alcuni li hanno, altri no.

Puoi controllare se il prezzo di chiusura dell'ordine è sopra/sotto il prezzo aperto e il tipo di ordine.

 
Matutin:
non è uno di quei broker che hanno bisogno di modificare l'ordine dopo ordersend() con ordermodify() per impostare TP e SL a causa delle nuove regole?

Questo è dovuto all'uso del ponte BT (broker semi 'ECN'), non alle nuove regole.

 
Matutin:
non è uno di quei broker che hanno bisogno di modificare l'ordine dopo ordersend() con ordermodify() per impostare TP e SL a causa delle nuove regole?

No, MIG permette di impostare SL e TP in OrderSend().


CB

 
gordon:

I commenti '[tp]', '[sl]' sono specifici del broker. Alcuni li hanno, altri no.

Puoi controllare se il prezzo di chiusura dell'ordine è sopra o sotto il prezzo aperto e il tipo di ordine.

Questo è lo stesso della funzione OrderProfit, ma non è quello di cui ho bisogno. Puoi chiudere un ordine con TakeProfit in positivo o in negativo (se cambi il TakeProfit in seguito).


Quello di cui ho bisogno è sapere se un ordine è stato chiuso da TakeProfit o StopLoss, e senza questo commento penso che non sia possibile.


Potrei confrontare il prezzo di chiusura con il prezzo iniziale di TakeProfit, ma potrebbe essere impreciso a causa dello slittamento?


Grazie per le vostre risposte.

 
NablaQuant:

Puoi chiudere un ordine con TakeProfit in positivo o in negativo (se cambi il TakeProfit in seguito).

Buona osservazione.


Potrei confrontare il prezzo di chiusura con il prezzo iniziale di TakeProfit, ma potrebbe essere impreciso a causa dello slipagge?

Puoi controllare se MathAbs(closeprice - tp) > MathAbs(closeprice - sl)

 
È possibile. Avresti bisogno di costruire una logica per fare quanto segue: - Persistere le informazioni riguardanti gli ordini che l'EA ha chiuso - Controllare continuamente il pool Order History per gli ordini che sono "in scope" ma che il tuo EA non ha chiuso - Controllare il segno del profitto per determinare se un broker ha invocato SL o TP Funziona per me. CB
 
sembra l'unico modo... grazie!
 
NablaQuant:
sembra l'unico modo... grazie!

Non so se aiuta o no, ma, oltre a fare ciò che CB suggerisce, metto anche il tasto destro del mouse nei miei commenti agli ordini con degli spazi, in modo che il broker non sovrascriva nulla di importante in essi. Non è a prova di errore, ma mi piace come una protezione extra nel caso in cui il file di dati esterno in qualche modo vada perso.

 

Hmmm.... Forse mi sfugge qualcosa, ma ci sono casi in cui il seguente non sarà sufficiente?


   // select the closed order first and then do this:
   
   double sl_diff = MathAbs(OrderClosePrice() - OrderTakeProfit()),
          tp_diff = MathAbs(OrderClosePrice() - OrderStopLoss());
   
   if ( sl_diff > tp_diff )
      Print("order closed at tp");
   else
      Print("order closed at sl");

   // I assume here that an equality of sl_diff and tp_diff is impossible...?