Discussione sull’articolo "Creazione di Indicatori di Tick in MQL5"

 

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

 

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.

 
Silent:

Un errore di battitura?

Nel testo dell'articolo. Nell'esempio è corretto, AskBuffer
Sì, è un errore di battitura. Corretto. Grazie.
 

Buongiorno!

È 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.

Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
  • www.mql5.com
Получение рыночной информации / SymbolIsSynchronized - Документация по MQL5
 
robinz:

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.

Questi grafici vanno oltre lo scopo di questo articolo, quindi vi suggerisco di costruirli da soli - non è più complicato di quelli descritti nell'articolo.
rrr:

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);
  }
File:
ticklog.mq5  1 kb
 

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.


 
denkir:

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.

 
fyords:

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);
 
denkir:

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.