错误、漏洞、问题 - 页 98 1...919293949596979899100101102103104105...3184 新评论 Ruslan Khasanov 2010.08.17 09:07 #971 我不明白 "狗被埋在哪里",代码可以工作,一切正常,但编译器警告 由于类型转换Indi.mqh 125 45可能导致的数据丢失让我感到疑惑。//+------------------------------------------------------------------+ //|Получение значений позиций в средe BB цены AppPrice,Fast/Slow TEMA| //+------------------------------------------------------------------+ void CIndi::SetPricePositions(ushort SymbolPosition,ushort Index,uchar AppPrice) { int handle=GetHandle(SymbolPosition,BANDS); double Upper =Upper_Band(handle,Index); double Base =Base_Band(handle,Index); double Lower =Lower_Band(handle,Index); double FTema =GetValuesFromIndi(GetHandle(SymbolPosition,TEMA_FAST),0,Index); double STema =GetValuesFromIndi(GetHandle(SymbolPosition,TEMA_SLOW),0,Index); Bollinger[SymbolPosition][PRICE_POSITION]=(double)GetPricePos(handle,Index,AppPrice); ??? Bollinger[SymbolPosition][FAST_POSITION] =(double)Custom.Position(Lower,Upper,FTema); ??? Bollinger[SymbolPosition][SLOW_POSITION] =(double)Custom.Position(Lower,Upper,STema); ??? Bollinger[SymbolPosition][UPPER] =(double)Upper; ??? Bollinger[SymbolPosition][BASE] =(double)Base; ??? Bollinger[SymbolPosition][LOWER] =(double)Lower; ??? } Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора www.mql5.com Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Предупреждения компилятора - Документация по MQL5 [删除] 2010.08.17 10:39 #972 对开发商而言。据我所知,交换问题已经解决了?或者说,那就不清楚为什么这个话题从servicedesk..... 消失了。 Evgeniy Trofimov 2010.08.17 11:02 #973 在测试一个EA 时void OnTick(){ Print(iTest()); } //+------------------------------------------------------------------+ int iTest(){ double i; int j; for(int x=3; x>0; x--) { i=i+0.00001; }//Next x j=int(i/_Point); return(j); }//iTest()日志显示的数字不断增加!它应该是这样的吗?在MQL4中,你应该写上static double i; Renat Fatkhullin 2010.08.17 11:17 #974 EvgeTrofi:在测试一个EA时日志显示的数字不断增加!这应该是这样的吗? 是的,应该是这样。 你没有初始化局部变量 i,在随后的调用中,它被分配在堆栈的同一位置,与之前的调用相同。 Документация по MQL5: Основы языка / Переменные / Локальные переменные www.mql5.com Основы языка / Переменные / Локальные переменные - Документация по MQL5 Evgeniy Trofimov 2010.08.17 11:41 #975 Renat:是的,应该是这样的。 你还没有初始化局部变量 i,在接下来的调用中,它将被分配到堆栈的同一位置,因为它在之前的调用中是这样。在哪种情况下应该使用静态 内存类?帮助中令人费解的一句话:"声明为静态的 局部变量具有一个块的范围,尽管它们从程序执行开始就存在",请解释。这句话中似乎有一个句法或语法上的错误 :)注意帮助中的例子:https://www.mql5.com/ru/docs/basis/variables/static如果你从代码中删除静态 字,什么也不会改变。int Counter() { int count; count++; if(count%100==0) Print("Функция Counter была вызвана уже ",count," раз"); return count; } void OnStart() { //--- int c=345; for(int i=0;i<1000;i++) { int c=Counter(); } Print("c = ",c); }问题:如果没有静态,我们为什么需要静态 呢? Документация по MQL5: Основы языка / Переменные / Статические переменные www.mql5.com Основы языка / Переменные / Статические переменные - Документация по MQL5 Aleksey Sergan 2010.08.17 12:02 #976 ALozovoy: 你好。你在[测试器]的描述中缺少ExpertParameters参数。你可以在帮助中找到更多关于它的信息。 谢谢你,它正在工作。 Evgeniy Trofimov 2010.08.17 12:07 #977 请告诉我,当初增加在块内声明变量的能力的目的是什么?以前在这样的情况下。 int c; for(int i=0;i<1000;i++) { int c=Counter(); }以前,会弹出一个框,指出一个直接被声明了两次,很明显,你必须为这个变量想出另一个名字,或者使用相同的名字,但没有int。但现在可能会变得很混乱。在C++中也是如此吗? (在学习MQL之前,我曾经用Visual Basic编程。那里没有这样的混乱)。 Renat Fatkhullin 2010.08.17 12:08 #978 EvgeTrofi:那么在哪种情况下应该使用静态 内存类?没有。 如果你创建了一个变量int i;,你为什么不初始化它?事实上,你自己说 "我不关心这个变量里有什么",结果里面是垃圾。正确的方法是int i=0。C++中也是这样吗? 是的,这是正确的--你可以在一个块内创建这样的变量。 Sergey Holubko 2010.08.17 12:27 #979 我在Windows 7 64位的终端306 Bild上遇到了一个问题(Windows 7 32位的一切工作正常)。 附加的文件: mql64.png 52 kb Renat Fatkhullin 2010.08.17 12:31 #980 VanHelsing:我在Windows 7 64位的终端306 Bild上遇到了一个问题(Windows 7 32位的一切工作正常)。 请在servicedesk中发布一段出现这种情况的代码。 1...919293949596979899100101102103104105...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我不明白 "狗被埋在哪里",代码可以工作,一切正常,但编译器警告 由于类型转换Indi.mqh 125 45可能导致的数据丢失让我感到疑惑。
对开发商而言。
据我所知,交换问题已经解决了?或者说,那就不清楚为什么这个话题从servicedesk..... 消失了。
在测试一个EA 时
日志显示的数字不断增加!它应该是这样的吗?
在MQL4中,你应该写上
在测试一个EA时
日志显示的数字不断增加!这应该是这样的吗?
是的,应该是这样。
你没有初始化局部变量 i,在随后的调用中,它被分配在堆栈的同一位置,与之前的调用相同。
是的,应该是这样的。
你还没有初始化局部变量 i,在接下来的调用中,它将被分配到堆栈的同一位置,因为它在之前的调用中是这样。
在哪种情况下应该使用静态 内存类?
帮助中令人费解的一句话:"声明为静态的 局部变量具有一个块的范围,尽管它们从程序执行开始就存在",请解释。这句话中似乎有一个句法或语法上的错误 :)
注意帮助中的例子:https://www.mql5.com/ru/docs/basis/variables/static
如果你从代码中删除静态 字,什么也不会改变。
问题:如果没有静态,我们为什么需要静态 呢?
你好。你在[测试器]的描述中缺少ExpertParameters参数。你可以在帮助中找到更多关于它的信息。
谢谢你,它正在工作。
请告诉我,当初增加在块内声明变量的能力的目的是什么?以前在这样的情况下。
以前,会弹出一个框,指出一个直接被声明了两次,很明显,你必须为这个变量想出另一个名字,或者使用相同的名字,但没有int。但现在可能会变得很混乱。在C++中也是如此吗?
(在学习MQL之前,我曾经用Visual Basic编程。那里没有这样的混乱)。
那么在哪种情况下应该使用静态 内存类?
没有。
如果你创建了一个变量int i;,你为什么不初始化它?事实上,你自己说 "我不关心这个变量里有什么",结果里面是垃圾。
正确的方法是int i=0。
C++中也是这样吗?
我在Windows 7 64位的终端306 Bild上遇到了一个问题(Windows 7 32位的一切工作正常)。
我在Windows 7 64位的终端306 Bild上遇到了一个问题(Windows 7 32位的一切工作正常)。