错误、漏洞、问题 - 页 1803 1...179617971798179918001801180218031804180518061807180818091810...3184 新评论 [删除] 2017.02.14 12:50 #18021 Slawa: 或者,就像刚才在这里说的,问一下条数,也是几个周期。如果在很长的空闲时间后有一次对Bars()函数的调用,启动指标--这是否类似于检查SymbolIsSynchronized()? [删除] 2017.02.14 12:51 #18022 Slawa: 这也适用于指标。创建一个1分钟的定时器,并要求提供所有感兴趣的时间序列的条数。通过检查定时的事实,定时不被保持。 把这一点添加到文档中会很好... fxsaber 2017.02.14 14:40 #18023 如果你在Metaquotes-Demo的市场观察中只留下MOEX符号,TimeCurrent 将滞后15分钟。只要增加一个外汇符号,TimeCurrent就会一下子向前跳15分钟。 [删除] 2017.02.14 15:25 #18024 亲爱的开发者们!我再次要求尽快为情感值(SYMBOL_SESSION_...)和tumbler( OnBookEvent())添加时间,单位为ms。给一个机会,使所有可用的数据同步化! fxsaber 2017.02.14 17:32 #18025 Metaquotes-Demo,符号DIG-20170330SymbolInfoDouble(Symb,::SYMBOL_ASK) = 29006.0SymbolInfoDouble(Symb,SYMBOL_SESSION_PRICE_LIMIT_MIN) = 29528.0(ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb,SYMBOL_TRADE_MODE) = SYMBOL_TRADE_MODE_FULL (4)SYMBOL_SESSION_PRICE_LIMIT_MIN 中的错误: 高于Ask - 不能设置BuyLimit。 fxsaber 2017.02.14 18:03 #18026 fxsaber:请分享你的自行车:一个告诉你一个符号是否准备交易的bool函数。ENUM_DAY_OF_WEEK GetDayOfWeek( const datetime time ){ MqlDateTime sTime = {0}; TimeToStruct(time, sTime); return((ENUM_DAY_OF_WEEK)sTime.day_of_week);}// true - находимся в торговой сессииbool SessionTrade( string Symb = NULL ){ datetime TimeNow = TimeTradeServer(); const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow); TimeNow %= 24 * 60 * 60; if ((Symb == NULL) || (Symb == "")) Symb = Symbol(); bool Res = false; datetime From, To; for (int i = 0; SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To) && (!Res); i++) Res = ((From <= TimeNow) && (TimeNow < To)); return(Res);}// Возвращает true, если символ торгуемый. Иначе - false.bool SymbolTrade( string Symb = NULL, const int Pause = -1 ){ MqlTick Tick; if ((Symb == NULL) || (Symb == "")) Symb = Symbol(); if (Pause >= 0) Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch. return(SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) && ((ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL)) : false);} mql5语言的特点、微妙之处以及技巧 Errors, bugs, questions Features of the mql5 Artyom Trishkin 2017.02.14 18:10 #18027 fxsaber: if (Pause >= 0) Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch. 如果它是在一个指标中呢? fxsaber 2017.02.14 18:27 #18028 Artyom Trishkin: 如果它是在一个指标中呢? 因此,腿部 关于交易、自动交易系统和交易策略测试的论坛 虫子,虫子,问题 fxsaber, 2017.02.14 12:31 在SymbolSelect(true)之后,我立即要求提供价格,结果是零。随着_LastError == 0,SymbolInfoTick == true。我如何知道Marketwatch的新符号的价格已经送到了Marketwatch? 所以,如果没有做SymbolSelect(true),而且我们没有特别设置Pause,那么就不会有滑点。 Artyom Trishkin 2017.02.14 19:27 #18029 fxsaber: 因此,腿。因此,如果没有做SymbolSelect(true),而且你没有特别设置Pause,就不会有滑点。 说实话,我不明白。我想知道:你如何知道一个指标中的符号是否准备好了?Sleep() 在指标中不起作用。 如果指标在事先不知道的符号上绘制一些统计数据,当你从面板上选择下一个符号时,你往往不能一下子得到它的数据,表格中会包含错误的信息...我怎样才能确保从符号中收到的数据是正确的,而且数量足够多,以获得进一步的正确计算? fxsaber 2017.02.14 20:02 #18030 Artyom Trishkin: 说实话,我没有得到它。我想知道:你如何知道一个指标中的符号是否准备好了?Sleep()在指标中不起作用。如果指标在表中显示一些事先不知道的符号的统计数据,那么当你从面板上选择下一个符号时,你往往不能立即得到它的数据,而在表中显示错误的信息...对于进一步的计算,我怎样才能确定从符号中获得的数据是正确的,并且有足够的数量来获得进一步的正确计算? 只有当符号不在市场观察中时才需要睡眠。对于在指标开始之前(和期间)处于市场观察中的所有符号,不需要滑点。 1...179617971798179918001801180218031804180518061807180818091810...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
或者,就像刚才在这里说的,问一下条数,也是几个周期。
这也适用于指标。创建一个1分钟的定时器,并要求提供所有感兴趣的时间序列的条数。
通过检查定时的事实,定时不被保持。
亲爱的开发者们!我再次要求尽快为情感值(SYMBOL_SESSION_...)和tumbler( OnBookEvent())添加时间,单位为ms。给一个机会,使所有可用的数据同步化!
Metaquotes-Demo,符号DIG-20170330
SymbolInfoDouble(Symb,SYMBOL_SESSION_PRICE_LIMIT_MIN) = 29528.0
(ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb,SYMBOL_TRADE_MODE) = SYMBOL_TRADE_MODE_FULL (4)
SYMBOL_SESSION_PRICE_LIMIT_MIN 中的错误: 高于Ask - 不能设置BuyLimit。
请分享你的自行车:一个告诉你一个符号是否准备交易的bool函数。
{
MqlDateTime sTime = {0};
TimeToStruct(time, sTime);
return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}
// true - находимся в торговой сессии
bool SessionTrade( string Symb = NULL )
{
datetime TimeNow = TimeTradeServer();
const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);
TimeNow %= 24 * 60 * 60;
if ((Symb == NULL) || (Symb == ""))
Symb = Symbol();
bool Res = false;
datetime From, To;
for (int i = 0; SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To) && (!Res); i++)
Res = ((From <= TimeNow) && (TimeNow < To));
return(Res);
}
// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( string Symb = NULL, const int Pause = -1 )
{
MqlTick Tick;
if ((Symb == NULL) || (Symb == ""))
Symb = Symbol();
if (Pause >= 0)
Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
return(SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) &&
((ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL)) : false);
}
if (Pause >= 0)
Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
如果它是在一个指标中呢?
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
fxsaber, 2017.02.14 12:31
在SymbolSelect(true)之后,我立即要求提供价格,结果是零。随着_LastError == 0,SymbolInfoTick == true。
我如何知道Marketwatch的新符号的价格已经送到了Marketwatch?
因此,腿。
如果指标在事先不知道的符号上绘制一些统计数据,当你从面板上选择下一个符号时,你往往不能一下子得到它的数据,表格中会包含错误的信息...我怎样才能确保从符号中收到的数据是正确的,而且数量足够多,以获得进一步的正确计算?
说实话,我没有得到它。我想知道:你如何知道一个指标中的符号是否准备好了?Sleep()在指标中不起作用。如果指标在表中显示一些事先不知道的符号的统计数据,那么当你从面板上选择下一个符号时,你往往不能立即得到它的数据,而在表中显示错误的信息...对于进一步的计算,我怎样才能确定从符号中获得的数据是正确的,并且有足够的数量来获得进一步的正确计算?