限制交易时间案例
void OnStart()
{
// 限制交易时间: 8:30 到 20:30
datetime dt = D'20:30:57'; // 当前时间
datetime dt_start = D'08:30:58'; // 开始时间
datetime dt_stop = D'20:30:58'; // 停止时间
bool c = getTradeTime(dt,dt_start,dt_stop);
if(c == true)
{
Print("当前状态: 开工中..." );
}
else
{
Print("当前状态: 停止中..." );
}
}
bool getTradeTime(datetime dt,datetime dt_start, datetime dt_stop)
{
MqlDateTime mdt;
MqlDateTime mdt_start;
MqlDateTime mdt_stop;
TimeToStruct(dt,mdt); // 解构当前时间
TimeToStruct(dt_start,mdt_start); // 解构开始时间
TimeToStruct(dt_stop,mdt_stop); // 解构停止时间
/*
// 限制交易时间: 8:30 到 20:30
datetime dt = D'10:30:00'; // 当前时间
datetime dt_start = D'08:30:00'; // 开始时间
datetime dt_stop = D'20:30:00'; // 停止时间
*/
if(mdt.hour > mdt_start.hour && mdt.hour < mdt_stop.hour)
{
return true;
}
else if(mdt.hour == mdt_start.hour)
{
if(mdt.min > mdt_start.min)
{
return true;
}
else if(mdt.min == mdt_start.min)
{
if(mdt.sec >= mdt_start.sec) return true;
}
}
else if(mdt.hour == mdt_stop.hour)
{
if(mdt.min < mdt_stop.min)
{
return true;
}
else if(mdt.min == mdt_stop.min)
{
if(mdt.sec <= mdt_stop.sec) return true;
}
}
return false;
}