Tuesday, May 17, 2011

Scrivere su file con Metatrader, quotazioni storiche e reali in excel

type="html">


Molti trader sono spesso interessati ad analizzare i dati in modalità differenti rispetto alla classica visualizzazione di metatrader e hanno quindi bisogno di trasportare i dati su di altri strumenti quali excel, file di testo, database ecc.

Il centro storia di metatrader (lo potete trovare all'interno del menu strumenti) permette di esportare i dati storici in formato csv con le seguenti informazioni relative alle candele del timeframe selezionato:
  • Data e orario
  • Prezzo di apertura
  • Prezzo massimo
  • Prezzo minimo
  • Prezzo di chiusura
  • Volume
Centro storia metatrader


Potreste avere l'esigenza però di voler salvare degli altri dati magari relativi agli ordini aperti oppure il prezzo attuale del cross.

Scrivere un programma di questo tipo è piuttosto semplice, a seconda del fatto che queste informazioni vi servano una sola volta o ad ogni quotazione posizionerete il vostro file *.mq4 rispettivamente all'interno della cartella scripts o in quella experts.

Per maggiori dettagli potete cercare, nel metaeditor, le funzioni fondamentali per la scrittura su file, che sono:
  • FileOpen
  • FileWrite
  • FileClose
Di seguito riporto il codice di un expert advisor che si occupa di scrivere su di un file il prezzo battuto (in particolare l'Ask) ad ogni quotazione:

extern string  nome_file = "RealTimePrice.csv";

bool  error  = false;
int   handle;

int init(){
   //Apertura file 
   handle=FileOpen(nome_file,FILE_CSV|FILE_READ|FILE_WRITE,';'); 
   if(handle < 1) { 
      Print(GetLastError());  
      error = true;
   } 

   return(0);
}

int deinit(){
   //Chiusura FILE 
   FileClose(handle);

   return(0);
}

int start(){

   if (error)
      Print(GetLastError());  
   else{
      RefreshRates();   
      FileWrite(handle, Ask); 
   }
   
   return(0);
}

I file creati vengono posizionati nelle cartelle:
  • MetaTrader 4\tester\files -> in caso di file generati da backtest
  • MetaTrader 4\experts\files -> in caso di programmi attaccati ai grafici

No comments:

Post a Comment