int start() { int OpenHH=14,OpenMM=25; bool Trade=true; //---- if (Trade) // Разрешение на торговлю. if (TimeHour(TimeCurrent()) >= OpenHH ) // В назначенный час { OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера. //---- return(0); } //+------------------------------------------------------------------+ void OpenOrders(){return(0);}
也许这样更好。
只有交换位置。不过,Hour()>OpenHH比小时和分钟更频繁。
你认为这将提高EA的速度吗?我想知道,也许...坦率地说,我从来没有想过IF中的条件顺序...)
你认为这将提高EA的速度吗?有趣的是,也许...说实话,我从来没有真正想过在IF中设置条件的顺序...)
一切似乎都是正确的,它应该工作。在我的代码中尝试了你的代码--它在几分钟内就能发挥作用。但是只有从14:25到14:59,从15:25到15:59等等。
{
int OpenHH=14,OpenMM=25;
bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH ) // В назначенный час
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}
但只要我加入分钟( TimeMinute(TimeCurrent())>= OpenMM ) - 没有结果。
在使用StrToTime()函数时,该EA也拒绝按分钟下单。
再次感谢...我将继续挖掘...
也许这样更好。
不...这也没有用...
甚至在使用另一个函数StrToTime()时--如果我以整小时为单位指定时间--一切正常,但只要我加上分钟--就没有结果。虽然,正如我在第一篇文章中写的,订单在周五23:45关闭,没有任何问题......
bool Trade=true;
string OpenTime = "14:00"; // Вот так работает!!!
string OpenTime = "14:25"; // А вот так - не работает!!!
if ( StrToTime(OpenTime) == TimeCurrent() && Trade )
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}
不...这也没有用...
甚至在使用另一个函数StrToTime()时--如果我以整小时为单位指定时间--一切正常,但只要加上分钟--就没有结果。虽然,正如我在第一篇文章中所写的,在星期五,订单在23:45关闭,没有任何问题......
bool Trade=true;
string OpenTime = "14:00"; // Вот так работает!!!
string OpenTime = "14:25"; // А вот так - не работает!!!
if ( StrToTime(OpenTime) == TimeCurrent() && Trade )
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}
我不知道...这个代码对我来说也很有效....
你如何测试它?例如,如果在H1和开盘价上,它可能不会起作用。
你如何测试?例如,如果在H1和开盘价上,它可能不会起作用。
你看,就这么简单......。分数必须是TF的倍数......。
现在/如果(TimeCurrent()== StrToTime(OpenTime) && Trade ),如果OpenTime = 14:25 /将工作,但只在TF=M1和M5 ...打开订单的功能需要当前的报价,但关闭订单的功能却不需要它们...
我不知为何错过了这一点(因为我没有经验)......
非常感谢,我已经把它整理出来了...
Sepulca:
你如何测试?例如,如果在H1和开盘价上,它可能不会起作用。哈哈...这里有一个谎言...
结果发现问题出在OpenOrders()函数中。我完全忘记了取消对蜡烛(柱)分解时的订单开仓控制。
if (Volume[0] > 1) return;
因此,在专家顾问测试的TF上,它是在这些分钟内开出订单的。
一般来说,愚蠢的人,在一个艰难的...
谢谢...