IsStopped() aiuta a combattere il looping - questo è sicuro. Da qualche tempo il "ciclo perpetuo" non è curato daIsStopped() e, infatti, dobbiamo cancellare il processo terminale per ripristinare il funzionamento. Anche se l'indicatore di tipo viene eliminato dal grafico senza problemi, ma il grafico si blocca.
Per divertirvi, potete provare un indicatore con un loop speciale. A proposito, come si suppone in questo caso, OnDeinit() non funziona.
E non c'è bisogno di eseguire quello che c'è nell'allegato. Questo è per coloro che vogliono provarlo. Ma, se si usano indicatori con calcoli pesanti, questo momento può influire. È necessario controllare.
Come inviare una richiesta (messaggio) dal client Android al client MetaTrader, ad esempio, per inviare una notifica
L'unico modo per farlo è piazzare un ordine pendente su un simbolo inutilizzato, e poi l'EA lo troverà, invierà un messaggio con le informazioni richieste e cancellerà l'ordine pendente.
Nella build 19.04.13 il debugger ha iniziato a visualizzare il contenuto di MqlRate tra parentesi graffe. Grazie MQ per questo! Ci sono piani per rendere espandibile la visualizzazione di tali dati? Nel senso di sembrare un albero. Questo potrebbe essere esteso anche alle classi.
Il passaggio al cursore sarebbe molto utile nel debugger. Speriamo che un giorno appaia. Apprezzo i vostri commenti in anticipo sulle possibili scadenze.
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
il rake non è nella lib, perché riflette l'essenza dell'asincronia di MT5
Hai un rastrellamento nel tuo codice perché non hai fatto il blocco dei nuovi ordini fino a quando non ottieni la risposta sull'esecuzione dell'ordine precedente.
In MT5 si dovrebbe organizzare indipendentemente qualcosa di simile a Trade Context Busy per l'ordine inviato, come era in MT4.
Non dovresti fare nuovi tentativi di inviare un ordine simile finché non vedi il rapporto dell'esecuzione dell'ordine precedente.
Ma ora va bene, anche se il codice non è stato cambiato. Ho appena riavviato il terminale. E questo bug è legato alla scomparsa dell'istogramma, di cui si è parlato prima, che appare e scompare. Da cosa può essere causato?
il rake non è nella lib, perché riflette l'essenza dell'asincronia di MT5
Hai un rastrellamento nel tuo codice perché non hai fatto il blocco dei nuovi ordini fino a quando non ottieni la risposta sull'esecuzione dell'ordine precedente.
In MT5 si dovrebbe organizzare indipendentemente qualcosa di simile a Trade Context Busy per l'ordine inviato, come era in MT4.
In altre parole, non dovresti fare nuovi tentativi di inviare un ordine simile finché non vedi il rapporto dell'esecuzione dell'ordine precedente.
Dovresti catturare l'esecuzione in OnTrade o OnTradeTransaction.
Buona fortuna. ;)
Sì, è quello che ho già pensato, dovrò fare qualche analisi supplementare. Grazie per aver confermato la mia ipotesi
IsStopped() aiuta a combattere il looping - questo è sicuro. Da qualche tempo il "ciclo perpetuo" non è curato daIsStopped() e, infatti, dobbiamo cancellare il processo terminale per ripristinare il funzionamento. Anche se l'indicatore di tipo viene eliminato dal grafico senza problemi, ma il grafico si blocca.
Per divertirvi, potete provare un indicatore con un loop speciale. A proposito, come si suppone in questo caso, OnDeinit() non funziona.
Fa paura anche solo eseguirlo).
Come inviare una richiesta (messaggio) dal client Android al client MetaTrader, ad esempio, per inviare una notifica
L'unico modo per farlo è piazzare un ordine pendente su un simbolo inutilizzato, e poi l'EA lo troverà, invierà un messaggio con le informazioni richieste e cancellerà l'ordine pendente.
Buon pomeriggio!
Nella build 19.04.13 il debugger ha iniziato a visualizzare il contenuto di MqlRate tra parentesi graffe. Grazie MQ per questo! Ci sono piani per rendere espandibile la visualizzazione di tali dati? Nel senso di sembrare un albero. Questo potrebbe essere esteso anche alle classi.
Grazie!
Per esempio:
CAbstractFilter{ meSS:CStrategySettings{ meEntrancePeriod:PERIOD_M15 meHistoryDepth:100 meSymbol: "EURUSD" meHistoryRates:[100] meRangeLimit:0.2 meHiLo:0.006 meHiLoMax:0.02 meTimeStart:" 06:00" meTimeEnd:" 20:00" meAsianStart:" 00:00" meAsianEnd:" 07:... }
Meglio:
CAbstractFilter:
+ { meSS:CStrategySettings
+ { { meEntrancePeriod:PERIOD_M15
meHistoryDepth:100
meSymbol: "EURUSD"
meHistoryRates:[100]
meRangeLimit:0.2}
e così via, simile alla struttura ad albero delle directory in Windows Explorer.
Grazie!
Ciao di nuovo!
Il passaggio al cursore sarebbe molto utile nel debugger. Speriamo che un giorno appaia. Apprezzo i vostri commenti in anticipo sulle possibili scadenze.
Grazie!
Qualcuno ha avuto un tale problema usando la libreria standard?
Ho provato a chiudere una posizione SELL, anche se il controllo di Expert Advisor è che prima si controlla il tipo di posizione.
Ho avuto un sacco di inversioni di posizione come risultato, fino a quando la mia richiesta è stata rapidamente eseguita
il codice Expert Advisor è in loop con uno slittamento di 300 ms
Il risultato -100 rubli.
Qualcuno ha avuto problemi con questo?
il rake non è nella lib, perché riflette l'essenza dell'asincronia di MT5
Hai un rastrellamento nel tuo codice perché non hai fatto il blocco dei nuovi ordini fino a quando non ottieni la risposta sull'esecuzione dell'ordine precedente.
In MT5 si dovrebbe organizzare indipendentemente qualcosa di simile a Trade Context Busy per l'ordine inviato, come era in MT4.
Non dovresti fare nuovi tentativi di inviare un ordine simile finché non vedi il rapporto dell'esecuzione dell'ordine precedente.
Dovreste catturare l'esecuzione in OnTrade o OnTradeTransaction.
Buona fortuna. ;)
Mi sento pieno.
Nell'indicatore assegno un valore a una variabile.
Cosa sto facendo di sbagliato?
il rake non è nella lib, perché riflette l'essenza dell'asincronia di MT5
Hai un rastrellamento nel tuo codice perché non hai fatto il blocco dei nuovi ordini fino a quando non ottieni la risposta sull'esecuzione dell'ordine precedente.
In MT5 si dovrebbe organizzare indipendentemente qualcosa di simile a Trade Context Busy per l'ordine inviato, come era in MT4.
In altre parole, non dovresti fare nuovi tentativi di inviare un ordine simile finché non vedi il rapporto dell'esecuzione dell'ordine precedente.
Dovresti catturare l'esecuzione in OnTrade o OnTradeTransaction.
Buona fortuna. ;)