初学者的问题 MQL4 MT4 MetaTrader 4 - 页 224 1...217218219220221222223224225226227228229230231...261 新评论 Aleksei Stepanenko 2020.12.07 16:53 #2231 在专家顾问中,第一行是 OnTick()在这些行之后,进一步的代码将在每个蜡烛上执行一次。在其形成的时刻。按照我的理解,你从EA中调用这个指标? ElenkaVladi 2020.12.07 16:55 #2232 Aleksei Stepanenko: 在专家顾问中,第一行是 在这些行之后,进一步的代码将在每个蜡烛上执行一次。在其形成的时刻。根据我的理解,你是在EA中调用这个指标? 好吧,实际上,我把这个指标插入另一个指标中,该指标将信号发送到另一个程序。就是说,没有专家顾问。也就是说,它应该插在指标本身的某个地方,但如何插? Aleksei Stepanenko 2020.12.07 16:58 #2233 哪个方案能打开交易?它是一个顾问。不是吗? ElenkaVladi 2020.12.07 16:59 #2234 Aleksei Stepanenko: 那么什么程序可以打开交易呢?它就是专家顾问。不是吗? 啊,好吧,也许...但随后事情似乎变得更加复杂......没有办法在这个代码中嵌入它,是吗?而第二个指标代码中也没有代码。OnTick() 这到底是怎么做到的......:))))) Aleksei Stepanenko 2020.12.07 17:08 #2235 你可以尝试另一种方法,即通过iCustom调用这个指标,在这个函数的末尾也放1而不是0。 ElenkaVladi 2020.12.07 17:10 #2236 顺便说一下,该指标仍然画了很多箭头,但当我重新加载图表时,只剩下一些箭头。:( 就像指标在历史上保存自己,就像看我如何交易得好,但在实时中却完全不同。:( Aleksei Stepanenko 2020.12.07 17:12 #2237 ElenkaVladi: 顺便说一下,这个指标也仍然吸引了很多箭头。 是吗?嗯,我稍后会看一看。 ElenkaVladi 2020.12.07 17:15 #2238 Aleksei Stepanenko: 你可以尝试另一种方法,即通过iCustom调用这个指标,在这个函数的末尾也放1而不是0。 你是说像这样吗? if (IndicatorName != "") { up = iCustom(NULL, 0, IndicatorName, IndiBufferCall, SignalType); dn = iCustom(NULL, 0, IndicatorName, IndiBufferPut, SignalType); if (IndicatorName != "") { up = iCustom(NULL, 1, IndicatorName, IndiBufferCall, SignalType); dn = iCustom(NULL, 1, IndicatorName, IndiBufferPut, SignalType); 像这样吗? ElenkaVladi 2020.12.07 17:17 #2239 Aleksei Stepanenko:是吗?嗯,我稍后会看一看。 也许是这个消息。我们难道不应该按它说的做吗? https://www.mql5.com/ru/forum/160587/page223#comment_19618305 总之,非常感谢你在这里和我们一起摆弄......:)) 附上文件,以便更好地了解情况。 Вопросы от начинающих MQL4 MT4 MetaTrader 4 2020.11.29www.mql5.com Если у Вас вопросы по MQL4, MT4, MetaTrader 4, пожалуйста пишите в этой теме. Особенно когда вопросы касаются торговых функций... 附加的文件: 2020-12-07_23-24-56_m3h.png 13 kb 2020-12-07_23-25-07_t2m.png 8 kb Aleksei Stepanenko 2020.12.07 22:43 #2240 ElenkaVladi: 下面是工作代码。//---- indicator settings #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- indicator parameters extern int period = 4; //12 extern int shift = 0; //сдвиг по бару //---- indicator buffers double BufferUp[],BufferDn[]; double Ma[],MaOn[]; datetime LastTime=0; int i, st=5; int OnInit() { IndicatorBuffers(2); //---- drawing settings SetIndexStyle(0,DRAW_ARROW,2); SetIndexArrow(0,233); SetIndexStyle(1,DRAW_ARROW,2); SetIndexArrow(1,234); SetIndexBuffer(0,BufferUp);//стрелка синяя верх SetIndexBuffer(1,BufferDn);//стрелка красная вниз //---- name for DataWindow and indicator subwindow label IndicatorShortName("T3MA-ALARM ("+period+")"); ArraySetAsSeries(Ma,true); ArraySetAsSeries(MaOn,true); //---- initialization done if(Digits==3 || Digits==5) st*=10; return(INIT_SUCCEEDED); } 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[]) { if(rates_total<=MathMax(period,shift)) return(0); int limit=rates_total-prev_calculated; if(prev_calculated>0) limit++; if(LastTime!=time[1]) { LastTime=time[1]; ArrayCopy(Ma,Ma,rates_total-ArraySize(Ma),0,WHOLE_ARRAY); ArrayCopy(MaOn,MaOn,rates_total-ArraySize(MaOn),0,WHOLE_ARRAY); } for(i=limit; i>=1; i--) Ma[i]=iMA(NULL,0,period,0,MODE_EMA,PRICE_CLOSE,i); for(i=limit; i>=1; i--) MaOn[i]=iMAOnArray(Ma,rates_total,period,0,MODE_EMA,i); for(i=limit; i>=1; i--) { if(MaOn[i+shift]-MaOn[i+1+shift]<0 && MaOn[i+1+shift]-MaOn[i+2+shift]>0){BufferDn[i+1]=high[i+1]+st*Point;} if(MaOn[i+shift]-MaOn[i+1+shift]>0 && MaOn[i+1+shift]-MaOn[i+2+shift]<0){BufferUp[i+1]=low[i+1]-st*Point;} } return(rates_total); } 注意,箭头是向后画的 BufferDn[i+1]=...。这是很不幸的。 1...217218219220221222223224225226227228229230231...261 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
OnTick()
在这些行之后,进一步的代码将在每个蜡烛上执行一次。在其形成的时刻。
按照我的理解,你从EA中调用这个指标?
在专家顾问中,第一行是
在这些行之后,进一步的代码将在每个蜡烛上执行一次。在其形成的时刻。
根据我的理解,你是在EA中调用这个指标?
那么什么程序可以打开交易呢?它就是专家顾问。不是吗?
啊,好吧,也许...但随后事情似乎变得更加复杂......没有办法在这个代码中嵌入它,是吗?而第二个指标代码中也没有代码。
OnTick()
这到底是怎么做到的......:)))))顺便说一下,这个指标也仍然吸引了很多箭头。
是吗?嗯,我稍后会看一看。
你可以尝试另一种方法,即通过iCustom调用这个指标,在这个函数的末尾也放1而不是0。
你是说像这样吗?
像这样吗?
是吗?嗯,我稍后会看一看。
也许是这个消息。我们难道不应该按它说的做吗?
https://www.mql5.com/ru/forum/160587/page223#comment_19618305
总之,非常感谢你在这里和我们一起摆弄......:))
附上文件,以便更好地了解情况。
下面是工作代码。
注意,箭头是向后画的 BufferDn[i+1]=...。这是很不幸的。