如何了解市场是否关闭?(mql4) - 页 5

 

我仍然没有弄清楚如何从DayOfWeek获得足够的信息。它在机器人启动的那天和其他一些情况下(有时)给出了正确的数值。在我看来,当我打开订单时,它给出了一个正确的值。如果你不打开任何东西,它就会给你提供天气。

我已经这样解决了问题。

...
int realDay=DayOfWeek();
int curHour=TimeHour(TimeLocal());
   while(!IsStopped())
      {
      if (TimeHour(TimeLocal())<curHour) realDay++; 
      curHour=TimeHour(TimeLocal());
      if (realDay==7) realDay=0;        
...     

但我还没有测试过)))),它应该可以工作。

 
winsight:

我仍然没有弄清楚如何从 "DayOfWeek "中获得足够的信息。它在机器人启动的那天和其他一些情况下(有时)给出了正确的数值。在我看来,当我打开订单时,它给出了一个正确的值。如果你不打开任何东西,它就会给你提供天气。

我已经这样解决了问题。

但我还没有测试过)))应该能行。

这更简单--使用TimeDayOfWeek。

int dayOfWeek = TimeDayOfWeek(TimeCurrent());
[删除]  
Ihor Herasko:
通过这种方式,你将只获得交易工具的许可状态。如果该工具被交易,你将在一周的 任何一天 得到真实的交易。

Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED))。

假的

 
Vasyl Nosal:

Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED))。

假的

我的版本如下。

   Alert("Trade allowed by MarketInfo: ", bool(MarketInfo(Symbol(),MODE_TRADEALLOWED)));
   Alert("Trade allowed by IsTradeAllowed: ", bool(IsTradeAllowed()));
   Alert("Trade allowed by IsTradeAllowed 2-nd version: ", bool(IsTradeAllowed(Symbol(), TimeLocal())));

结果。

2015.12.20 16:41:21.196 Test EURUSD,H1: Alert: Trade allowed by IsTradeAllowed 2-nd version: false
2015.12.20 16:41:21.196 Test EURUSD,H1: Alert: Trade allowed by IsTradeAllowed: true
2015.12.20 16:41:21.196 Test EURUSD,H1: Alert: Trade allowed by MarketInfo: true

在我的电脑上,时间是GMT+2。

这就是为什么我不明白你是如何在第一种情况下设法得到假的。也许,你拿了一个原则上没有交易的工具。

以下是结论。

  1. 第一个和第二个选项基本上是一致的。他们只指出,该工具的自动交易已经启用,并且有自由贸易流动。
  2. 第三种变体正是我们需要的。它允许你知道在一个工具上的交易许可,鉴于其工作时间表。
[删除]  
Ihor Herasko:

我的版本是这样的。

结果。

在我的电脑上,时间是GMT+2。

因此,不清楚你是如何在第一个选项上弄虚作假的。也许,你拿了一个原则上没有交易的工具。

以下是结论。

  1. 第一个和第二个选项基本上是一致的。他们只指出,该工具的自动交易已经启用,并且有自由贸易流动。
  2. 第三种变体正是我们需要的。它可以让你知道在某一工具上交易的许可,关于它的工作时间表。
欧元兑美元 fxOpen
 
Vasyl Nosal:
欧元兑美元 fxOpen

事实上,这个经纪人有上述脚本的结果。

2015.12.20 17:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by IsTradeAllowed 2-nd version: false
2015.12.20 17:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by IsTradeAllowed: false
2015.12.20 17:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by MarketInfo: false

开始检查其他经纪公司。经纪人G***X。

2015.12.20 17:18:14.339 Test EURUSD,M314: Alert: Trade allowed by IsTradeAllowed 2-nd version: false
2015.12.20 17:18:14.339 Test EURUSD,M314: Alert: Trade allowed by IsTradeAllowed: false
2015.12.20 17:18:14.339 Test EURUSD,M314: Alert: Trade allowed by MarketInfo: true

经纪人A****i。

2015.12.20 17:20:40.372 Test EURUSD,M15: Alert: Trade allowed by IsTradeAllowed 2-nd version: false
2015.12.20 17:20:40.372 Test EURUSD,M15: Alert: Trade allowed by IsTradeAllowed: true
2015.12.20 17:20:40.372 Test EURUSD,M15: Alert: Trade allowed by MarketInfo: true

经纪人I***a F***x。

2015.12.20 17:21:38.663 test GBPUSD,H1: Alert: Trade allowed by IsTradeAllowed 2-nd version: false
2015.12.20 17:21:38.663 test GBPUSD,H1: Alert: Trade allowed by IsTradeAllowed: false
2015.12.20 17:21:38.663 test GBPUSD,H1: Alert: Trade allowed by MarketInfo: false

我今天的第一次测试是在A*****l M*****s。

因此,我们得到并不是所有的经纪商都有正确工作的IsTradeAllowed(第一个版本)和MODE_TRADEALLOWED。而另一方面,第二个版本的IsTradeAllowed在任何地方都能正确工作。因此,最好是使用它。

[删除]  
Ihor Herasko:

事实上,这个经纪人有上述脚本的结果。

开始检查其他经纪公司。经纪人G***X。

经纪人A****i。

经纪人I***a F***x。

我今天的第一次测试是在A*****l M*****s。

因此,我们得到并不是所有的经纪商都有正确工作的IsTradeAllowed(第一个版本)和MODE_TRADEALLOWED。而另一方面,第二个版本的IsTradeAllowed在任何地方都能正确工作。因此,最好是使用它。

而今天

IsTradeAllowed(Symbol(), TimeCurrent())

体现了懦弱

顺便说一下,你为什么有本地时间

 
Vasyl Nosal:

而今天

IsTradeAllowed(Symbol(), TimeCurrent())

显示了胆小的

顺便说一下,为什么你有本地时间?

今天是个假期,所以很困难。
[删除]  
Alexey Busygin:
这是个周末假期,所以很困难。
事实是,没有一个识别功能是100%的工作。
 
Vasyl Nosal:
事实是,没有一个识别功能是100%有效的。
在某些情况下,响应必须来自DC服务器!这就是为什么它在某种程度上是有效的。