[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 125 1...118119120121122123124125126127128129130131132...537 新评论 Artyom Trishkin 2011.02.19 19:26 #1241 pyatka__ASD: 你能告诉我是否有人有一个高低Z字形极值连接的软件。谢谢我不知道你需要哪种连接,但...这就是我在EA中确定哪一个之字形极值的方法--低或高,希望你能找到你需要的东西。 //----------------------------------------------------------------------------------------------------------------- if (op==OP_BUY) { for (m=1; m<=CalcBarsLimit; m++) // Найдём первый перелом ЗЗ слева от первого бара { zz=iCustom(sy, tf, "ZigZag", dp, dv, bs, 0, m); // Берём данные 0 буфера ЗЗ с бара m if (zz!=0 && // Если первый экстремум верхний NormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 1, m), dg)) return(false); // Валим отсюда else if (zz!=0 && // Если первый экстремум нижний NormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 2, m), dg)) { if (MathRound((KLevel-zz)/pt)>=DistanceMIN && // Если расстояние от ZZ до KLevel ... MathRound((KLevel-zz)/pt)<=DistanceMAX) // ... в заданных пределах { if (Open[1]<KLevel && Close[1]>KLevel && pa>KLevel) { Fibo0_PriceB=zz; // Сохраним цену излома ZZ Fibo23_PriceB=pa; // Сохраним цену 23 фибы nmKLB=DoubleToStr(Time[m], 4); // имя метки SetArrow(5, DeepSkyBlue, nmKLB, Time[m], zz, 1); // Отмечаем излом ЗЗ на графике return(true); } } } } } //----------------------------------------------------------------------------------------------------------------- if (op==OP_SELL) { for (m=1; m<=CalcBarsLimit; m++) // Найдём первый перелом ЗЗ слева от первого бара { zz=iCustom(sy, tf, "ZigZag", dp, dv, bs, 0, m); // Берём данные 0 буфера ЗЗ с бара m if (zz!=0 && // Если первый экстремум нижний NormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 2, m), dg)) return(false); // Валим отсюда else if (zz!=0 && // Если первый экстремум верхний NormalizeDouble(zz, dg)==NormalizeDouble(iCustom(sy, tf, "ZigZag", dp, dv, bs, 1, m), dg)) { if (MathRound((zz-KLevel)/pt)>=DistanceMIN && // Если расстояние от ZZ до KLevel ... MathRound((zz-KLevel)/pt)<=DistanceMAX) // ... в заданных пределах { if (Open[1]>KLevel && Close[1]<KLevel && pb<KLevel) { Fibo0_PriceS=zz; // Сохраним цену излома ZZ Fibo23_PriceS=pb; // Сохраним цену 23 фибы nmKLS=DoubleToStr(Time[m], 4); // имя метки SetArrow(5, BurlyWood, nmKLS, Time[m], zz, 1); // Отмечаем излом ЗЗ на графике return(true); } } } } } return(false); } //------------------------------------------------------------------------------- ZS...代码很粗糙,没有经过优化。我希望你知道,最好是减去两个归一化的数值,然后检查结果是否为零... Roma 2011.02.19 19:46 #1242 alsu: 你可以。返回到参数。 如果在start里面声明了一个变量,你能把它分配给return_value1 吗? Alexey Subbotin 2011.02.19 19:52 #1243 eddy: 如果在start里面声明了一个变量,你可以把它分配给return_value1? 是的,这被称为通过引用传递参数。如果一个函数是正常声明的,它的调用会导致所有的变量,作为形式参数传递,被复制到函数的局部变量中并被处理。当参数以引用方式传递时,不进行复制,也就是说,函数对其原件而不是对其副本进行操作。因此,用这些参数在功能代码中所作的所有改变,在从功能代码返回后仍然有效。 要通过引用传递一个参数,在函数声明中通过在所需参数的标识符前加上&符号来表明这种方法。 Alexey Subbotin 2011.02.19 19:55 #1244 例子(编译为脚本并检查)。 void Func1(double a) { a=a*2; } void Func2(double &a) { a=a*2; } int start() { double a=5; Func1(a); Print(a); //выведет 5 Func2(a); Print(a); //выведет 10 } Alexey Subbotin 2011.02.19 20:03 #1245 eddy: 5*5=5?)) 不是乘以5,而是乘以2。在第一种情况下,参数a是 "按值 "传递的,它的内容在退出函数后不会被保存,在第二种情况下,它是按引用传递的(double &a),所以改变的值,即5*2=10在退出Func2函数后将被包含在变量a中。 Roma 2011.02.19 20:05 #1246 酷:) 这个怎么样? double a=5; Print(Func2(a)); Alexey Subbotin 2011.02.19 20:27 #1247 eddy: 这个怎么样? 那将是10个。顺便说一下,检查比询问更快)))。 dhp 2011.02.19 21:23 #1248 电脑正忙于计算,所以我暂时无法亲自检查。 有一段这样的代码。 if(DecreaseFactor>0){ for(int cnt=OrdersHistoryTotal()-1; cnt>=0; cnt--){ if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY)){ if(OrderMagicNumber()==Magic){ if(OrderSymbol()==Symbol()){ if(OrderType()<2){ if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } } } } } if(losses>1) Lot=NormalizeDouble(Lot-Lot*losses/DecreaseFactor,1); } 谷歌已经找到了这个代码的几个重复,所以我得出结论,它是有效的。 然而,这一行 Lot=NormalizeDouble(Lot-Lot*losses/DecreaseFactor,1); 是令人困惑的。 如果DecreaseFactor=3, 损失=3,那么根据公式我们可以得到 Lot=0!!!。 如果损失>3, 我们会得到Lot<0!!! 这有可能吗? Roma 2011.02.19 22:20 #1249 那么,什么是损失和 减少因素 呢? --- 2011.02.19 22:22 #1250 eddy: 酷:) 这个怎么样? 它不会做任何事情。函数Funk2--不返回任何值,它是无效的 1...118119120121122123124125126127128129130131132...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能告诉我是否有人有一个高低Z字形极值连接的软件。谢谢
我不知道你需要哪种连接,但...这就是我在EA中确定哪一个之字形极值的方法--低或高,希望你能找到你需要的东西。
ZS...代码很粗糙,没有经过优化。我希望你知道,最好是减去两个归一化的数值,然后检查结果是否为零...
你可以。返回到参数。
如果在start里面声明了一个变量,你可以把它分配给return_value1?
是的,这被称为通过引用传递参数。如果一个函数是正常声明的,它的调用会导致所有的变量,作为形式参数传递,被复制到函数的局部变量中并被处理。当参数以引用方式传递时,不进行复制,也就是说,函数对其原件而不是对其副本进行操作。因此,用这些参数在功能代码中所作的所有改变,在从功能代码返回后仍然有效。
要通过引用传递一个参数,在函数声明中通过在所需参数的标识符前加上&符号来表明这种方法。
例子(编译为脚本并检查)。
5*5=5?))
酷:)
这个怎么样?
这个怎么样?
电脑正忙于计算,所以我暂时无法亲自检查。
有一段这样的代码。
谷歌已经找到了这个代码的几个重复,所以我得出结论,它是有效的。
然而,这一行
是令人困惑的。
如果DecreaseFactor=3, 损失=3,那么根据公式我们可以得到 Lot=0!!!。
如果损失>3, 我们会得到Lot<0!!!
这有可能吗?
酷:)
这个怎么样?