错误、漏洞、问题 - 页 2132 1...212521262127212821292130213121322133213421352136213721382139...3184 新评论 Alexey Viktorov 2018.02.17 09:42 #21311 fxsaber:当作者是一个兼职的主持人。而是一个版主和兼职编码员。 TheXpert 2018.02.17 10:27 #21312 fxsaber: KB的EA作者在相关讨论中删除指出其代码错误的第三方评论,这样做对吗?当然不是。 Artyom Trishkin 2018.02.17 11:55 #21313 fxsaber: KB的EA作者在相关讨论中删除指出其代码错误的第三方评论,这样做对吗? 不,当然不是。这种评论有助于纠正这些错误。沉默或捣毁它们使KB成为一个糟糕的手册。 A100 2018.02.17 20:04 #21314 我不明白,在MQL中反其道而行之的意义何在?C++ VS2017MQLprintf( "%s", ... )printf( "%S", ... )printf( "%S", ... )printf( "%s", ... )printf( "%c", ... )printf( "%C", ... )printf( "%C", ... )printf( "%c", ... ) 事实上,MQL::printf与CPP::wprintf相对应,尽管在MQL中没有CPP::printf的类似物。 Renat Fatkhullin 2018.02.17 20:40 #21315 A100:我不明白,在MQL中反其道而行之的意义何在? C++ VS2017MQLprintf( "%s", ... )printf( "%S", ...)printf( "%S", ...)printf( "%s", ... )printf( "%c", ... )printf( "%C", ... )printf( "%C", ... )printf( "%c", ... ) 实际上,MQL::printf与CPP::wprintf相对应,尽管在MQL中没有CPP::printf的类似物。 MQL5是所有的unicode,所以我们已经完全放弃了单字节的字符串。 A100 2018.02.17 20:59 #21316 Renat Fatkhullin: MQL5是所有的unicode,所以我们已经完全放弃了单字节的字符串。我并不完全相信!一切正常。 void OnStart() { uchar ch[] = { 0x41,0x6E,0x73,0x69,0x20,0x69,0x73,0x20,0x61,0x6C,0x69,0x76,0x65,0x21 }; string ansi; for ( int i = 0, j = 0; i < ArraySize( ch ); i+=2, j++ ) StringSetCharacter( ansi, j, ch[ i ] | ch[ i + 1 ] << 8 ); printf( "%S", ansi ); } 结果:安西还活着! Renat Fatkhullin 2018.02.17 21:13 #21317 A100:我并不完全相信!一切正常。 结果:安西还活着!将二进制编码打包成unicode,然后在通过系统函数的调用中获得爆炸的风险是不明智的。 以后可能会过滤掉这种尝试。 A100 2018.02.17 21:38 #21318 Renat Fatkhullin:在系统函数调用中获得爆炸的风险是不合理的。不要夸大其词,因为字符串保证以零结束。此外,单字节字符和多字节字符实际上是Unicode的一部分,在MQL中也都能正常工作,这使得它可以用正常的(而不是那种可怕的单倍体)字体在专家标签中输出。 这就像禁止从dll函数中调用参数ugar[],担心用户会错误地填写(例如,不会以0结尾),而许多系统函数恰恰需要ugar[],而不是ushort[](顺便说一下,ushort也可能被错误地填写)。 A100 2018.02.17 21:51 #21319 第2行是以人名(非单色)字体输出。正如你所看到的,从技术上讲,只为::ArrayPrint()留下单色字体是很容易的。 Aleksandr Teleguz 2018.02.18 11:58 #21320 你好。请帮助我找到这个错误的原因。我正在把一个指标从mql4转移到mql5.我正在使用以下 "外壳 "来实现iHigh功能。 double iHigh(string symbol,ENUM_TIMEFRAMES tf,int index) { if(index < 0) return(-1); double Arr[1]; if(CopyHigh(symbol,tf,index,1,Arr)>0) return(Arr[0]); else { Print(__FUNCTION__,GetLastError()); return(-1); } } 结果,我得到了错误4301:"未知符号",尽管Symbol()函数 返回的一个字符串被作为符号参数传递。下面是调用iHigh的函数的一段代码 ENUM_TIMEFRAMES tf=Period(); string symbol = Symbol(); if(filtr1==false) return(true); int i1,i2=0; for(i1=i+1; i2<6; i1++) { if(iLow(symbol,tf,i1)<=iLow(symbol,tf,i1+1) && iHigh(symbol,tf,i1)>=iHigh(symbol,tf,i1+1)) { break; //выход из цикла } else { i2++; } } 1...212521262127212821292130213121322133213421352136213721382139...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
当作者是一个兼职的主持人。
而是一个版主和兼职编码员。
KB的EA作者在相关讨论中删除指出其代码错误的第三方评论,这样做对吗?
当然不是。
KB的EA作者在相关讨论中删除指出其代码错误的第三方评论,这样做对吗?
我不明白,在MQL中反其道而行之的意义何在?
我不明白,在MQL中反其道而行之的意义何在?
MQL5是所有的unicode,所以我们已经完全放弃了单字节的字符串。
我并不完全相信!一切正常。
结果:安西还活着!
我并不完全相信!一切正常。
结果:安西还活着!
将二进制编码打包成unicode,然后在通过系统函数的调用中获得爆炸的风险是不明智的。
以后可能会过滤掉这种尝试。
在系统函数调用中获得爆炸的风险是不合理的。
不要夸大其词,因为字符串保证以零结束。此外,单字节字符和多字节字符实际上是Unicode的一部分,在MQL中也都能正常工作,这使得它可以用正常的(而不是那种可怕的单倍体)字体在专家标签中输出。
这就像禁止从dll函数中调用参数ugar[],担心用户会错误地填写(例如,不会以0结尾),而许多系统函数恰恰需要ugar[],而不是ushort[](顺便说一下,ushort也可能被错误地填写)。
第2行是以人名(非单色)字体输出。正如你所看到的,从技术上讲,只为::ArrayPrint()留下单色字体是很容易的。
你好。请帮助我找到这个错误的原因。我正在把一个指标从mql4转移到mql5.我正在使用以下 "外壳 "来实现iHigh功能。
结果,我得到了错误4301:"未知符号",尽管Symbol()函数 返回的一个字符串被作为符号参数传递。下面是调用iHigh的函数的一段代码