错误、漏洞、问题 - 页 1783 1...177617771778177917801781178217831784178517861787178817891790...3184 新评论 A100 2017.02.05 22:42 #17821 A100:问题:OnDeinit->M5何时被调用?我的答案是:永远不可能您的上述答案:异步且有延迟30多分钟过去了,OnDeinit->M5仍未被调用。现在让我们改变专家顾问的代码(稍微改变一下顺序)...结果。2017.02.06 01:31:45.002 OnInit->M52017.02.06 01:31:48.340 OnDeinit->M5:1 立即调用,没有延迟! 2017.02.06 01:31:48.409 OnInit->M15 附加的文件: Test.mq5 2 kb Renat Fatkhullin 2017.02.05 22:54 #17822 A100:30多分钟过去了,仍然没有OnDeinit->M5的调用。现在让我们改变专家代码(稍微改变一下顺序)...... 请附上代码。 A100 2017.02.05 23:05 #17823 Renat Fatkhullin: 请附上代码。 附在上一个同名的帖子后面。实际上,静态调用已经被动态调用所取代,结果是根本不同的 Renat Fatkhullin 2017.02.05 23:15 #17824 A100: 附在上一个同名的帖子后面。实际上,一个静态调用被一个动态调用所取代,结果是根本性的不同 谢谢你,让我们研究一下。 似乎在第一种情况下,没有OnDeinit和静态变量,我们忘记了在结果中调用析构器,对优化起了坏作用。 Slava 2017.02.06 06:22 #17825 Alexey Kozitsyn: 你能澄清我们在谈论的是哪条线吗?同一符号的所有指标不是都在同一个线程中起作用吗? 是的,不同的线程将是如果图表改变符号,而不是时间框架。 如果我们只改变时间框架,那么指标的新副本将与旧副本在同一线程中计算。 但我们也不能依赖M5上的Deinit命令会比M15上的Init命令更早被处理的事实。 fxsaber 2017.02.06 06:25 #17826 Slawa: 如果我们只改变时间框架,那么指标的新副本将与旧副本在同一线程中计算。 但这里我们不能依赖M5的Deinit命令会比M15的Init命令更早被处理。 请把它添加到帮助中,谢谢。 Vladislav Andruschenko 2017.02.06 07:42 #17827 Slawa:你好。 请密切关注信息https://www.mql5.com/ru/forum/166358/page4#comment_4064293这一点非常重要。 有一个新的错误1158,是不是在帮助中没有? cannot set millisecond timer (500) www.mql5.com Здравствуйте, клиент прислал лог файл, в котором я увидел такую запись cannot set millisecond timer (500) что она значит? и почему... A100 2017.02.06 11:08 #17828 执行错误在'Test_s.ex5'中,在0x030A00AD处读到0x00000005的访问违反。//Test_s.mq5 //Скриптclass A {};#import "TestA.ex5" A *error();#import class B { protected: B( const string& name ) : name( name ) {} virtual int g( const MqlParam& param[] ) const { return ::IndicatorCreate( NULL, PERIOD_CURRENT, IND_CUSTOM, ::ArraySize( param ), param ); } const string name;bool f( int h ) const{ if ( ::ChartIndicatorAdd( 0, 0, h ) ) return true; error(); return false;}};class C : protected B { protected: C( int h, string name ) : B( name ), h( h ) { f( this.h ); } const int h;};class D : C { public: D( string path ) : C( g( path ), path ) {}int g( const string& path ){ MqlParam param[ 1 ]; param[ 0 ].type = TYPE_STRING; param[ 0 ].string_value = path; return g( param );}};void OnStart() { D d( "Test_i" ); }//TestA.mq5#property libraryclass A {};A * error() export { return NULL; }所有文件(除了指标)都位于MQL5文件夹/Scripts/。指标本身不是必需的,但它可以下载,例如从https://www.mql5.com/ru/forum/1111/page1803#comment_4063671 Ошибки, баги, вопросы www.mql5.com Форум алго-трейдеров MQL5 Errors, bugs, questions Use OPP to initialize Getting indicator settings by Rashid Umarov 2017.02.06 11:32 #17829 fxsaber: 请把它放在帮助中。 看这里 -运行中的程序关于MQL5中的方案摘要,见下表。 节目 执行 注意事项 脚本 在它自己的线程中,有多少个脚本就有多少个执行线程 循环的脚本不能打断其他程序的工作 专家 在它自己的线程中,有多少专家--就有多少执行线程给他们。 循环的专家不能扰乱其他程序的工作 指标 一个符号上的所有指标有一个执行线程。有 多少个指标符号 - 就有多少个执行线程 一个指标中的无尽循环将停止该符号上的所有其他指标 Aleksey Vyazmikin 2017.02.06 11:45 #17830 A100:它们被写成B'111111111111111111111111'的形式。唉,我对这种格式不熟悉。实验表明,图形缓冲器中的数字与双倍数的表示规则相同--即不可能通过图形缓冲器传递这么长的数字--令人沮丧。 1...177617771778177917801781178217831784178517861787178817891790...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
问题:OnDeinit->M5何时被调用?
我的答案是:永远不可能
您的上述答案:异步且有延迟
30多分钟过去了,OnDeinit->M5仍未被调用。
现在让我们改变专家顾问的代码(稍微改变一下顺序)...
结果。
2017.02.06 01:31:45.002 OnInit->M5
2017.02.06 01:31:48.340 OnDeinit->M5:1 立即调用,没有延迟!
2017.02.06 01:31:48.409 OnInit->M15
30多分钟过去了,仍然没有OnDeinit->M5的调用。
现在让我们改变专家代码(稍微改变一下顺序)......
请附上代码。
附在上一个同名的帖子后面。实际上,一个静态调用被一个动态调用所取代,结果是根本性的不同
似乎在第一种情况下,没有OnDeinit和静态变量,我们忘记了在结果中调用析构器,对优化起了坏作用。
你能澄清我们在谈论的是哪条线吗?同一符号的所有指标不是都在同一个线程中起作用吗?
如果我们只改变时间框架,那么指标的新副本将与旧副本在同一线程中计算。
但我们也不能依赖M5上的Deinit命令会比M15上的Init命令更早被处理的事实。
如果我们只改变时间框架,那么指标的新副本将与旧副本在同一线程中计算。
但这里我们不能依赖M5的Deinit命令会比M15的Init命令更早被处理。
你好。
请密切关注信息https://www.mql5.com/ru/forum/166358/page4#comment_4064293
这一点非常重要。
有一个新的错误1158,是不是在帮助中没有?
执行错误
在'Test_s.ex5'中,在0x030A00AD处读到0x00000005的访问违反。
class A {};
#import "TestA.ex5"
A *error();
#import
class B { protected:
B( const string& name ) : name( name ) {}
virtual int g( const MqlParam& param[] ) const { return ::IndicatorCreate( NULL, PERIOD_CURRENT, IND_CUSTOM, ::ArraySize( param ), param ); }
const string name;
bool f( int h ) const
{
if ( ::ChartIndicatorAdd( 0, 0, h ) )
return true;
error();
return false;
}
};
class C : protected B { protected:
C( int h, string name ) : B( name ), h( h ) { f( this.h ); }
const int h;
};
class D : C { public:
D( string path ) : C( g( path ), path ) {}
int g( const string& path )
{
MqlParam param[ 1 ];
param[ 0 ].type = TYPE_STRING;
param[ 0 ].string_value = path;
return g( param );
}
};
void OnStart() { D d( "Test_i" ); }
#property library
class A {};
A * error() export { return NULL; }
所有文件(除了指标)都位于MQL5文件夹/Scripts/。
指标本身不是必需的,但它可以下载,例如从https://www.mql5.com/ru/forum/1111/page1803#comment_4063671
请把它放在帮助中。
关于MQL5中的方案摘要,见下表。
节目
执行
注意事项
脚本
在它自己的线程中,有多少个脚本就有多少个执行线程
循环的脚本不能打断其他程序的工作
专家
在它自己的线程中,有多少专家--就有多少执行线程给他们。
循环的专家不能扰乱其他程序的工作
指标
一个符号上的所有指标有一个执行线程。有 多少个指标符号 - 就有多少个执行线程
一个指标中的无尽循环将停止该符号上的所有其他指标
它们被写成B'111111111111111111111111'的形式。
唉,我对这种格式不熟悉。
实验表明,图形缓冲器中的数字与双倍数的表示规则相同--即不可能通过图形缓冲器传递这么长的数字--令人沮丧。