Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 814
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
C'è un modo per fermare questi ineluttabili checkboxes-news-objects dal riempire la mia lista di oggetti più e più volte?
Qui nelle impostazioni, rimuovete la notizia e ricaricate il terminale
C'è un modo per fermare questi ineluttabili checkboxes-news-objects dal riempire la mia lista di oggetti più e più volte?
Qui nelle impostazioni, rimuovi le notizie e riavvia il terminale
Kirill, grazie mille. Altrimenti il mio esperto passa attraverso gli oggetti - li passa e li ripassa.
Grazie.
Sto cercando di imparare ad usare la funzione OnTradeTransaction.
Quando lo uso nel tester, vedo il seguente problema. Viene aperto un ordine e di conseguenza viene chiamata OnTradeTransaction. In questo momento, ottengo la dimensione della posizione dentro OnTradeTransaction usando la classe CPositionInfo. Tutto è a posto. Poi nella stessa chiamata chiamo un'altra funzione direttamente da OnTradeTransaction e CPositionInfo lì restituisce zero, cioè non quello che mi serve. Pochi minuti dopo ho provato a ottenere la dimensione della posizione in OnTimer, ma tutto era OK lì, cioè 1. Naturalmente, la posizione non è stata chiusa e riaperta durante tutta la storia.
Domanda. Perché CPositionInfo restituisce in OnTradeTransaction ciò di cui ha bisogno, ma in un'altra funzione chiamata da OnTradeTransaction restituisce 0 invece del volume della posizione.
Ecco i registri. (Posizione aperta alle 10:30:12 chiusa alle 10:48:53)
Questo fa scattare un ordine.
2017.09.22 10:30:12 ordine [#3 buy limit 1.00 SBRF-3.18 a 19352] attivato
OnTradeTransaction viene chiamato tre volte. CPositionInfo su ogni chiamata il volume della posizione è uguale a 1. Sull'ultima chiamata di TRADE_TRANSACTION_HISTORY_ADD chiamo la funzione.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
In una funzione chiamata da OnTradeTransaction.
2017.09.22 10:32:50 C'è una posizione 0,0 sul simbolo quotato SBRF-3.18 verso POSITION_TYPE_BUY
Dopo un po' di tempo cercando di ottenere di nuovo il volume in OnTimer
2017.09.22 10:40:00 In OnTimer Symbol=SBRF-3.18 Volume=1.0
Chiude la posizione
2017.09.22 10:48:53 ordine [#5 sell limit 1.00 SBRF-3.18 a 19435] attivato
Sto cercando di imparare ad usare la funzione OnTradeTransaction.
Quando lo uso nel tester, vedo il seguente problema. Viene aperto un ordine e di conseguenza viene chiamata OnTradeTransaction. In questo momento, ottengo la dimensione della posizione dentro OnTradeTransaction usando la classe CPositionInfo. Tutto è a posto. Poi nella stessa chiamata chiamo un'altra funzione direttamente da OnTradeTransaction e lì CPositionInfo ritorna zero, cioè non quello che mi serve. Pochi minuti dopo ho provato a ottenere la dimensione della posizione in OnTimer, ma tutto era OK lì, cioè 1. Naturalmente, la posizione non è stata chiusa e riaperta durante tutta la storia.
Ecco la mia domanda. Perché CPositionInfo restituisce ciò di cui ho bisogno in OnTradeTransaction ma in un'altra funzione chiamata da OnTradeTransaction, restituisce 0 invece del volume della posizione.
Ecco i registri. (Posizione aperta alle 10:30:12 chiusa alle 10:48:53)
Questo fa scattare un ordine.
2017.09.22 10:30:12 ordine [#3 buy limit 1.00 SBRF-3.18 a 19352] attivato
OnTradeTransaction è chiamato tre volte. CPositionInfo su ogni chiamata il volume della posizione è uguale a 1. Sull'ultima chiamata di TRADE_TRANSACTION_HISTORY_ADD chiamo la funzione.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
In una funzione chiamata da OnTradeTransaction.
2017.09.22 10:32:50 C'è una posizione 0,0 sul simbolo quotato SBRF-3.18 verso POSITION_TYPE_BUY
Dopo un po' di tempo cercando di ottenere di nuovo il volume in OnTimer
2017.09.22 10:40:00 In OnTimer Symbol=SBRF-3.18 Volume=1.0
Chiude la posizione
2017.09.22 10:48:53 ordine [#5 sell limit 1.00 SBRF-3.18 a 19435] attivato
E perché usare CPositionInfo se c'è la struttura MqlTradeTransaction con tutte le informazioni su ordine, affare e posizione?
Per comodità. Una piccola funzione è chiamata da MqlTradeTransaction. Trova l'elemento necessario attraverso la ricerca di elementi della classe. Poi, una delle funzioni di classe viene chiamata per questo elemento e fa qualcosa di utile.
Per comodità. Una piccola funzione è chiamata da MqlTradeTransaction. L'elemento necessario si trova lì attraverso la ricerca di elementi della classe. Una delle funzioni di classe viene chiamata per questo elemento e fa qualcosa di utile.
Apparentemente bisogna cambiare l'intero algoritmo per fare questo. Il problema è descritto molto male. Se avete bisogno di alcune classi senza usare OnTradeTransaction, non avete bisogno di alcune classi che usano OnTradeTransaction. Questo è esattamente il motivo per cui si dice
Forum sul trading, sistemi di trading automatico e test di strategia
FAQ da principianti MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2017.12.30 09:04
E perché usare CPositionInfo quando c'è la struttura MqlTradeTransaction dove si trovano tutte le informazioni su ordini, transazioni e posizioni?
Durante l'esecuzione di questa funzione, si verificano degli eventi, per esempio - Trade, Timer, ecc.
È possibile sapere che questi eventi si sono verificati senza terminare l'esecuzione della funzione Abc()?