错误、漏洞、问题 - 页 1801 1...179417951796179717981799180018011802180318041805180618071808...3184 新评论 Andrey Dik 2017.02.14 06:14 #18001 Dennis Kirichenko: 对演示服务器进行投诉简直是不道德的,尤其是那些没有经纪商支持的服务器 :-) 如果一切都像演示中那样运作,那么要求真正的服务器正常运作就是不道德的。 而MQ服务器应该是一种 "基准",算法开发者可以也应该在上面测试他们的技术。 fxsaber 2017.02.14 08:37 #18002 fxsaber: 多次调用SymbolSelect将导致终端挂起。bool SymbolExist( const string Symb, const bool MarketWatch = true ){ bool Res = false; for (int i = SymbolsTotal(MarketWatch) - 1; (i >= 0) && (!Res); i--) Res = (Symb == SymbolName(i, MarketWatch)); return(Res);}bool SymbolOnOff( const string Symb ){ return(SymbolSelect(Symb, !SymbolExist(Symb)));}void OnStart(){ for (int i = SymbolsTotal(false) - 1; i >= 0; i--) { const string Symb = SymbolName(i, false); if (SymbolOnOff(Symb)) SymbolOnOff(Symb); }} fxsaber 2017.02.14 09:10 #18003 我没有看到帮助中提到,如果一个符号不在市场观察中,就不能为它检索数据。我不得不通过试验和错误来做。 Slava 2017.02.14 10:24 #18004 fxsaber: 我在帮助中没有看到任何提及,如果一个符号不在市场观察中,那么就没有它的数据。不得不通过手写来完成。 对。其中提到了返回的值 双重类型的值。在执行不成功的情况下,可以通过GetLastError() 获得错误信息。 5040 - 用于指定符号名称的字符串参数不正确。4301 - 不明符号(金融工具)。4302 - 在 "市场观察 "中没有选择符号(不在可用列表中)。4303 - 错误的符号属性标识符。 fxsaber 2017.02.14 10:32 #18005 Slawa: 对。其中提到了谢谢你,间接提到。告诉我,如果我通过SymbolSelect将一个符号添加到Market Watch,我怎么知道按符号的Bid/Ask已经可用--SymbolIsSynchronized?SymbolIsSynchronized--对于这个目的来说似乎很昂贵,因为它也提出了M1-历史同步的问题。SymbolIsSynchronized在某些字符上永远不会变成真。 prostotrader 2017.02.14 10:47 #18006 fxsaber:谢谢你,间接提到。告诉我,如果我通过SymbolSelect将一个符号添加到Market Watch,我怎么知道按符号的Bid/Ask已经可用--SymbolIsSynchronized?SymbolIsSynchronized--对于这个目的来说似乎很昂贵,因为它也提出了M1-历史同步的问题。SymbolIsSynchronized在某些符号上永远不会变成真。 它是这样的,只是载入历史需要极长的时间....。 fxsaber 2017.02.14 11:23 #18007 可能很多人都知道,但我现在才猜到在调试时要把_LastError包括在跟踪的值中。推荐。 Slava 2017.02.14 11:24 #18008 在检查历史同步标志之前,你必须先调用CopyRates(Symbol(),PERIOD_M1,0,1000,rates) 如果从指示器中进行,它将准确地给出那里的内容,但要向历史中心提出分页请求。那么它可能是令人痛苦的。 如果是由专家顾问或脚本完成的,那么可以在函数内进行几个周期的请求,并等待响应,作为一项规则,在这种调用历史将被同步。 fxsaber 2017.02.14 11:31 #18009 fxsaber:如果我通过SymbolSelect将一个符号添加到Market Watch,我如何知道该符号的Bid/Ask是否可用?在SymbolSelect(true)之后,我立即询问了价格,结果是零。同时_LastError == 0,SymbolInfoTick== true。我如何知道Marketwatch的新符号的价格已经送到了Marketwatch? [删除] 2017.02.14 11:56 #18010 Slawa: 在检查历史同步标志之前,你必须先调用CopyRates(Symbol(),PERIOD_M1,0,1000,rates)如果从指示器中进行,它将准确地给出那里的内容,但要向历史中心提出分页请求。那么它可能是令人痛苦的。 如果是在EA或脚本中进行,那么在函数中可以进行几个请求周期,等待答案,而且,作为一项规则,历史记录将在这样的调用后被同步。 你是否建议在每次打勾时都要这样做? 1...179417951796179717981799180018011802180318041805180618071808...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对演示服务器进行投诉简直是不道德的,尤其是那些没有经纪商支持的服务器 :-)
而MQ服务器应该是一种 "基准",算法开发者可以也应该在上面测试他们的技术。
多次调用SymbolSelect将导致终端挂起。
{
bool Res = false;
for (int i = SymbolsTotal(MarketWatch) - 1; (i >= 0) && (!Res); i--)
Res = (Symb == SymbolName(i, MarketWatch));
return(Res);
}
bool SymbolOnOff( const string Symb )
{
return(SymbolSelect(Symb, !SymbolExist(Symb)));
}
void OnStart()
{
for (int i = SymbolsTotal(false) - 1; i >= 0; i--)
{
const string Symb = SymbolName(i, false);
if (SymbolOnOff(Symb))
SymbolOnOff(Symb);
}
}
我在帮助中没有看到任何提及,如果一个符号不在市场观察中,那么就没有它的数据。不得不通过手写来完成。
返回的值
双重类型的值。在执行不成功的情况下,可以通过GetLastError() 获得错误信息。
对。其中提到了
谢谢你,间接提到。
告诉我,如果我通过SymbolSelect将一个符号添加到Market Watch,我怎么知道按符号的Bid/Ask已经可用--SymbolIsSynchronized?
SymbolIsSynchronized--对于这个目的来说似乎很昂贵,因为它也提出了M1-历史同步的问题。
SymbolIsSynchronized在某些字符上永远不会变成真。
谢谢你,间接提到。
告诉我,如果我通过SymbolSelect将一个符号添加到Market Watch,我怎么知道按符号的Bid/Ask已经可用--SymbolIsSynchronized?
SymbolIsSynchronized--对于这个目的来说似乎很昂贵,因为它也提出了M1-历史同步的问题。
SymbolIsSynchronized在某些符号上永远不会变成真。
如果从指示器中进行,它将准确地给出那里的内容,但要向历史中心提出分页请求。那么它可能是令人痛苦的。
如果是由专家顾问或脚本完成的,那么可以在函数内进行几个周期的请求,并等待响应,作为一项规则,在这种调用历史将被同步。
如果我通过SymbolSelect将一个符号添加到Market Watch,我如何知道该符号的Bid/Ask是否可用?
在SymbolSelect(true)之后,我立即询问了价格,结果是零。同时_LastError == 0,SymbolInfoTick== true。
我如何知道Marketwatch的新符号的价格已经送到了Marketwatch?
在检查历史同步标志之前,你必须先调用CopyRates(Symbol(),PERIOD_M1,0,1000,rates)
如果从指示器中进行,它将准确地给出那里的内容,但要向历史中心提出分页请求。那么它可能是令人痛苦的。
如果是在EA或脚本中进行,那么在函数中可以进行几个请求周期,等待答案,而且,作为一项规则,历史记录将在这样的调用后被同步。