Grazie per questo interessante articolo.
L'utilizzo di un file per bufferizzare i dati era obbligatorio?
Non era possibile bufferizzare i dati storici in memoria, usando un array di statis?
Saluti
Buon pomeriggio!
Vorrei vedere i grafici in secondi - una candela è di pochi secondi (5 sec, 6 sec, 10, 12,15). Per vedere le variazioni di prezzo in relazione al tempo.
Un errore di battitura?
Nel testo dell'articolo. Nell'esempio è corretto, AskBufferBuongiorno!
È possibile utilizzare i file di tick ricevuti dall'indicatore proposto per il test multicurrency nel tester, disabilitando però la creazione di tick virtuali nel tester ed effettuando la sincronizzazione dei dati sui prezzi degli strumenti per tempo?
Grazie.
- www.mql5.com
Buon pomeriggio!
Vorrei vedere i grafici in secondi - una candela è di pochi secondi (5 sec, 6 sec, 10, 12,15). Per vedere le variazioni di prezzo in relazione al tempo.
Buon pomeriggio!
È possibile utilizzare i file di tick ricevuti dall'indicatore proposto per il test multicurrency nel tester, disabilitando la creazione di tick virtuali nel tester e rendendo la sincronizzazione dei dati sui prezzi degli strumenti in base al tempo?
Grazie.
I file con le quotazioni creati dall'indicatore, ovviamente, possono essere utilizzati per altri scopi. Vi suggerisco di disabilitare le funzioni non necessarie (ad esempio, il disegno dei grafici) e l'elaborazione dei dati (ad esempio, la sincronizzazione dei dati di diversi strumenti). A proposito, secondo me è più facile scrivere le quotazioni su un file con l'aiuto di un Expert Advisor di questo tipo (è anche nel file allegato):
int h; void OnInit() { string s; StringConcatenate(s,Symbol(),".txt"); h=FileOpen(s,FILE_READ|FILE_WRITE|FILE_ANSI|FILE_SHARE_READ); FileSeek(h,0,SEEK_END); } void OnTick() { string s; StringConcatenate(s,TimeCurrent()," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_BID),_Digits)," ",DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_ASK),_Digits)); FileWrite(h,s); FileFlush(h); } void OnDeinit(const int reason) { FileClose(h); }
Ottimo articolo, grazie per gli indicatori!
Ho questo problema quando eseguo tickindicator.mq5.
Ho compilato l'indicatore. Lo eseguo.
Appare la finestra dell'indicatore. C'è una scala con grandi numeri sia di minimo che di massimo. L'indicatore si muove lungo la linea orizzontale. Ho provato a correggere il minimo e il massimo dell'indicatore. L'indicatore sembra apparire, ma ci sono alcune linee verticali sull'offerta.
Ottimo articolo, grazie per gli indicatori!
Ho questo problema quando eseguo tickindicator.mq5.
Ho compilato l'indicatore. Lo eseguo.
Appare la finestra dell'indicatore. C'è una scala con grandi numeri sia di minimo che di massimo. L'indicatore si muove lungo la linea orizzontale. Ho provato a correggere il minimo e il massimo dell'indicatore. L'indicatore sembra apparire, ma ci sono alcune linee verticali sull'offerta.
È necessario inizializzare tutti i valori nel buffer dell'indicatore.
Molto probabilmente IMHO - non ho guardato il codice)
Ditemi dove correggere qualcosa.
Sui timeframe superiori a M30, la scala inizia a mostrare numeri assurdi.
Come suggerito dal mio collega Dima_S, quando si inizializza l'indicatore, è opportuno riempire i buffer con qualcosa.
E poiché abbiamo il codice TickIndicator.mq5:
//+------------------------------------------------------------------+ //| Funzione OnInit()| //+------------------------------------------------------------------+ void OnInit() { // l'array BidBuffer[] è un buffer di indicatori SetIndexBuffer(0,BidBuffer,INDICATOR_DATA); // L'array AskBuffer[] è un buffer di indicatori SetIndexBuffer(1,AskBuffer,INDICATOR_DATA); // i valori zero della linea Bid non vengono disegnati PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); // i valori zero della linea Ask non vengono disegnati PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); }
È necessario inserire le seguenti righe:
ArrayInitialize(BidBuffer,0); ArrayInitialize(AskBuffer,0);
Come suggerito dal mio collega Dima_S, quando si inizializza l'indicatore è opportuno riempire i buffer con qualcosa. Io l'ho fatto:
ArrayInitialize(BidBuffer,EMPTY_VALUE); ArrayInitialize(AskBuffer,EMPTY_VALUE);
L'ho fatto, ma non è servito.
ArrayInitialize(BidBuffer,0.0); ArrayInitialize(AskBuffer,0.0);Anche in questo modo.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso


Il nuovo articolo Creazione di Indicatori di Tick in MQL5 è stato pubblicato:
In questo articolo, analizzeremo la creazione di due indicatori: l'indicatore tick, che traccia il grafico tick del prezzo e l'indicatore tick candle, che traccia le candele con il numero di tick specificato. Ciascuno degli indicatori scrive i prezzi in entrata in un file e utilizza i dati salvati dopo il riavvio dell'indicatore (questi dati possono essere utilizzati anche dagli altri programmi)
Autore: Denis Zyatkevich