aisaki_FTJ/ind CheckAutoTrading.mq5

129 lines
7.4 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 14:39:35 +02:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//|
//| <EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>X<EFBFBD><EFBFBD>0DLLn0O(uL01<EFBFBD><EFBFBD>SU0<EFBFBD>0f0D0j0D0h0
//|
//| c<EFBFBD>[Bf;Rk0<EFBFBD>0<EFBFBD>0<EFBFBD>0k0<EFBFBD><EFBFBD>wY0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0g0Y0
//|
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_type1 DRAW_NONE
enum ENUM_SEND{
Mail = 0, // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD><EFBFBD>O
Noti = 1 // <EFBFBD>0<EFBFBD>0<EFBFBD>0HrMT5K0<EFBFBD>0<EFBFBD><EFBFBD>w
};
enum ENUM_MODE{
mode01 = 1, // -<EFBFBD><EFBFBD>[L0 Y<EFBFBD>fU0<EFBFBD>0_0h0M0k0<EFBFBD><EFBFBD>w
mode10 = 2, // c<EFBFBD>[W0_0Bf;Rk0<EFBFBD><EFBFBD>w
mode11 = 3 // 0-<EFBFBD><EFBFBD>[L0 Y<EFBFBD>fU0<EFBFBD>0_0h0M0 0h0 0c<EFBFBD>[W0_0Bf;Rk0<EFBFBD><EFBFBD>w 0
};
enum ENUM_TIME{
Server = 0, // <EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD>
Local = 1 // <EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD>
};
input ENUM_SEND send = Noti; // <EFBFBD><EFBFBD>w<EFBFBD>e<EFBFBD>l
input ENUM_MODE mode = mode11; // <EFBFBD><EFBFBD>wn0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0
input ENUM_TIME tmode = Local; // <EFBFBD><EFBFBD>wY0<EFBFBD>0Bf;R<EFBFBD>0(<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD>or<EFBFBD>0<EFBFBD>0<EFBFBD>0<EFBFBD>0Bf<EFBFBD><EFBFBD>)g0h<EFBFBD><EFBFBD>
input string stime = "9:00"; // <EFBFBD><EFBFBD>wY0<EFBFBD>0Bf;R
datetime ntime = 0;
int OnInit()
{
EventSetTimer(2);
if(tmode == Server) ntime = 0;
else if(tmode == Local) ntime = TimeLocal() - TimeTradeServer();
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
EventKillTimer();
}
void OnTimer()
{
static bool a=TerminalInfoInteger(TERMINAL_TRADE_ALLOWED),
b=TerminalInfoInteger(TERMINAL_DLLS_ALLOWED);
static datetime nowtime = TimeTradeServer();
int f = 0;
string message = "";
// -<EFBFBD><EFBFBD>[L0 Y<EFBFBD>fU0<EFBFBD>0_0h0M0k0<EFBFBD><EFBFBD>w
if(mode == mode01 || mode == mode11){
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false && a == true){
f = 1;
message = "<00><><EFBFBD>R<EFBFBD>X<EFBFBD><58>L0!q<>Rk0j0<6A>0~0W0_0";
a = TerminalInfoInteger(TERMINAL_TRADE_ALLOWED);
}
else if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == true && a == false){
f = 1;
message = "<00><><EFBFBD>R<EFBFBD>X<EFBFBD><58>L0 g<>Rk0j0<6A>0~0W0_0";
a = TerminalInfoInteger(TERMINAL_TRADE_ALLOWED);
}
if(TerminalInfoInteger(TERMINAL_DLLS_ALLOWED) == false && b == true){
f = 1;
message = "DLL<00>0O(uY0<59>01<30><31>SL0j0O0j0<6A>0~0W0_0";
b = TerminalInfoInteger(TERMINAL_DLLS_ALLOWED);
}
else if(TerminalInfoInteger(TERMINAL_DLLS_ALLOWED) == true && b == false){
f = 1;
message = "DLLn0O(uL01<30><31>SU0<55>0~0W0_0";
b = TerminalInfoInteger(TERMINAL_DLLS_ALLOWED);
}
}
// c<EFBFBD>[W0_0Bf;Rk0<EFBFBD><EFBFBD>w
if( (mode == mode10 || mode == mode11)&&(nowtime+ntime < StringToTime(stime) && TimeTradeServer()+ntime >= StringToTime(stime)) ){
//f = 1;
if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false){
f = 1;
message += "(NG)---<00><><EFBFBD>R<EFBFBD>X<EFBFBD><58>L0!q<>Rg0Y0\n";
}
else message += "(OK)---<00><><EFBFBD>R<EFBFBD>X<EFBFBD><58>L0 g<>Rg0Y0\n";
if(TerminalInfoInteger(TERMINAL_DLLS_ALLOWED) == false){
f = 1;
message += "(NG)---DLL<00>0O(uY0<59>01<30><31>SL0B0<42>0~0[0<>0\n";
}
else message += "(OK)---DLL<00>0O(uY0<59>0S0h0o01<30><31>SU0[0f0D0~0Y0\n";
if(AccountInfoInteger(ACCOUNT_TRADE_EXPERT) == false){
f = 1;
message += "(NG)---<00><><EFBFBD>R<EFBFBD>X<EFBFBD><58>L01<30><31>SU0<55>0f0D0j0D0<44>S<EFBFBD>^g0Y0";
}
else message += "(OK)---<00><><EFBFBD>R<EFBFBD>X<EFBFBD><58>L0<4C>S<EFBFBD><53>j0<6A>S<EFBFBD>^g0Y0";
}
// <EFBFBD><EFBFBD>wn0<EFBFBD><EFBFBD>O
if(f >= 1 && send == Noti ){ //
if( !SendNotification(message) )
Print("<1A><>wn0<01><>Ok01YWeW0~0W0_00-<2D><>[<5B>0<EFBFBD>x<EFBFBD><78>W0f0O0`0U0D00",GetLastError());
}
else if(f >= 1 && send == Mail ){
if( !SendMail("MT5K0<4B>0n0<1A><>w",message) )
Print("<1A><>wn0<01><>Ok01YWeW0~0W0_00-<2D><>[<5B>0<EFBFBD>x<EFBFBD><78>W0f0O0`0U0D00",GetLastError());
}
nowtime = TimeTradeServer();
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return(rates_total);
}