Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 814

 
C'è un modo per fermare questi ineluttabili checkboxes-news-objects dal riempire la mia lista di oggetti più e più volte?
 
User_mt5:
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


 
User_mt5:
C'è un modo per fermare questi ineluttabili checkboxes-news-objects dal riempire la mia lista di oggetti più e più volte?
Non c'è bisogno di ricaricare nulla. Nel calendario, deseleziona "Elimina tutti gli eventi", poi deseleziona "Aggiornamenti automatici".
 
Kirill Belousov:

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

 
pivomoe:

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?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
  • www.mql5.com
Например, при отсылке рыночного ордера на покупку он обрабатывается, для счета создается соответствующий ордер на покупку, происходит исполнение ордера, его удаление из списка открытых, добавление в историю ордеров, далее добавляется соответствующая сделка в историю и создается новая позиция. Все эти действия являются торговыми транзакциями...
 

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.

 
pivomoe:

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?


 
Non è un problema cambiare l'algoritmo. Non riesco a capire se CPositionInfo restituisce 1, poi 0, poi di nuovo 1 dopo l'apertura della posizione (stiamo parlando della dimensione della posizione). Anche se la storia mostra che la posizione non è stata né chiusa né riaperta.
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Viene eseguita la funzione personalizzata Abc(), che implementa un algoritmo lungo (nel tempo).
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()?
Motivazione: