Rilevare l'innesco dello stop nel backtest di OnTradeTransaction - pagina 2

 
chinaski:

Ciao angevoyageur,

trovo allegato un semplice EA che dimostra il problema. L'EA apre long con stop e target poi short, poi long e così via.

E' contenuto anche un metodo di dump. Basta applicare EUR.USD 1 minuto 1 settimana e guardare i dump delle transazioni nel log del backtest.

Grazie per l'aiuto.

Qui viene attivato il tuo stoploss:

2013.05.03 16:52106EURUSDcomprarein0.011.312401060.000.000.009 978.84
2013.05.03 18:35107EURUSDvenderefuori0.011.310401070.000.00-2.009 976.84sl 1,31040

2013.05.07 18:45:27    Core 1    2013.05.03 18:35:40   trans=symbol=EURUSD price=1.3104000 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit

 
angevoyageur:

Qui scatta il tuo stoploss:

2013.05.03 16:52106EURUSDcomprarein0.011.312401060.000.000.009 978.84
2013.05.03 18:35107EURUSDvenderefuori0.011.310401070.000.00-2.009 976.84sl 1,31040

2013.05.07 18:45:27    Core 1    2013.05.03 18:35:40   trans=symbol=EURUSD price=1.3104000 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit

Salve,

ma questo èentry-type=IN , non out....

 
chinaski:

Ciao,

ma questo èentry-type=IN , non out....

Forse, ma è comunque il tuo sl innescato. Mai crederereligiosamente a quello che ti diceun programma;-)
 
angevoyageur:
Forse, ma è comunque il tuo sl attivato. Non crederemaireligiosamente a quello che ti diceun programma;-)

Hai ragione, d'altra parte, come posso sapere che posso contare su sl=0.0 e tp=0.0 significa che questo è un ordine stop o target e non: sl e tp semplicemente mancati (nella struttura della transazione)...?

 
chinaski:

Hai ragione, d'altra parte, come posso sapere che posso contare su sl=0.0 e tp=0.0 significa che questo è un ordine stop o target e non: sl e tp semplicemente mancati (nella struttura della transazione)...?

Una struttura non può avere un campo mancante. Questa è una transazione su un'operazione(DEAL_TYPE_SELL), un'operazione non può avere un SL/TP, non ha senso. Un SL (o TP) è un ordine (una sorta di ordine speciale in sospeso), quando viene attivato, l'ordine risulta in un'operazione. Puoi controllare tutto questo all'interno di OnTradeTransaction.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Deal Properties - Documentation on MQL5
 
angevoyageur:

Una struttura non può avere un campo mancante. Questa è una transazione su una transazione(DEAL_TYPE_SELL), una transazione non può avere un SL/TP, non ha senso. Uno SL (o TP) è un ordine (una sorta di ordine speciale in sospeso), quando viene attivato, l'ordine risulta in un'operazione. Puoi controllare tutto questo all'interno di OnTradeTransaction.

Non intendo i membri della struttura, naturalmente; intendo i valori.
 
chinaski:
Non intendo i membri della struttura, naturalmente; intendo i valori.
Quindi? È un po' confuso, posso ancora aiutare?
 
angevoyageur:
Allora? È un po' confuso, posso ancora aiutare?

Sì, è stato un aiuto. Cosa intendi per confondere? Mi chiedevo come ottenere sempre ENTRY_IN. Hai detto di non credere mai a quello che mi dice il programma. Io dico che hai ragione, quindi sl=0.0 o tp=0.0 (valori mancanti) potrebbe anche essere un errore del server - ha dimenticato di scrivere i valori.

Quello che è importante per me: un metodo di salvataggio per determinare quale transazione si ferma. MT è grande ma in molti aspetti, confuso, non facendo ciò che normalmente ci si aspetta, come in questo caso.

Sai cosa voglio dire?

 
chinaski:

Sì, è stato un aiuto. Cosa intendi per confondere? Mi chiedevo come ottenere sempre ENTRY_IN. Hai detto di non credere mai a quello che mi dice il programma. Io dico che hai ragione, quindi sl=0.0 o tp=0.0 (valori mancanti) potrebbe anche essere un errore del server - ha dimenticato di scrivere i valori.

Quello che è importante per me: un metodo di salvataggio per determinare quale transazione si ferma. MT è grande ma in molti aspetti, confuso, non facendo ciò che normalmente ci si aspetta, come in questo caso.

Sai cosa voglio dire?

Sono io che sono confuso;-) Leggo e rispondo a molti argomenti. Capisco quello che hai detto, deve essere in grado di cambiare le abitudini con MT4.
 
chinaski:

Sì, è stato un aiuto. Cosa intendi per confondere? Mi chiedevo come ottenere sempre ENTRY_IN. Hai detto di non credere mai a quello che mi dice il programma. Io dico che hai ragione, quindi sl=0.0 o tp=0.0 (valori mancanti) potrebbe anche essere un errore del server - ha dimenticato di scrivere i valori.

Quello che è importante per me: un metodo di salvataggio per determinare quale transazione si ferma. MT è grande ma in molti aspetti, confuso, non facendo ciò che normalmente ci si aspetta, come in questo caso.

Sai cosa voglio dire?

Ho controllato. Quando viene attivato uno SL/TP hai queste transazioni:

  1. TRADE_TRANSACTION_POSITION con SL e TP impostati (ma nessun accordo ancora), poi
  2. TRANSAZIONE_COMMERCIALE_AGGIUNTA

TRADE_TRANSACTION_POSITION

Modifica di una posizione non legata all'esecuzione di un'operazione. Questo tipo di transazione mostra che una posizione è stata cambiata sul lato del server di trading. Il volume della posizione, il prezzo aperto, i livelli di Stop Loss e Take Profit possono essere cambiati. I dati sui cambiamenti sono presentati nella struttura MqlTradeTransaction attraverso il gestore OnTradeTransaction. La modifica della posizione (aggiunta, modifica o chiusura), come risultato dell'esecuzione di una transazione, non porta al verificarsi della transazione TRADE_TRANSACTION_POSITION.

Motivazione: