新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 969 1...962963964965966967968969970971972973974975976...1953 新评论 Igor Makanu 2019.09.14 22:35 #9681 Vladimir Baskakov: 谢谢你,它起作用了,只有一个条件得到满足。 而我需要 由于某种原因,它没有打开一个位置。 int barfrup_1 = GetLastFractals(1,MODE_UPPER); int barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER); int barfrdn_1 = GetLastFractals(1,MODE_LOWER); int barfrdn_2 = GetLastFractals(barfrdn_1+1,MODE_LOWER); if(High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] < Low[barfrdn_2] ) if(High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] > Low[barfrdn_2] ) [删除] 2019.09.14 23:07 #9682 Igor Makanu: 它是有效的,但它开仓,不受条件限制,想在哪里开就在哪里开,好吧 Igor Makanu 2019.09.14 23:47 #9683 Vladimir Baskakov: 它可以工作,但开仓,不按条件,想在哪里开就在哪里开,好的。 不可能,我的代码很简单,像ZigZag一样,分形只在循环中带有箭头的条上有数值,在箭头出现之前寻找指标值,然后退出循环,返回分形条数。 我刚刚做了一个分形的专家顾问--代码已经检查过了,在测试过程中发现第1条的分形可能会过度绘制--打开测试器的可视化模式,添加一个分形的指标。 Aleksei Beliakov 2019.09.15 03:23 #9684 Igor Makanu: 不可能,我的代码很简单,分形,像ZigZag一样,只在有箭头的条形上有值,在循环中,通过指标值,直到箭头出现并退出循环,返回分形所在条形的数量。 我刚刚做了一个分形的专家顾问--代码已经检查过了,在测试过程中发现第1条的分形可能会过度绘制--打开测试器的可视化模式,添加一个分形的指标。 也许结果应该被检查为0或空值 Igor Makanu 2019.09.15 03:44 #9685 Aleksei Beliakov: 也许结果应该被检查为0或空值 空值中有0,这不是与_Point比较的最好方法。 它是有效的,我不想证明这一点,但分形指标值 在这部分代码中应该是有效的 SZY: 再一次,由于某种原因,我讨论了我的代码....代码越多越好,我没有看到其他参与者的代码,我不明白到底谁需要它?)))) PS:检查了,因为我知道这个问题不会休息,一切正常,代码很快。 #property copyright "IgorM" #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 2 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_ARROW #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Label2 #property indicator_label2 "Label2" #property indicator_type2 DRAW_ARROW #property indicator_color2 clrBlue #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //--- indicator buffers double Label1Buffer[]; double Label2Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,Label1Buffer); SetIndexBuffer(1,Label2Buffer); SetIndexArrow(0,SYMBOL_ARROWUP); SetIndexArrow(1,SYMBOL_ARROWDOWN); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //-- static int limit=0; if(limit>=10) return(rates_total); int b_up = 0, b_dn = 0; while(limit<=10) { b_up = GetLastFractals(b_up,MODE_UPPER); Label1Buffer[b_up] = high[b_up]; b_up++; b_dn = GetLastFractals(b_dn,MODE_LOWER); Label2Buffer[b_dn] = low[b_dn]; b_dn++; limit++; } //--- return value of prev_calculated for next call return(rates_total); } //_______________________________________________________________________ int GetLastFractals(int bar,int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал { int i=bar; while(i<Bars && iFractals(NULL,0,mode,i)<_Point) i++; return(i); } //_______________________________________________________________________ 结果 Yevhenii Levchenko 2019.09.15 04:46 #9686 Artyom Trishkin: ArraySetAsSeries(true)用于指标缓冲区。 做了。我是根据手册做的 [删除] 2019.09.15 07:16 #9687 Igor Makanu: 不可能,我的代码很简单,分形,像ZigZag一样,只在有箭头的条形上有值,在循环中,通过指标值,直到箭头出现并退出循环,返回分形所在条形的数量。 我刚刚做了一个由分形组成的专家顾问--代码已经检查过了,在测试过程中发现,第1条上的分形可能会过度绘制--打开测试器的可视化模式,添加一个分形指标。 不,我的位置打开了。就像它应该的那样,在第三个小节,一个分形。但再往前走,情况就更糟了。根据我的条件(fr1_up<fr_2 && fr1_down>fr2_down),没有找到。其本质是价格的压缩,我们通过两个分形发现了这一点 Alexsandr San 2019.09.15 08:22 #9688 我想我做到了 ! 附加的文件: IgorM.mq5 17 kb [删除] 2019.09.15 08:27 #9689 Aleksandr Klapatyuk:我想我做到了 ! 它是什么? Alexsandr San 2019.09.15 08:29 #9690 Vladimir Baskakov: 哪一个? 对象名称在iFractals上移动 1...962963964965966967968969970971972973974975976...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你,它起作用了,只有一个条件得到满足。
而我需要
由于某种原因,它没有打开一个位置。
它是有效的,但它开仓,不受条件限制,想在哪里开就在哪里开,好吧
它可以工作,但开仓,不按条件,想在哪里开就在哪里开,好的。
不可能,我的代码很简单,像ZigZag一样,分形只在循环中带有箭头的条上有数值,在箭头出现之前寻找指标值,然后退出循环,返回分形条数。
我刚刚做了一个分形的专家顾问--代码已经检查过了,在测试过程中发现第1条的分形可能会过度绘制--打开测试器的可视化模式,添加一个分形的指标。
不可能,我的代码很简单,分形,像ZigZag一样,只在有箭头的条形上有值,在循环中,通过指标值,直到箭头出现并退出循环,返回分形所在条形的数量。
我刚刚做了一个分形的专家顾问--代码已经检查过了,在测试过程中发现第1条的分形可能会过度绘制--打开测试器的可视化模式,添加一个分形的指标。
也许结果应该被检查为0或空值
空值中有0,这不是与_Point比较的最好方法。
它是有效的,我不想证明这一点,但分形指标值 在这部分代码中应该是有效的
SZY: 再一次,由于某种原因,我讨论了我的代码....代码越多越好,我没有看到其他参与者的代码,我不明白到底谁需要它?))))
PS:检查了,因为我知道这个问题不会休息,一切正常,代码很快。
结果
ArraySetAsSeries(true)用于指标缓冲区。
不可能,我的代码很简单,分形,像ZigZag一样,只在有箭头的条形上有值,在循环中,通过指标值,直到箭头出现并退出循环,返回分形所在条形的数量。
我刚刚做了一个由分形组成的专家顾问--代码已经检查过了,在测试过程中发现,第1条上的分形可能会过度绘制--打开测试器的可视化模式,添加一个分形指标。
我想我做到了 !
我想我做到了 !
哪一个?
对象名称在iFractals上移动