[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 170 1...163164165166167168169170171172173174175176177...652 新评论 Maxim Zaguzov 2011.09.11 09:10 #1691 splxgf: 你的版本可以简化为这两行,添加到作者的版本中,只要对条件做一些改动,原则上应该可以很好地加速事情的进展。 你确定吗? Всеволод 2011.09.11 09:33 #1692 MaxZ: 你确定吗? 从本质上讲,你的建议是将不属于UPPprice/LOWprice范围内的蜡烛排除在检查和计算之外。这被两条线排除在外。如果你没有掉链子,这意味着价格在我们需要的范围内,我们会做标准的检查。你的代码可能会走得更快,但却不利于结果,因为与INS打交道的逻辑非常曲折,使用上一次迭代的这个变量的值是无稽之谈。 Maxim Zaguzov 2011.09.11 09:50 #1693 splxgf: 从本质上讲,你的建议是将不属于UPPprice/LOWprice范围内的蜡烛排除在检查和计算之外。这被两条线排除在外。如果你没有掉链子,这意味着价格在我们需要的范围内,我们会做标准的检查。你的代码可能会走得更快,但却不利于结果,因为与INS打交道的逻辑非常曲折,使用上一次迭代的这个变量的值是无稽之谈。 所以你是肯定的!:)))) 你刚才引用了代码。 splxgf。 if (LOWprice > iHigh(NULL,60,i)) continue; if (UPPprice < iLow (NULL,60,i)) continue; 如果价格低于低点,我们为什么要检查价格是否高于高点?在你的版本中,这个条件没有被排除。但在我的建议中。 if (UPP) ... // не выполнится if (LOW) if (LOWprice < iLow (NULL,60,i)) continue; else .. 它被排除在外。 我不否认,我的代码可能不是最理想的。 但是,你认为,你的速度是多少倍? if (UPP) 将工作比。 if (LOWprice > iHigh(NULL,60,i)) ? 事实上。 UPP = LOWprice > iHigh(NULL, 60, i); 只有我知道这个事实(除了在当前历史栏内出价时),你计算一下... Maxim Zaguzov 2011.09.11 10:05 #1694 abolk: 是的。 你必须变得如此扭曲,把三行清晰的代码变成难以理解的代码。 如果你有拆分iLow、iHigh支票的想法,你可以马上拆分。 而且不要说任何俏皮话。 而你有没有想过,扭曲繁琐的代码有时会比简单的三行代码运行得更快?:))) Всеволод 2011.09.11 10:16 #1695 INS = True; for (int i=1; i<=6000; i++) { if (INS) { if (LOWprice > iHigh(NULL,60,i)) { INS = False; UPP = True; LOW = False; continue; 考虑一下这一节代码 INS=True。 循环往复 如果(INS)飞行正常 例如,如果(LOWprice...),条件为真,但随后出错,因为我们得到INS=False,我们进入下一个迭代。 那么如果(false),我们就完成了,因为这是另一个酒吧,所以什么...... 至于我的代码,我不是在检查价格,而是检查该条线是否在当前价格 的+300/300点之内,如果是,就应该考虑。所有其他的优化并不那么关键,因为例如前两项检查可以消除90%的不必要的条形。 Maxim Zaguzov 2011.09.11 10:24 #1696 splxgf: 那么如果(假的),我们就完蛋了,因为这是一个不同的酒吧,你要问什么? 没有出过海,但在其他地方出过海 { ...}. Всеволод 2011.09.11 10:39 #1697 然后真的游了起来... 为什么你认为布尔变量会加速,如果每个条件后面再加上一个if(LOWprice >iHigh(NULL,60,i)),即同样的鸡蛋,但从侧面加上一个条件和大量的赋值,... BBC 2011.09.12 06:55 #1698 哇! 这就是争论变得激烈的地方。 我现在就这样说。 extern int Distance = 3000; int CountH,NewCountH,CountL,NewCountL,CountB,NewCountB; double ResistH,ResistL,ResistB; //====================================================================== int start(){ double bid = Bid; double UPPprice = bid+Distance*Point; double LOWprice = bid-Distance*Point; NewCountH=0; NewCountL=0; NewCountB=0; ResistH=0; ResistL=0; ResistB=0; while(LOWprice<UPPprice) { CountH=0; CountL=0; for(int i=1; i<=6000; i++){ if(iHigh(NULL,60,i)>LOWprice) if(LOWprice>iLow(NULL,60,i)) if(LOWprice> bid) CountH++; else CountL++; } if(CountH>NewCountH){NewCountH=CountH;ResistH=LOWprice;} if(CountL>NewCountL){NewCountL=CountL;ResistL=LOWprice;} LOWprice=LOWprice+25*Point; } CountB=0; for(i=1; i<=6000; i++){ if(iHigh(NULL,60,i)>=bid) if(bid>=iLow(NULL,60,i)) CountB++; } if(CountB>NewCountB){NewCountB=CountB;ResistB=bid;} Comment("\n", "\n", // "\n", " Spread ", MarketInfo(Symbol(), MODE_SPREAD), "\n", " Distance ", Distance, "\n", " CountH ", NewCountH, "\n", " CountB ", NewCountB, "\n", " CountL ", NewCountL, "\n", "-------------------------------------------------- ", "\n"); if(ObjectFind("RH") == -1) { ObjectCreate("RH", OBJ_HLINE, 0, 0, ResistH); ObjectSet("RH", OBJPROP_COLOR, Magenta); ObjectSet("RH", OBJPROP_STYLE, STYLE_DOT); }else ObjectMove("RH", 0, iTime(NULL,0,0), ResistH); string text=DoubleToStr(NewCountH,0); ObjectDelete("RHtxt"); if(ObjectFind("RHtxt") == -1) { ObjectCreate("RHtxt", OBJ_TEXT, 0, 0, 0); ObjectSetText("RHtxt", text , 8, "Arial", Aqua); ObjectMove("RHtxt", 0, iTime(NULL,0,0), ResistH); }else ObjectMove("RHtxt", 0, iTime(NULL,0,0), ResistH); string text3=DoubleToStr(NewCountB,0); ObjectDelete("RBtxt"); if(ObjectFind("RBtxt") == -1) { ObjectCreate("RBtxt", OBJ_TEXT, 0, 0, 0); ObjectSetText("RBtxt", text3 , 8, "Arial", Aqua); ObjectMove("RBtxt", 0, iTime(NULL,60,0), ResistB); }else ObjectMove("RBtxt", 0, iTime(NULL,60,0), ResistB); if(ObjectFind("RL") == -1) { ObjectCreate("RL", OBJ_HLINE, 0, 0, ResistL); ObjectSet("RL", OBJPROP_COLOR, Magenta); ObjectSet("RL", OBJPROP_STYLE, STYLE_DOT); }else ObjectMove("RL", 0, iTime(NULL,0,0), ResistL); string text2=DoubleToStr(NewCountL,0); ObjectDelete("RLtxt"); if(ObjectFind("RLtxt") == -1) { ObjectCreate("RLtxt", OBJ_TEXT, 0, 0, 0); ObjectSetText("RLtxt", text2 , 8, "Arial", Aqua); ObjectMove("RLtxt", 0, iTime(NULL,0,0), ResistL); }else ObjectMove("RLtxt", 0, iTime(NULL,0,0), ResistL); return (0);} //====== THE END ====================== 观察价格走势是非常有趣的。它总是朝着阻力最小的方向发展。 你甚至可以预测它的未来动向。观察一下。 价格就像溪流中的水。 谢谢大家! Александр 2011.09.12 07:24 #1699 请告诉我如何找到高值的条形数字。 Search_High=MathMax( High[i],High[1]) Всеволод 2011.09.12 08:51 #1700 001: 你能告诉我如何找到柴值最高的酒吧的号码吗? Search_High=MathMax( High[i],High[1]) 你可以去https://docs.mql4.com/ru/array/ArrayMaximum 通过阵列高。 1...163164165166167168169170171172173174175176177...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你确定吗?
从本质上讲,你的建议是将不属于UPPprice/LOWprice范围内的蜡烛排除在检查和计算之外。这被两条线排除在外。如果你没有掉链子,这意味着价格在我们需要的范围内,我们会做标准的检查。你的代码可能会走得更快,但却不利于结果,因为与INS打交道的逻辑非常曲折,使用上一次迭代的这个变量的值是无稽之谈。
从本质上讲,你的建议是将不属于UPPprice/LOWprice范围内的蜡烛排除在检查和计算之外。这被两条线排除在外。如果你没有掉链子,这意味着价格在我们需要的范围内,我们会做标准的检查。你的代码可能会走得更快,但却不利于结果,因为与INS打交道的逻辑非常曲折,使用上一次迭代的这个变量的值是无稽之谈。
所以你是肯定的!:))))
你刚才引用了代码。
如果价格低于低点,我们为什么要检查价格是否高于高点?在你的版本中,这个条件没有被排除。但在我的建议中。
它被排除在外。
我不否认,我的代码可能不是最理想的。
但是,你认为,你的速度是多少倍?
if (UPP)
将工作比。
?
事实上。
只有我知道这个事实(除了在当前历史栏内出价时),你计算一下...
是的。
你必须变得如此扭曲,把三行清晰的代码变成难以理解的代码。
如果你有拆分iLow、iHigh支票的想法,你可以马上拆分。
而且不要说任何俏皮话。考虑一下这一节代码
INS=True。
循环往复
如果(INS)飞行正常
例如,如果(LOWprice...),条件为真,但随后出错,因为我们得到INS=False,我们进入下一个迭代。
那么如果(false),我们就完成了,因为这是另一个酒吧,所以什么......
至于我的代码,我不是在检查价格,而是检查该条线是否在当前价格 的+300/300点之内,如果是,就应该考虑。所有其他的优化并不那么关键,因为例如前两项检查可以消除90%的不必要的条形。
那么如果(假的),我们就完蛋了,因为这是一个不同的酒吧,你要问什么?
然后真的游了起来...
为什么你认为布尔变量会加速,如果每个条件后面再加上一个if(LOWprice >iHigh(NULL,60,i)),即同样的鸡蛋,但从侧面加上一个条件和大量的赋值,...
哇!
这就是争论变得激烈的地方。
我现在就这样说。
观察价格走势是非常有趣的。它总是朝着阻力最小的方向发展。
你甚至可以预测它的未来动向。观察一下。
价格就像溪流中的水。
谢谢大家!
请告诉我如何找到高值的条形数字。
Search_High=MathMax( High[i],High[1])
你能告诉我如何找到柴值最高的酒吧的号码吗?
Search_High=MathMax( High[i],High[1])
你可以去https://docs.mql4.com/ru/array/ArrayMaximum
通过阵列高。