建议使用二进制文件,而不是csv文件。
你恰好用了帮助文档中指出的错误的方式。
看文档要仔细。
//+------------------------------------------------------------------+ void OnDeinit(const int reason) { double Date=Open[1],Date1=Open[2]; //定義局部變數 用來寫入數據使用 string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH); //獲取目前程序的路徑 //string filename=terminal_data_path+"\\MQL4\\Files\\"+"FileTest.csv"; //指定讀取的當案名稱 string filename = "FileTest.csv"; int filehandle=FileOpen(filename,FILE_WRITE|FILE_CSV); //打開文件 設為可寫的CSV檔案 if(filehandle<0) { Print("Failed to open the file by the absolute path "); Print("Error code ",GetLastError()); } //--- correct way of working in the "file sandbox" ResetLastError(); if(filehandle!=INVALID_HANDLE) //確定寫入文件已經存在 { FileWrite(filehandle,Date,Date1); //將局部變數寫入檔案 FileClose(filehandle); //關閉檔案 } else printf("Date Wrong Write"); //判斷文件讀取或是創建失敗標示 } //+------------------------------------------------------------------+ double Read,Read1; //設置全局變數 供後面程序使用 int OnInit() { string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH); //獲取目前程序的路徑 //string filename=terminal_data_path+"\\MQL4\\Files\\"+"FileTest.csv"; //指定讀取的當案名稱 string filename = "FileTest.csv"; int filehandle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV); //打開文件 指定為可讀的CSV檔案 if(filehandle!=INVALID_HANDLE) //確定讀取的文件已經存在 { //Read = FileReadDouble(filehandle,DOUBLE_VALUE); //將讀取的數據賦值到全局變數Read ======> 讀取失敗 數值為零 //Read1 = FileReadDouble(filehandle,DOUBLE_VALUE); //將讀取的數據賦值到全局變數Read1 ======> 讀取失敗 數值為零 Read = FileReadString(filehandle); Read1 = FileReadString(filehandle); FileClose(filehandle); //關閉檔案 } else Print("Operation FileOpen failed, error ",GetLastError()); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { Comment("Read = ",Read," Read1 = ",Read1); } //+------------------------------------------------------------------+
謝謝指導 經過指點已經確定可以使用了
有時候 看不到錯誤 就是一直看不到
下次會試著更仔細地閱讀文檔 並重複試驗
想不出正確使用方法
煩請各路高手協助指導
思路 在關閉EA時將需要的數據寫出到檔案 重啟時將讀取數據供EA使用
主要使用在EA重啟時能延續先前計算好的參數 或是跨EA共用計算後的參數
按照幫助文件範本編輯 本來可以順利寫出到檔案 只有讀取時失敗
後來連創建新檔都不成功