MT5使 kernel32.dll 把字符串写入到csv 文件中。MQL5写入外部文件方法。
下面是MQL5的源码,MQL4也可以用的。
//+------------------------------------------------------------------+ //| 写入文件.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #define GENERIC_READ -2147483648 #define GENERIC_WRITE 1073741824 //#define FILE_SHARE_READ 1 //#define FILE_SHARE_WRITE 2 #define CREATE_NEW 1 #define CREATE_ALWAYS 2 #define OPEN_ALWAYS 4 #define OPEN_EXISTING 3 #define TRUNCATE_EXISTING 5 #define FILE_BEGIN 0 #define FILE_CURRENT 1 #define FILE_END 2 #define INVALID_HANDLE_VALUE -1 #import "kernel32.dll" int CreateFileW(string Filename, int AccessMode, int ShareMode, int PassAsZero, int CreationMode, int FlagsAndAttributes, int AlsoPassAsZero); //int ReadFile(int FileHandle, int BufferPtr, int BufferLength, int & BytesRead[], int PassAsZero); int WriteFile(int FileHandle, const uchar &buffer[], int BufferLength, int & BytesWritten, int PassAsZero); int SetFilePointer(int FileHandle, int Distance, int PassAsZero, int FromPosition); //int GetFileSize(int FileHandle, int PassAsZero); int CloseHandle(int FileHandle); #import //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { int fileHandle = CreateFileW("c:\\test.csv", GENERIC_READ|GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0); if (fileHandle == INVALID_HANDLE_VALUE) { Print("打开文件失败!#",GetLastError()); return ; } SetFilePointer(fileHandle, 0, 0, FILE_END); string str="Hello World!"; uchar buffer[]; StringToCharArray(str,buffer); int bytesWritten = 0; WriteFile(fileHandle, buffer, ArraySize(buffer), bytesWritten, 0); CloseHandle(fileHandle); } //+------------------------------------------------------------------+