gryps2/EA-code/TNK/MTFCheck_Time.mq4

260 lines
20 KiB
MQL4
Raw Permalink Normal View History

2025-05-30 14:58:21 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| MTFCheck.mq4 |
//| Copyright 2024, TNK/TNK_SYSTEM |
//| https://note.com/tnk_system |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, TNK/TNK_SYSTEM"
//#property link "https://note.com/tnk_system"
#property version "1.3"
#property strict
#include <stdlib.mqh>
input bool Print_MODE = false;
input bool FileWrite_MODE = true;
//<EFBFBD>Y$P<EFBFBD>R\O<EFBFBD><EFBFBD>R
static datetime time1 = iTime(NULL,0,0);
// T<EFBFBD>,n(u<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
int err, fp;
string filename;
string Timeframe = (Period() == PERIOD_M1? "M1": Period() == PERIOD_M5? "M5": Period() == PERIOD_M15? "M15":
Period() == PERIOD_M30? "M30": Period() == PERIOD_H1? "H1": Period() == PERIOD_H4? "H4":
Period() == PERIOD_D1? "D1": Period() == PERIOD_W1? "W1": "MN1");
ulong V0;
double MA_M1, MA_M5, MA_M15, MA_M30, MA_H1, MA_H4, MA_D1, MA_W1, MA_MN1;
double ATR_M5, ATR_M15, ATR_M30, ATR_H1, ATR_H4, ATR_D1, ATR_W1;
double RSI_M5, RSI_M15, RSI_M30, RSI_H1, RSI_H4, RSI_D1, RSI_W1;
double ADX_M5, ADX_M15, ADX_M30, ADX_H1, ADX_H4, ADX_D1, ADX_W1;
double SD_M5, SD_M15, SD_M30, SD_H1, SD_H4, SD_D1, SD_W1;
double Close_M1, Close_M5, Close_M15, Close_M30, Close_H1, Close_H4, Close_D1, Close_W1, Close_MN1;
ulong Volume_M1, Volume_M5, Volume_M15, Volume_M30, Volume_H1, Volume_H4, Volume_D1, Volume_W1, Volume_MN1;
int Bars_M1, Bars_M5, Bars_M15, Bars_M30, Bars_H1, Bars_H4, Bars_D1, Bars_W1, Bars_MN1, Bars_NULL;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//+------------------------------------------------------------------+
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>Q<EFBFBD>RRgS<EFBFBD>Qt
if (FileWrite_MODE) FileInit();
//+------------------------------------------------------------------+
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//+------------------------------------------------------------------+
if(iTime(NULL,0,0) != time1){
if (Volume[0] <= 10)
{
V0 = Volume[0];
Close_M1 = iClose(NULL, PERIOD_M1, 1);
Close_M5 = iClose(NULL, PERIOD_M5, 1);
Close_M15 = iClose(NULL, PERIOD_M15, 1);
Close_M30 = iClose(NULL, PERIOD_M30, 1);
Close_H1 = iClose(NULL, PERIOD_H1, 1);
Close_H4 = iClose(NULL, PERIOD_H4, 1);
Close_D1 = iClose(NULL, PERIOD_D1, 1);
Close_W1 = iClose(NULL, PERIOD_W1, 1);
Close_MN1 = iClose(NULL, PERIOD_MN1, 1);
Volume_M1 = iVolume(NULL, PERIOD_M1, 0);
Volume_M5 = iVolume(NULL, PERIOD_M5, 0);
Volume_M15 = iVolume(NULL, PERIOD_M15, 0);
Volume_M30 = iVolume(NULL, PERIOD_M30, 0);
Volume_H1 = iVolume(NULL, PERIOD_H1, 0);
Volume_H4 = iVolume(NULL, PERIOD_H4, 0);
Volume_D1 = iVolume(NULL, PERIOD_D1, 0);
Volume_W1 = iVolume(NULL, PERIOD_W1, 0);
Volume_MN1 = iVolume(NULL, PERIOD_MN1, 0);
Bars_M1 = iBars(NULL, PERIOD_M1);
Bars_M5 = iBars(NULL, PERIOD_M5);
Bars_M15 = iBars(NULL, PERIOD_M15);
Bars_M30 = iBars(NULL, PERIOD_M30);
Bars_H1 = iBars(NULL, PERIOD_H1);
Bars_H4 = iBars(NULL, PERIOD_H4);
Bars_D1 = iBars(NULL, PERIOD_D1);
Bars_W1 = iBars(NULL, PERIOD_W1);
Bars_MN1 = iBars(NULL, PERIOD_MN1);
Bars_NULL = Bars;
/*
MA_M1 = iMA(NULL, PERIOD_M1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_M5 = iMA(NULL, PERIOD_M5, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_M15 = iMA(NULL, PERIOD_M15, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_M30 = iMA(NULL, PERIOD_M30, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_H1 = iMA(NULL, PERIOD_H1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_H4 = iMA(NULL, PERIOD_H4, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_D1 = iMA(NULL, PERIOD_D1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_W1 = iMA(NULL, PERIOD_W1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
MA_MN1 = iMA(NULL, PERIOD_MN1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
ATR_M5 = iATR(NULL, PERIOD_M5, 14, 1);
ATR_M15 = iATR(NULL, PERIOD_M15, 14, 1);
ATR_M30 = iATR(NULL, PERIOD_M30, 14, 1);
ATR_H1 = iATR(NULL, PERIOD_H1, 14, 1);
ATR_H4 = iATR(NULL, PERIOD_H4, 14, 1);
ATR_D1 = iATR(NULL, PERIOD_D1, 14, 1);
ATR_W1 = iATR(NULL, PERIOD_W1, 14, 1);
RSI_M5 = iRSI(NULL, PERIOD_M5, 14, PRICE_CLOSE, 1);
RSI_M15 = iRSI(NULL, PERIOD_M15, 14, PRICE_CLOSE, 1);
RSI_M30 = iRSI(NULL, PERIOD_M30, 14, PRICE_CLOSE, 1);
RSI_H1 = iRSI(NULL, PERIOD_H1, 14, PRICE_CLOSE, 1);
RSI_H4 = iRSI(NULL, PERIOD_H4, 14, PRICE_CLOSE, 1);
RSI_D1 = iRSI(NULL, PERIOD_D1, 14, PRICE_CLOSE, 1);
RSI_W1 = iRSI(NULL, PERIOD_W1, 14, PRICE_CLOSE, 1);
ADX_M5 = iADX(NULL, PERIOD_M5, 14, PRICE_CLOSE, MODE_MAIN, 1);
ADX_M15 = iADX(NULL, PERIOD_M15, 14, PRICE_CLOSE, MODE_MAIN, 1);
ADX_M30 = iADX(NULL, PERIOD_M30, 14, PRICE_CLOSE, MODE_MAIN, 1);
ADX_H1 = iADX(NULL, PERIOD_H1, 14, PRICE_CLOSE, MODE_MAIN, 1);
ADX_H4 = iADX(NULL, PERIOD_H4, 14, PRICE_CLOSE, MODE_MAIN, 1);
ADX_D1 = iADX(NULL, PERIOD_D1, 14, PRICE_CLOSE, MODE_MAIN, 1);
ADX_W1 = iADX(NULL, PERIOD_W1, 14, PRICE_CLOSE, MODE_MAIN, 1);
SD_M5 = iStdDev(NULL, PERIOD_M5, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
SD_M15 = iStdDev(NULL, PERIOD_M15, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
SD_M30 = iStdDev(NULL, PERIOD_M30, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
SD_H1 = iStdDev(NULL, PERIOD_H1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
SD_H4 = iStdDev(NULL, PERIOD_H4, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
SD_D1 = iStdDev(NULL, PERIOD_D1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
SD_W1 = iStdDev(NULL, PERIOD_W1, 20, 0, MODE_SMA, PRICE_CLOSE, 1);
*/
if (Print_MODE)
{
Print(
"V0=", V0,
" C_M1=", Close_M1,
" C_M5=", Close_M5,
" C_M15=", Close_M15,
" C_M30=", Close_M30,
" C_H1=", Close_H1,
" C_H4=", Close_H4,
" C_D1=", Close_D1,
" C_W1=", Close_W1,
" C_MN1=", Close_MN1,
" V_M1=", Volume_M1,
" V_M5=", Volume_M5,
" V_M15=", Volume_M15,
" V_M30=", Volume_M30,
" V_H1=", Volume_H1,
" V_H4=", Volume_H4,
" V_D1=", Volume_D1,
" V_W1=", Volume_W1,
" V_MN1=", Volume_MN1,
" B_M1=", Bars_M1,
" B_M5=", Bars_M5,
" B_M15=", Bars_M15,
" B_M30=", Bars_M30,
" B_H1=", Bars_H1,
" B_H4=", Bars_H4,
" B_D1=", Bars_D1,
" B_W1=", Bars_W1,
" B_MN1=", Bars_MN1,
" B_NULL", Bars_NULL
/*
" MA_M1=", MA_M1,
" MA_M5=", MA_M5,
" MA_M15=", MA_M15,
" MA_M30=", MA_M30,
" MA_H1=", MA_H1,
" MA_H4=", MA_H4,
" MA_D1=", MA_D1,
" MA_W1=", MA_W1,
" MA_MN1=", MA_MN1
*/
);
}
if (FileWrite_MODE) FileWriteing();
}
//<EFBFBD>N<EFBFBD>Vn0<EFBFBD>0<EFBFBD>0b_b<EFBFBD><EFBFBD><EFBFBD>YBf;R<EFBFBD><EFBFBD>a
time1 = iTime(NULL,0,0);
}
//+------------------------------------------------------------------+
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| <EFBFBD>[L<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>[L<EFBFBD><EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>,n<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0\Ob |
//+------------------------------------------------------------------+
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0RgS
int FileInit()
{
filename = AccountCompany() + "_" + Symbol() + "_" + Timeframe + "_MTFCheck_Time.csv";// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0 T<EFBFBD>0zl<EFBFBD>0<EFBFBD>0
fp = FileOpen(filename, FILE_READ|FILE_WRITE|FILE_CSV, ',');// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(csv)
//fp = FileOpen(filename, FILE_READ|FILE_WRITE|FILE_CSV, '\t');// MT5(u
if(fp==INVALID_HANDLE)
{
err = GetLastError();
printf("Error occured: [%d] %s", err, ErrorDescription(err));
return(0.0);
}
FileWrite(fp, "Volume[0]", "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<42><66>", "Bf;R", "R",
"Close_M1", "Close_M5", "Close_M15", "Close_M30", "Close_H1", "Close_H4", "Close_D1", "Close_W1", "Close_MN1",
"Volume_M1", "Volume_M5", "Volume_M15", "Volume_M30", "Volume_H1", "Volume_H4", "Volume_D1", "Volume_W1", "Volume_MN1",
"Bars_M1", "Bars_M5", "Bars_M15", "Bars_M30", "Bars_H1", "Bars_H4", "Bars_D1", "Bars_W1", "Bars_MN1", "Bars_NULL"
//"MA_M1", "MA_M5", "MA_M15", "MA_M30", "MA_H1", "MA_H4", "MA_D1", "MA_W1", "MA_MN1"
);
/*FileWrite(fp, "Volume[0]", "<00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<42><66>", "Bf;R", "R",
"MA_M5", "MA_M15", "MA_M30", "MA_H1", "MA_H4", "MA_D1", "MA_W1",
"ATR_M5", "ATR_M15", "ATR_M30", "ATR_H1", "ATR_H4", "ATR_D1", "ATR_W1",
"RSI_M5", "RSI_M15", "RSI_M30", "RSI_H1", "RSI_H4", "RSI_D1", "RSI_W1",
"ADX_M5", "ADX_M15", "ADX_M30", "ADX_H1", "ADX_H4", "ADX_D1", "ADX_W1",
"SD_M5", "SD_M15", "SD_M30", "SD_H1", "SD_H4", "SD_D1", "SD_W1"
);*/
// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>X0<EFBFBD>0
FileClose(fp);
return(0);
}
void FileWriteing()
{
for(int i = 0; i < 3000; i++)
{
FileClose(fp); // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0L0<EFBFBD><EFBFBD>M0c0q0j0W0g0<EFBFBD><EFBFBD>Q0j0D0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>02<EFBFBD>P0
fp = FileOpen(filename, FILE_READ|FILE_WRITE|FILE_CSV, ',');// <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0(csv)01YWe;b<EFBFBD>0$Po0-1
//fp = FileOpen(filename, FILE_READ|FILE_WRITE|FILE_CSV, '\t');// MT5(u
if (fp != INVALID_HANDLE)
{
FileSeek(fp, 0, SEEK_END);
FileWrite(fp, V0, TimeCurrent(), Hour(), Minute(),
Close_M1, Close_M5, Close_M15, Close_M30, Close_H1, Close_H4, Close_D1, Close_W1, Close_MN1,
Volume_M1, Volume_M5, Volume_M15, Volume_M30, Volume_H1, Volume_H4, Volume_D1, Volume_W1, Volume_MN1,
Bars_M1, Bars_M5, Bars_M15, Bars_M30, Bars_H1, Bars_H4, Bars_D1, Bars_W1, Bars_MN1, Bars_NULL
//MA_M1, MA_M5, MA_M15, MA_M30, MA_H1, MA_H4, MA_D1, MA_W1, MA_MN1
);
/*FileWrite(fp, V0, TimeCurrent(), TimeHour(TimeCurrent()), TimeMinute(TimeCurrent()),
MA_M5, MA_M15, MA_M30, MA_H1, MA_H4, MA_D1, MA_W1,
ATR_M5, ATR_M15, ATR_M30, ATR_H1, ATR_H4, ATR_D1, ATR_W1,
RSI_M5, RSI_M15, RSI_M30, RSI_H1, RSI_H4, RSI_D1, RSI_W1,
ADX_M5, ADX_M15, ADX_M30, ADX_H1, ADX_H4, ADX_D1, ADX_W1,
SD_M5, SD_M15, SD_M30, SD_H1, SD_H4, SD_D1, SD_W1
);*/
FileClose(fp);
break;
}
}
if (fp == -1) Print("Error=", GetLastError(), " <00>0<EFBFBD>0<EFBFBD>0<EFBFBD>0n0<6E>fM0<4D><30>0k01YWeW0~0W0_0");
}
//+------------------------------------------------------------------+