任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 249

 
Sepulca:

也许这样更好。

只是交换位置。Hour()>OpenHH比小时和分钟更频繁。
 
artmedia70:
只有交换位置。不过,Hour()>OpenHH比小时和分钟更频繁。


你认为这将提高EA的速度吗?我想知道,也许...坦率地说,我从来没有想过IF中的条件顺序...)
 
Sepulca:

你认为这将提高EA的速度吗?有趣的是,也许...说实话,我从来没有真正想过在IF中设置条件的顺序...)
嗯...我不是在谈论巨大的增长,但仍...直到带有新的MQL4的更新终端 被发布,所有的逻辑条件都被读到最后,即使第一个条件是假的。
 
Sepulca:


一切似乎都是正确的,它应该工作。在我的代码中尝试了你的代码--它在几分钟内就能发挥作用。但是只有从14:25到14:59,从15:25到15:59等等。


谢谢你的及时答复,但是--唉,有些东西不工作了......代码只以这种方式工作,无论是在脚本的主体还是在EA的主体。按时间和功能来看--一切都很好。订单只能通过时钟下达!
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);}

但只要我加入分钟( TimeMinute(TimeCurrent())>= OpenMM ) - 没有结果。

在使用StrToTime()函数时,该EA也拒绝按分钟下单。

再次感谢...我将继续挖掘...

 
Sepulca:

也许这样更好。

不...这也没有用...

甚至在使用另一个函数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);}

 
Crosswert:

不...这也没有用...

甚至在使用另一个函数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和开盘价 上,它可能不会起作用。
 
Sepulca:
你如何测试它?例如,如果在H1和开盘价上,它可能不会起作用。
建议以会议记录上的开盘价 进行测试。
 
Sepulca:
你如何测试?例如,如果在H1和开盘价上,它可能不会起作用。

你看,就这么简单......。分数必须是TF的倍数......。

现在/如果(TimeCurrent()== StrToTime(OpenTime) && Trade ),如果OpenTime = 14:25 /将工作,但只在TF=M1和M5 ...打开订单的功能需要当前的报价,但关闭订单的功能却不需要它们...

我不知为何错过了这一点(因为我没有经验)......

非常感谢,我已经把它整理出来了...

 

Sepulca:

你如何测试?例如,如果在H1和开盘价上,它可能不会起作用。


哈哈...这里有一个谎言...

结果发现问题出在OpenOrders()函数中。我完全忘记了取消对蜡烛(柱)分解时的订单开仓控制。

if (Volume[0] > 1) return;

因此,在专家顾问测试的TF上,它是在这些分钟内开出订单的。

一般来说,愚蠢的人,在一个艰难的...

谢谢...