Prima dovete creare un handle, e l'avete fatto, e solo dopo potete ottenere valori dalCopyBuffer
// этот код в Init()
int handleATR=iATR(Symbol(),PERIOD_D1,21);
if(handleATR==INVALID_HANDLE) return;
// это уже в сам советник/индикатор: OnTick()
double hATR[];
CopyBuffer(handleATR,0,0,1,hATR);
// double ATR = hATR[0]; // здесь значение ATR
Ora ho i dati mediati all'inizio dell'EA. E questi dati vengono ricalcolati ogni volta che la funzione viene chiamata.
Da quanto ho capito, per limitare la chiamata, devo fare un record di buffer con i dati calcolati.
Quindi, dobbiamo impostare la condizione per il ricalcolo. Il "lunedì" e se non c'è niente nel buffer.
Cioè dichiarare la variabile buferStep = -1; e inOnTick() se buferStep <0 o "Monday" allora ricalcolare.
Anche qui ho un problema, come può Robot dichiarare che oggi è "lunedì"?
Non voglio usare lunedì, voglio solo il numero di giorni fa. E lo otterrei su ogni nuova barra per non caricare l'Expert Advisor di calcoli su ogni tick.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Solo non quelli del calendario. Barre di 30 giorni all'indietro (domenica, sabato)
A giudicare dalla funzione senza il parametro shift che stai facendo in 5 e hai fatto la domanda in 4 :)
Sì, 30 barre sono 21 giorni lavorativi se si conta da ieri. (24.02.2019 - 25.01.2019)
Ho avuto
Per il mese dimensione media delle candele: 598
Per una settimana dimensione media delle candele: 519
E iATR() fornisce numeri a dieci cifre...
Quindi non ho ancora capito come usarlo.
E iATR() produce numeri a dieci cifre...
Di solito, frazioni decimali (cioè come il prezzo. Per convertire in punti è necessario dividere per _Point).
Vedi illustrazione: euro/dollaro a partire da oggi - 560 pips su base giornaliera per il mese.
Di solito, frazioni decimali (cioè come il prezzo. Per convertire in punti, dividere per _Point).
Vedi l'illustrazione: euro/dollaro a partire da oggi - 560 pips su base giornaliera per un mese.
Ho controllato in MQL4:
Di solito, frazioni decimali (cioè come il prezzo. Per convertire in punti, dividere per _Point).
Vedi illustrazione: euro/dollaro a partire da oggi - 560 pips su base giornaliera per un mese.
Ho controllato in MQL5. Ho scritto il seguente codice per controllarlo:
Questo è ciò che mostra:
Cioè, mostra un valore, ma ne visualizza un altro...
Controllato in MQL5. Ho scritto questo codice per controllarlo:
Questo è ciò che produce:
Cioè mostra un valore, ma ne mostra un altro...
In MQL5 una tale costruzione di lavoro con l'indicatore non è adatta
Prima dovete creare un handle, e l'avete fatto, e solo dopo potete ottenere valori dalCopyBuffer
In MQL5 tale costruzione di lavoro con l'indicatore non è adatta
Prima dovete creare un handle, ed è quello che avete fatto ora, e dopo potete ottenere valori dalCopyBuffer
Grazie, ne terrò conto e riscriverò il codice.
Lo sto solo scrivendo in MT4 e usando #include <MT4Orders.mqh> per testarlo in MT5.
Forse la libreria non supporta gli indicatori.
Grazie, ne terrò conto e riscriverò il codice.
Lo scrivo solo in MT4 e uso #include <MT4Orders.mqh> per testarlo in MT5.
Forse la libreria non supporta gli indicatori.
Sì, solo funzioni commerciali.
Grazie, ne terrò conto e riscriverò il codice.
Lo scrivo solo in MT4 e uso #include <MT4Orders.mqh> per testarlo in MT5.
Forse la libreria non supporta gli indicatori.
È un modo molto veloce per combinare due piattaforme, funziona, ma è meglio non farlo in mql5
E applicare l'indicatore nello stesso modo come in mql4
Questa è un'opzione molto veloce per combinare le due piattaforme, funziona, ma è meglio non farlo in mql5
E applicare l'indicatore nello stesso modo come in mql4
Grazie mille per il codice.
Ha funzionato:
Ora ho i dati mediati all'inizio dell'avvio dell'EA. E questi dati vengono ricalcolati ogni volta che accedo alla funzione.
Da quanto ho capito, per limitare la chiamata, devo fare un record di buffer con i dati calcolati.
Quindi, dobbiamo impostare la condizione per il ricalcolo. Il "lunedì" e se non c'è niente nel buffer.
Cioè dichiarare la variabile buferStep = -1; e inOnTick() se buferStep <0 o "Monday" allora ricalcolare.
Anche qui sono bloccato, come può il robot dichiarare che oggi è "lunedì"?
Grazie mille per il codice.
Ha funzionato così:
Ora ho i dati mediati all'inizio dell'EA. E questi dati vengono ricalcolati ogni volta che la funzione viene chiamata.
Da quanto ho capito, per limitare la chiamata, devo fare un record di buffer con i dati calcolati.
Quindi, dobbiamo impostare la condizione per il ricalcolo. Il "lunedì" e se non c'è niente nel buffer.
Cioè dichiarare la variabile buferStep = -1; e inOnTick() se buferStep <0 o "Monday" allora ricalcolare.
Anche qui ho un problema, come può Robot dichiarare che oggi è "lunedì"?
Non voglio usare lunedì, voglio solo il numero di giorni fa. E lo otterrei su ogni nuova barra per non caricare l'Expert Advisor di calcoli su ogni tick.