//+--------------------------------------------------------------------------------+ //| Demo_FileWriteFloat.mq5 | //| Copyright 2013, MetaQuotes Software Corp. | //| https://www.mql5.com | //+--------------------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //--- mostra la finestra dei parametri di input quando si lancia lo script #property script_show_inputs //--- parametri per la ricezione dei dati dal terminale input string InpSymbolName="EURUSD"; // coppia di valute input ENUM_TIMEFRAMES InpSymbolPeriod=PERIOD_M15; // time frame input datetime InpDateStart=D'2013.01.01 00:00'; // data di inzio copiatura dati //--- parameters for writing data to the file input string InpFileName="Close.bin"; // nome file input string InpDirectoryName="Data"; // nome directory //+--------------------------------------------------------------------------------+ //| Funzione di avvio del programma Script | //+--------------------------------------------------------------------------------+ voidOnStart() { datetime date_finish=TimeCurrent(); double close_buff[]; datetime time_buff[]; int size; //--- resetta il valore dell' errore ResetLastError(); //--- copia i prezzi di chiusura per ogni barra if(CopyClose(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,close_buff)==-1) { PrintFormat("Fallimento nel copiare i valori di prezzo di chiusura (close). Codice Errore = %d",GetLastError()); return; } //--- copia l'orario per ogni barra if(CopyTime(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,time_buff)==-1) { PrintFormat("Fallimento nel copiare i valori tempo. Codice Errore = %d",GetLastError()); return; } //--- riceve la grandezza del buffer size=ArraySize(close_buff); //--- apre il file per la scrittura dei valori (se il file è assente, verrà automaticamente creato) ResetLastError(); int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_BIN); if(file_handle!=INVALID_HANDLE) { PrintFormat("il file %s viene aperto per la lettura",InpFileName); PrintFormat("Percorso file: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH)); //--- scrive orario e valore dei prezzi di chiusura close, nel file for(int i=0;i<size;i++) { FileWriteDouble(file_handle,(double)time_buff[i]); FileWriteFloat(file_handle,(float)close_buff[i]); } //--- chiude il file FileClose(file_handle); PrintFormat("I dati vengono scritti, il file %s è chiuso",InpFileName); } else PrintFormat("Fallimento nell'aprire il file %s, Codice errore = %d",InpFileName,GetLastError()); } |