Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 563
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
Sì, sto chiedendo di MQL 5. Sì, si dovrebbe accedere ai dati del simbolo corrente. I dati sono necessari nel codice EA. Quindi ho bisogno, per esempio, di conoscere il prezzo di chiusura della barra che precede quella attuale.
Guarda l'esempio per CopyTime
Sì, sto chiedendo di MQL5? Sì, si dovrebbe accedere ai dati del simbolo corrente. I dati di cui abbiamo bisogno nel codice di Expert Advisor. Così, per esempio, ho bisogno di conoscere il prezzo di chiusura della barra che precede quella attuale
Dovresti leggere un po' la documentazione.
Ecco un esempio per ottenere il prezzo di chiusura e i buffer degli indicatori
...
Ecco un esempio per ottenere il prezzo di chiusura e i buffer degli indicatori
Ciao a tutti!
Sto ottenendo i dati sulla cronologia degli scambi nel tester utilizzando l'evento OnTrade.
E questo è ciò che ottengo nei registri.
0 22:58:16.487 Core 1 2016.04.01 00:00 Numero di barre nella storia del terminale per il simbolo-periodo GBPUSD al momento = 7729
JR 0 22:58:16.487 Core 1 2016.04.01 03:00:00 Tentativo di scambio 0 con lotto 0,01
EL 0 22:58:16.487 Core 1 2016.04.01 03:00:00 market buy 0.01 GBPUSD sl: 1.43033 tp: 1.44034 (1.43646 / 1.43654 / 1.43646)
GO 0 22:58:16.487 Core 1 2016.04.01 03:00:00 deal #2 buy 0.01 GBPUSD at 1.43654 done (based on order #2)
GE 0 22:58:16.487 Core 1 2016.04.01 03:00:00 deal performed [#2 buy 0.01 GBPUSD at 1.43654]
NK 0 22:58:16.487 Core 1 2016.04.01 03:00:00 ordine eseguito comprare 0,01 a 1,43654 [#2 comprare 0,01 GBPUSD a 1,43654]
HI 0 22:58:16.487 Core 1 2016.04.01 03:00:00 ticket=1
HM 0 22:58:16.487 Core 1 2016.04.01 03:00:00 price=0.0
HH 0 22:58:16.487 Core 1 2016.04.01 03:00:00 time=2016.04.01 00:00
CR 0 22:58:16.487 Core 1 2016.04.01 03:00:00 ticket=2
ID 0 22:58:16.487 Core 1 2016.04.01 03:00:00 price=1.43654
OP 0 22:58:16.487 Core 1 2016.04.01 03:00:00 time=2016.04.01 03:00
Da dove viene il primo scambio con prezzo zero? Non lo faccio :-).
Non lo faccio :-) Spiega plz.
Z.P. Credo di aver capito. Il primo affare ha un profitto di 10K. Non so cosa farci, ma è comunque strano. Perché?
Ed ecco un'altra domanda. L'accordo (comprare a 1.43654) non è stato ancora aperto. Come è apparso nella storia?
Ho bisogno di ottenere dati SOLO sulle transazioni chiuse nell'array come in MQL4. Come si fa?
P.S. Filtrare per DEAL_ENTRY_OUT ?
Hai provato a reinstallare il terminale?
Cattivo esempio. La variabile che memorizza l'handle dell'indicatore in MQL5 deve essere dichiarata nell'"header" - nell'area delle variabili globali del programma, ottenere l'handle in OnInit(). E solo allora potrete fare riferimento all'handle dell'indicatore per ottenere dati da qualsiasi punto del programma.
Non sono del tutto d'accordo con te sull'ottenere un handle, perché la funzione OnInit() viene eseguita una volta e non c'è la garanzia al 100% che l'indicatore venga creato dalla prima volta. Potresti avere ragione sulla dichiarazione di una variabile, ma voglio sapere se la seguente documentazione dice qualcosa di peggio della variante con una variabile statica
Le variabili locali dichiarate con la parola chiave static salvano i loro valori finché la funzione esiste. Ad ogni successiva chiamata di una funzione, queste variabili locali contengono i valori che avevano nella chiamata precedente.
Filtra per DEAL_ENTRY_OUT
Non sono del tutto d'accordo con te sull'ottenere un handle, perché la funzione OnInit() viene eseguita una volta e non c'è la garanzia al 100% che l'indicatore venga creato dalla prima volta. Potresti avere ragione sulla dichiarazione di una variabile, ma voglio sapere quanto è peggio l'opzione di una variabile statica nella documentazione
...
A tal fine, OnInit() controlla se l'handle dell'indicatore è stato creato. Se l'handle dell'indicatore non è stato creato, OnOnit() dovrebbe restituireINIT_FAILED. Cioè, il manico dell'indicatore viene creato solo una volta e solo in OnInit(). Questo non è "4" - non è un casino e non è un vagare e dichiarare maniglie in tutti gli angoli del programma.