新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 147 1...140141142143144145146147148149150151152153154...1953 新评论 Aleksey Vyazmikin 2017.03.10 19:25 #1461 -Aleks-:请帮助--我不明白为什么我在计算i>0值的VesMass数组时得到零? 事实证明,我应该写的不是4和5,而是4.0和5.0--逻辑是什么--我不清楚......。 Alexey Viktorov 2017.03.10 20:01 #1462 -Aleks-: 事实证明,你应该写的不是4和5,而是4.0和5.0 - 逻辑是什么 - 我不清楚...... 阅读文件就会明白。你自己做的很好。 Aleksey Vyazmikin 2017.03.10 20:29 #1463 Alexey Viktorov: 阅读文件就会明白。你自己做的很好。 是的,我以前读过类似的东西--所以我决定尝试一下,但不清楚背后的逻辑在哪里......顺便说一下,我在文档中找不到答案。 Vitalie Postolache 2017.03.10 20:39 #1464 -Aleks-: 我以前读过类似的东西--所以我决定尝试一下,但不清楚背后的逻辑在哪里......。顺便说一句,我在文档中也找不到答案。 这不仅是MCL的一个特点,在C++和其他编程语言中也是如此--两个整数或(int)类型的变量的除法会得到截断为整数的结果。在你的案例中,4/5=0。 你可以写4.0/5或(双)4/5--那么结果就是一个实数。 Aleksey Vyazmikin 2017.03.10 20:46 #1465 Vitalie Postolache: 这不仅是ICL的特点,在C++和其他编程语言中也是如此--两个整数或(int)类型的变量相除会得到一个截断的结果,变成一个整数。在你的案例中,4/5=0。 你可以写4.0/5或(双)4/5--那么结果就是一个实数。我明白这一点,但我不明白解决方案的逻辑--也就是说,需要。 Vitalie Postolache 2017.03.10 20:50 #1466 -Aleks-:我明白这一点,但我不明白解决方案背后的逻辑--也就是说,需要。 好吧,你不争论 "为什么2*2=4的算术,解决方案的逻辑是什么"?你只是把它当作一个公理并使用它。两个整数的除法也是如此。 Aleksey Vyazmikin 2017.03.10 23:07 #1467 Vitalie Postolache: 好吧,你不争论 "为什么2*2=4的算术,解决方案背后的逻辑是什么"?你只是把它当作一个公理并使用它。这与两个整数的除法是一样的。我将与另外的人核实... Kot 2017.03.11 07:58 #1468 Kot。 这条线是一条趋势线。我把它的属性改为射线。这并没有帮助。如果我想让它输出价格,而不考虑零杠的位置(上面,下面)。这个代码也不起作用。int start() {double pr=ObjectGetValueByShift("line",0)。如果(Bid==pr){Alert (pr);}return(0);} 线路名称的拼写是否正确?试试这个脚本,并在日志中显示它的内容。void OnStart() { double pr; int obj_total=ObjectsTotal(); string name; int i; for(i=0;i<obj_total;i++) { name=ObjectName(i); if(ObjectType(name)!=OBJ_TREND) continue; PrintFormat("Объект %d: Имя объекта - %s",i,name); pr=ObjectGetValueByShift(name,0); PrintFormat("Объект %d: Цена - %.5f",i,pr); } }脚本检测到了这个对象,正确地写出了这个名字。但价格绝对是左支右绌的。它在照片上用一条横线 标出。它给出了这些价格,无论条形图是否越过线。 附加的文件: 23.png 62 kb Maxim Kuznetsov 2017.03.11 08:16 #1469 Kot: 这条线是有趋势的。把属性改成了梁。这并没有帮助。理想情况下,无论零条的位置如何(顶部、底部),都应该显示价格。这个代码也不起作用。int start() {double pr=ObjectGetValueByShift("line",0)。如果(Bid==pr){Alert (pr);}return(0);}竞价可以很容易地跳过你的线,它没有义务在每个点上停止(即,你不会得到确切的平等)。将条件改为例如如果((MathMin(Close[1],Open[0])<=pr && Bid>=pr) || (MathMax(Close[1],Open[0])>=pr && Bid<=pr))或类似的... Kot 2017.03.11 08:48 #1470 Maxim Kuznetsov:竞价可以很容易地跳过你的线,它没有义务在每一个点停止(即,完全平等不会发生)。将条件改为例如如果((MathMin(Close[1],Open[0])<=pr && Bid>=pr) || (MathMax(Close[1],Open[0])>=pr && Bid<=pr))或类似的... 谢谢你!得到了这个想法。如果情况不同呢。图表上有不同名称的横线。你需要脚本来计算哪一行对应于哪一个价格。 1...140141142143144145146147148149150151152153154...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请帮助--我不明白为什么我在计算i>0值的VesMass数组时得到零?
事实证明,你应该写的不是4和5,而是4.0和5.0 - 逻辑是什么 - 我不清楚......
阅读文件就会明白。你自己做的很好。
我以前读过类似的东西--所以我决定尝试一下,但不清楚背后的逻辑在哪里......。顺便说一句,我在文档中也找不到答案。
你可以写4.0/5或(双)4/5--那么结果就是一个实数。这不仅是MCL的一个特点,在C++和其他编程语言中也是如此--两个整数或(int)类型的变量的除法会得到截断为整数的结果。在你的案例中,4/5=0。
你可以写4.0/5或(双)4/5--那么结果就是一个实数。这不仅是ICL的特点,在C++和其他编程语言中也是如此--两个整数或(int)类型的变量相除会得到一个截断的结果,变成一个整数。在你的案例中,4/5=0。
我明白这一点,但我不明白解决方案的逻辑--也就是说,需要。
我明白这一点,但我不明白解决方案背后的逻辑--也就是说,需要。
好吧,你不争论 "为什么2*2=4的算术,解决方案的逻辑是什么"?你只是把它当作一个公理并使用它。两个整数的除法也是如此。
好吧,你不争论 "为什么2*2=4的算术,解决方案背后的逻辑是什么"?你只是把它当作一个公理并使用它。这与两个整数的除法是一样的。
我将与另外的人核实...
这条线是一条趋势线。我把它的属性改为射线。这并没有帮助。如果我想让它输出价格,而不考虑零杠的位置(上面,下面)。
这个代码也不起作用。
int start() {
double pr=ObjectGetValueByShift("line",0)。
如果(Bid==pr){
Alert (pr);}
return(0);}
线路名称的拼写是否正确?
试试这个脚本,并在日志中显示它的内容。
}
脚本检测到了这个对象,正确地写出了这个名字。但价格绝对是左支右绌的。它在照片上用一条横线 标出。它给出了这些价格,无论条形图是否越过线。
这条线是有趋势的。把属性改成了梁。这并没有帮助。理想情况下,无论零条的位置如何(顶部、底部),都应该显示价格。
这个代码也不起作用。
int start() {
double pr=ObjectGetValueByShift("line",0)。
如果(Bid==pr){
Alert (pr);}
return(0);}
竞价可以很容易地跳过你的线,它没有义务在每个点上停止(即,你不会得到确切的平等)。
将条件改为例如如果((MathMin(Close[1],Open[0])<=pr && Bid>=pr) || (MathMax(Close[1],Open[0])>=pr && Bid<=pr))或类似的...
竞价可以很容易地跳过你的线,它没有义务在每一个点停止(即,完全平等不会发生)。
将条件改为例如如果((MathMin(Close[1],Open[0])<=pr && Bid>=pr) || (MathMax(Close[1],Open[0])>=pr && Bid<=pr))或类似的...
谢谢你!得到了这个想法。
如果情况不同呢。图表上有不同名称的横线。你需要脚本来计算哪一行对应于哪一个价格。