错误、漏洞、问题 - 页 1868 1...186118621863186418651866186718681869187018711872187318741875...3184 新评论 kaus_bonus 2017.04.21 09:32 #18671 建立1589如果一个指标没有这样的行情,或者没有被添加到市场概览中,在不使用IndicatorDelete的情况下,如何使指标中的OnTimer在账户/经纪商改变时停止工作?文档中的勘误--没有IndicatorDelete函数,有ChartIndicatorDelete!https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordeletebool IndicatorDelete( int sub_win // номер подокна const string name // короткое имя индикатора );情况如下 - 我在期货上运行所附的指标,我切换到另一个经纪商,但计时器一直在滴答作响,尽管图表变成黑色,没有更新。它没有写出去初始化的原因REASON_ACCOUNT 6 另一个账户已被激活或由于账户设置的改变而重新连接到交易服务器2017.04.21 12:10:31.810 TF through OnTimer (DDM7,M1) Работаем 2017.04.21 12:10:31.810 TF through OnTimer (DDM7,M1) Аккаунт = AMPGlobalClearing-Demo-CQG тут сменили брокера,причины деинициализации нет 2017.04.21 12:10:36.809 TF through OnTimer (DDM7,M1) Работаем 2017.04.21 12:10:36.809 TF through OnTimer (DDM7,M1) Аккаунт = FXOpen-MT5 //+------------------------------------------------------------------+ //| TF through OnTimer.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window string server; //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- EventKillTimer(); Print("Причина деинициализации = ",reason); } //+------------------------------------------------------------------+ int OnInit() { server=AccountInfoString(ACCOUNT_SERVER); EventSetMillisecondTimer(5000); IndicatorSetString(INDICATOR_SHORTNAME,"name"); //--- indicator buffers mapping //--- return(INIT_SUCCEEDED); } //////////// void OnTimer () { Print("Работаем"); Print("Аккаунт = ",AccountInfoString(ACCOUNT_SERVER)); // if ( server!=AccountInfoString(ACCOUNT_SERVER) ) ChartIndicatorDelete(0,0,"name"); } Документация по MQL5: Стандартная библиотека / Ценовые графики / IndicatorDelete www.mql5.com Стандартная библиотека / Ценовые графики / IndicatorDelete - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 fxsaber 2017.04.21 09:36 #18672 kaus_bonus:建立1589 OnDeinit不被调用。 kaus_bonus 2017.04.21 09:38 #18673 什么意思fxsaber: OnDeinit不被调用。你是什么意思? 根本没有调用,还是在这个代码中? Vladimir Karputov 2017.04.21 09:40 #18674 kaus_bonus:建立1589在不使用IndicatorDelete的情况下,如何使指标中的OnTimer在账户/经纪商改变时停止工作,前提是它没有这样的股票,或者它没有被添加到市场概览中?文档中的勘误--没有IndicatorDelete函数,有ChartIndicatorDelete!https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordelete情况如下 - 我在期货上运行所附的指标,我切换到另一个经纪商,但计时器一直在滴答作响,尽管图表变成黑色,没有更新。它没有写出去初始化的原因REASON_ACCOUNT 6 另一个账户被激活或重新连接到交易服务器是由账户设置的变化引起的装载和卸载指标在以下情况下上传指标在图表上附加一个指标终端的开始(如果一个指标在终端先前关闭之前被连接到一个图表上)加载一个模板(如果一个指标附在一个图表上)剖面图变化(如果指标附在其中一个剖面图上)。符号和/或图表周期的变化,该指标与之相连。在成功地重新编译一个指标后,如果该指标已被连接到一个图表上。改变指标的输入参数。在以下情况下,指标被卸载当指标从图表中分离出来时。关闭终端(如果一个指标已被连接到图表上)。如果一个指标被附在一个图表上,则加载一个模板。关闭该指标所连接的图表如果该指标被附在要改变的概况的一个图表上,则说明概况改变。符号和/或图表周期的变化,该指标与之相连。改变指标的输入参数。帐户变更 "不存在的原因,它意味着指标在帐户切换时没有被卸载,因此,当你改变交易帐户时,指标的OnDeinit()也不会被卸载。 fxsaber 2017.04.21 09:40 #18675 kaus_bonus:你是什么意思? 根本没有调用,还是在这个代码中? 在你的情况下。 kaus_bonus 2017.04.21 09:44 #18676 Vladimir Karputov: 装货和卸货指标在以下情况下,指标被卸载当指标从图表中分离出来时。关闭终端(如果一个指标连接到一个图表上)如果一个指标附在图表上,则加载一个模板关闭该指标所连接的图表如果该指标被附在要改变的概况的一个图表上,则说明概况改变。符号和/或图表周期的变化,该指标与之相连。改变指标的输入参数。帐户切换 "不存在的原因,它意味着指标在帐户切换时没有被卸载,因此当你改变交易帐户时,不会有指标的OnDeinit()。事实上,我提到的原因只对专家顾问系统有效。Коды причины деинициализации эксперта ....那么问题来了--如何在不从图表中彻底删除指标的情况下使定时器停止工作? Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Причины деинициализации www.mql5.com Стандартные константы, перечисления и структуры / Именованные константы / Причины деинициализации - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Vladimir Karputov 2017.04.21 09:48 #18677 kaus_bonus:事实上,我提到的原因只对专家有效那么问题来了--如何让定时器停止工作,而不从图表中大幅删除指标? 在OnInit()中记忆分数。在定时器中查看账户号码。如果分数有变化--退出计时器。 fxsaber 2017.04.21 09:48 #18678 kaus_bonus:那么问题来了--你如何让定时器停止工作,而不从图表中大幅删除指标? 使用ACCOUNT_LOGIN和ACCOUNT_SERVER。 kaus_bonus 2017.04.21 09:54 #18679 你不觉得这是个错误的解决方案吗?假设我们做了ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEW,杀死了计时器,然后回到这个账户,会发生什么? 计时器不会再次启动?以同样的方式将 "账户变更 "的原因添加到指标中更容易,还是我在某些方面错了,这将导致一些困难? fxsaber 2017.04.21 09:58 #18680 kaus_bonus:你必须承认,这是个错误的解决方案。这是个马步!假设我们做了ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEW,杀死了定时器,然后再回到这个计数,会发生什么?当检测到账户变化时,你已经记住了新的特征。你可以把它设计成一个小库,原则是这里(宏)。那么,"歪门邪道 "的东西就不会成为一种困扰了。 1...186118621863186418651866186718681869187018711872187318741875...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
建立1589
如果一个指标没有这样的行情,或者没有被添加到市场概览中,在不使用IndicatorDelete的情况下,如何使指标中的OnTimer在账户/经纪商改变时停止工作?
文档中的勘误--没有IndicatorDelete函数,有ChartIndicatorDelete!
https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordelete
情况如下 - 我在期货上运行所附的指标,我切换到另一个经纪商,但计时器一直在滴答作响,尽管图表变成黑色,没有更新。
它没有写出去初始化的原因
REASON_ACCOUNT
6
另一个账户已被激活或由于账户设置的改变而重新连接到交易服务器
建立1589
OnDeinit不被调用。
你是什么意思? 根本没有调用,还是在这个代码中?
建立1589
在不使用IndicatorDelete的情况下,如何使指标中的OnTimer在账户/经纪商改变时停止工作,前提是它没有这样的股票,或者它没有被添加到市场概览中?
文档中的勘误--没有IndicatorDelete函数,有ChartIndicatorDelete!
https://www.mql5.com/ru/docs/standardlibrary/cchart/cchartindicatordelete
情况如下 - 我在期货上运行所附的指标,我切换到另一个经纪商,但计时器一直在滴答作响,尽管图表变成黑色,没有更新。
它没有写出去初始化的原因
REASON_ACCOUNT
6
另一个账户被激活或重新连接到交易服务器是由账户设置的变化引起的
装载和卸载指标
在以下情况下上传指标
在以下情况下,指标被卸载
帐户变更 "不存在的原因,它意味着指标在帐户切换时没有被卸载,因此,当你改变交易帐户时,指标的OnDeinit()也不会被卸载。
你是什么意思? 根本没有调用,还是在这个代码中?
装货和卸货指标
在以下情况下,指标被卸载
帐户切换 "不存在的原因,它意味着指标在帐户切换时没有被卸载,因此当你改变交易帐户时,不会有指标的OnDeinit()。
事实上,我提到的原因只对专家顾问系统有效。
那么问题来了--如何在不从图表中彻底删除指标的情况下使定时器停止工作?
事实上,我提到的原因只对专家有效
那么问题来了--如何让定时器停止工作,而不从图表中大幅删除指标?
在OnInit()中记忆分数。在定时器中查看账户号码。如果分数有变化--退出计时器。
那么问题来了--你如何让定时器停止工作,而不从图表中大幅删除指标?
你不觉得这是个错误的解决方案吗?
假设我们做了ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEW,杀死了计时器,然后回到这个账户,会发生什么? 计时器不会再次启动?
以同样的方式将 "账户变更 "的原因添加到指标中更容易,还是我在某些方面错了,这将导致一些困难?
你必须承认,这是个错误的解决方案。
这是个马步!
假设我们做了ACCOUNT_LOGIN!=ACCOUNT_LOGIN_NEW,杀死了定时器,然后再回到这个计数,会发生什么?
当检测到账户变化时,你已经记住了新的特征。
你可以把它设计成一个小库,原则是这里(宏)。那么,"歪门邪道 "的东西就不会成为一种困扰了。