Skip to content

Instantly share code, notes, and snippets.

@igotit-anything
Last active March 31, 2023 07:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save igotit-anything/a3ad34b12fa80d8a3dd2435039b8d80b to your computer and use it in GitHub Desktop.
Save igotit-anything/a3ad34b12fa80d8a3dd2435039b8d80b to your computer and use it in GitHub Desktop.
//+------------------------------------------------------------------+
//| CCy_File_1.mqh |
//| igotit |
//| https://igotit.tistory.com |
//+------------------------------------------------------------------+
#property copyright "igotit"
#property link "https://igotit.tistory.com"
#property version "1.00"
#property strict
class CCy_File_1
{
private:
int m_hFileWrite;
public:
CCy_File_1();
~CCy_File_1();
void File_Open_Write(string _file_name);
void File_Close_Write();
void File_Write(string _str_array);
};
CCy_File_1::CCy_File_1()
: m_hFileWrite(INVALID_HANDLE)
{
}
CCy_File_1::~CCy_File_1()
{
File_Close_Write();
}
void CCy_File_1::File_Open_Write(string _file_name)
{
m_hFileWrite = FileOpen(
_file_name//string file_name, // File name
,FILE_WRITE | FILE_CSV //int open_flags, // Combination of flags
,','//short delimiter=';', // Delimiter
//uint codepage=CP_ACP // Code page
);
if(INVALID_HANDLE == m_hFileWrite){
Alert("[CCy_File_1::File_Open_Write] Invalid File handle");
}
}
void CCy_File_1::File_Close_Write()
{
if(INVALID_HANDLE != m_hFileWrite){
FileClose(m_hFileWrite);
}
}
void CCy_File_1::File_Write(string _str_array)
{
if(INVALID_HANDLE == m_hFileWrite){
Alert("[CCy_File_1::File_Write] Invalid File handle");
return;
}
FileWrite(
m_hFileWrite //int file_handle, // File handle
,_str_array //... // List of recorded parameters
);
}
/*
Example EA using class CCy_File_1
//+------------------------------------------------------------------+
//| CyEA905_SAPair_1.mq4 |
//| igotit |
//| https://igotit.tistory.com |
//+------------------------------------------------------------------+
#property copyright "igotit"
#property link "https://igotit.tistory.com"
#property version "1.00"
#property strict
input string ui_file_name = "my_file_test.txt"; // File Name to Write
#include "CySDK_MT4/CCy_File_1.mqh"
CCy_File_1 Cy_File;
int OnInit()
{
Cy_File.File_Open_Write(ui_file_name);
string str_write_line;
// write Header
str_write_line = "Date,Time,O,H,L,C";
Cy_File.File_Write(str_write_line);
// write Candle Data
MqlRates rates[];
CopyRates(_Symbol, PERIOD_M1,0,100,rates);
for(int idx = 0 ; idx < ArraySize(rates) ; idx++)
{
str_write_line = "";
str_write_line += TimeToString(rates[idx].time, TIME_DATE); // open time. yyyy.mm.dd
str_write_line += ","+TimeToString(rates[idx].time, TIME_MINUTES); //open time. hh:mm
str_write_line += ","+DoubleToString(rates[idx].open, _Digits);
str_write_line += ","+DoubleToString(rates[idx].high, _Digits);
str_write_line += ","+DoubleToString(rates[idx].low, _Digits);
str_write_line += ","+DoubleToString(rates[idx].close,_Digits);
Cy_File.File_Write(str_write_line);
}
Alert("Complete Write");
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
Cy_File.File_Close_Write();
}
void OnTick()
{
}
*/
@igotit-anything
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment