MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 305
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Teşekkürler, ancak null döndürür. Nedeni ne olabilir?
Ve başkası olamaz. Hiçbir bilgisayar 1970'den daha az bir yıl bilemez. Aracı tarafından listelenen yılla başlayın.
Ve başkası olamaz. Hiçbir bilgisayar 1970'den daha az bir yıl bilemez. Aracı tarafından listelenen yılla başlayın.
Ve normalde belirlenen, çağımızın ilk yılı)
Eh, normalde ayarlanır, çağımızın ilk yılı)
CopyXXX() kullanın
Teşekkür ederim.
MT5'te grafiği şu şekilde değiştirebilirsiniz:
PlotIndexSetInteger(0,PLOT_SHIFT,InpChannelPeriod);
Teşekkür ederim.
MT5'te grafiği şu şekilde değiştirebilirsiniz:
PlotIndexSetInteger(0,PLOT_SHIFT,InpChannelPeriod);
orada seçti
SetIndexShift(0,InpChannelPeriod);
Belki birisi yardımcı olabilir, göstergenin özü Donchian kanalını her zamanki gibi çizmek ve ardından son kanal değerinin satırlarını negatif çubuğun arkasına taşımaktır.
MT5'te her şey çalışıyor gibi görünüyor, ancak MT4'te neyin yanlış olduğunu anlamıyorum - oraya buraya gönderdim, ancak sapkınlık çiziyor - değerlerin hesabını ayrı ayrı yapmama rağmen kanalın kendisini değiştiriyor bu kaydırılacak....
Belki birisi yardımcı olabilir, göstergenin özü Donchian kanalını her zamanki gibi çizmek ve ardından son kanal değerinin satırlarını negatif çubuğun arkasına taşımaktır.
MT5'te her şey çalışıyor gibi görünüyor, ancak MT4'te neyin yanlış olduğunu anlamıyorum - oraya buraya gönderdim, ancak sapkınlık çiziyor - değerlerin hesabını ayrı ayrı yapmama rağmen kanalın kendisini değiştiriyor bu kaydırılacak....
Timsah koduna bak, vardiya orada çalışıyor. Gerçi, belki mantık farklıdır.
Timsah koduna bak, vardiya orada çalışıyor. Gerçi, belki mantık farklıdır.
Evet, vardiya bende de işe yarıyor.
Diziyi bir kaydırma ile dolduruyorum, ancak doldurma kaydırmasız gibi çıkıyor, ancak kaydırmanın kendisi görsel olarak gerçekleşiyor.
Kodun ilk kısmı, arabelleği son çubuktan InpChannelPeriod derinliğine kadar boş bırakır:
Ve ikinci kısım bu bölümü daha önce doldurmalıdır:
Ama aslında şöyle oluyor:
MT5'teki kod
#property strict #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 2 //--- plot Label1 #property indicator_label1 "Predicted_high_price"; #property indicator_type1 DRAW_LINE; #property indicator_color1 clrAquamarine; #property indicator_style1 STYLE_DOT; #property indicator_width1 1; //--- plot Label2 #property indicator_label2 "Predicted_low_price"; #property indicator_type2 DRAW_LINE; #property indicator_color2 clrAquamarine; #property indicator_style2 STYLE_DOT; #property indicator_width2 1; //--- input parameters input int InpChannelPeriod=48; // Period //--- indicator buffers double ExtHighBufferPrognoz[]; double ExtLowBufferPrognoz[]; //--- int i,limit,start; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,ExtHighBufferPrognoz,INDICATOR_DATA); SetIndexBuffer(1,ExtLowBufferPrognoz,INDICATOR_DATA); //--- set accuracy IndicatorSetInteger(INDICATOR_DIGITS,_Digits); //--- set first bar from what index will be drawn PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpChannelPeriod); PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpChannelPeriod); PlotIndexSetInteger(0,PLOT_SHIFT,InpChannelPeriod); PlotIndexSetInteger(1,PLOT_SHIFT,InpChannelPeriod); //--- return(0); } //+------------------------------------------------------------------+ //| 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[]) { //--- check for rates if(rates_total<InpChannelPeriod) return(0); //--- preliminary calculations if(prev_calculated==0) limit=InpChannelPeriod; else limit=prev_calculated; //--- the main loop of calculations for(i=limit;i<rates_total && !IsStopped();i++) { start=i-InpChannelPeriod; ExtHighBufferPrognoz[i-InpChannelPeriod]=high[ArrayMaximum(high,start,InpChannelPeriod)]; ExtLowBufferPrognoz[i-InpChannelPeriod]=low[ArrayMinimum(low,start,InpChannelPeriod)]; } for(int x=rates_total-InpChannelPeriod;x<rates_total && !IsStopped();x++) { //int calc=x--; ExtHighBufferPrognoz[x]=ExtHighBufferPrognoz[rates_total-InpChannelPeriod-1]; ExtLowBufferPrognoz[x]=ExtLowBufferPrognoz[rates_total-InpChannelPeriod-1]; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+Sonuç:

ZY: Kod değişti - o ME'den değil.