专家顾问 - 杂项问题 - 页 40

 
Max Enrik:


不,我需要关闭所有图表符号订单。
是的,要有正确的magicnumber。

if(closeallsymbols==false && OrderSymbol()!=Symbol()) 
这有点奇怪。
 
Marco vd Heijden:
这有点奇怪。

是啊!
这里也一样!我本来以为这部分的关闭订单功能 很奇怪,但它是有效的。

 
如果你想使用预定义变量 (Bid/Ask) 或在OrderSelect 之前使用OrderClosePrice(),你必须在睡眠后和多次服务器调用之间刷新Rates"中的哪一部分 不清楚?
 
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
  • docs.mql4.com
RefreshRates - Timeseries and Indicators Access - MQL4 Reference
 

对不起,请不要责怪我。仍然很困惑。
我需要问一些问题,由于我的代码知识不足,我需要一步一步地做。

Q1: 我可以使用while()吗?
Q2: 我可以使用sleep() 吗?
Q3: RefreshRates()可以解决我的问题吗?(请问最后一件事能解决我的问题吗?)

请让我知道这一点,因为我不想伤害我的关闭订单功能

 

你可以使用while,但你还需要添加一个计数器,在尝试X次后跳出循环,否则你就有可能让专家陷入无尽的循环。

你说了你的问题,但我不知道是什么问题。

如果你的问题是关于收盘价,那么你可以直接使用。

MarketInfo(OrderSymbol(),MODE_ASK);
MarketInfo(OrderSymbol(),MODE_BID);

分别为OP_BUY和OP_SELL添加OrderType()开关。

 
Marco vd Heijden:

你说了你的问题 ,但我不知道是什么问题。

我只想说我的问题是:有时我的关闭未结订单功能 会留下一些未结订单。我想一次性关闭所有的未结订单。

---

第二次编辑

我可以把我所有的Bid和Ask函数替换成MarketInfo()吗?

MarketInfo(OrderSymbol(),MODE_BID);
MarketInfo(OrderSymbol(),MODE_ASK);
 
whroeder1:
如果你想使用预定义变量 (Bid/Ask) 或在OrderSelect 之前使用OrderClosePrice(),你必须在睡眠后和多次服务器调用之间刷新Rates"中的哪一部分 不清楚?


RefreshRates()我不明白我可以把它放在哪里。

谢谢你的意见。

 
Max Enrik:

我只想说我的问题是:有时我的关闭未结订单功能 会留下未结订单。我想一直一次性关闭我所有的未结订单。

---

第2次编辑

我可以把我的Bid和Ask函数全部替换成MarketInfo()吗,请问?

是的,如果你处理的是一个不是图表符号的头寸。
 
Marco vd Heijden:
是的,如果你正在处理一个不是图表符号的位置。


非常感谢,我会把它们全部替换掉,让我们看看周一 会发生什么。

祝你周末愉快。