Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1485

 

MQL5'e göre yeniden yazdım. Nesnelerle çalışmayı ondan kaldırdım.

Ratio=1 olarak ayarlandığında, grafikte olması gerektiği gibi görünür, yani grafikte bir Hi-Low çubuğu olarak üst üste bindirilir. Ancak hata ayıklama modunda bazı nedenlerden dolayı öyle değil,

Oran 1 olarak ayarlanmışken 2 olarak ayarlanmış gibi görüntüleniyor.

Kodda her şey doğru mu?

//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   1
//--- plot Histogram_2
#property indicator_label1  "Histogram_2"
#property indicator_type1   DRAW_HISTOGRAM2
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

input int Ratio=1;
int limit;
int limitBars=0;

double H[];
double L[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,H,INDICATOR_DATA);
   SetIndexBuffer(1,L,INDICATOR_DATA);
   ArraySetAsSeries(H,true);
   ArraySetAsSeries(L,true);
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);

   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[])
  {
   double max[256];
   double min[256];

   if(limitBars<Bars(_Symbol,_Period))
      limit=CHART_FIRST_VISIBLE_BAR;

   for(int i=0; i<limit; i++)
     {
      for(int shift=0; shift<Ratio; shift++)
        {
         max[shift]=iHigh(Symbol(),Period(),i*Ratio+shift);
         min[shift]=iLow(Symbol(),Period(),i*Ratio+shift);
        }

      H[i]=max[ArrayMaximum(max,0,Ratio)];
      L[i]=min[ArrayMinimum(min,0,Ratio)];
     }

   if(limit>1)
     {
      max[0]=H[ArrayMaximum(H,0,limit)];
      min[0]=L[ArrayMinimum(L,0,limit)];
     

     }

   limitBars=Bars(_Symbol,_Period);
   limit=1;
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Kod ile
rates_total
parametresinin değeri nasıl alınır

Göstergede açık. Ama senaryo?


#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()

  {
      Alert(rates_total());
    }
Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • 2023.12.04
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
Novichokkk #:
Kod ile parametre değeri nasıl alınır

Göstergede açık. Ama senaryo?


https://www.mql5.com/ru/docs/series/bars

Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Bars - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Bu anlaşılabilir bir durum, daha önce de bu şekilde yapmıştım. Teşekkür ederim.

#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()

  {

   Alert(Bars(_Symbol,_Period));
   

  }
//+------------------------------------------------------------------+

Başka bir yolu olup olmadığını merak ediyordum.

 
Novichokkk #:

Bu anlaşılabilir bir durum, bunu daha önce de yapmıştım. Teşekkür ederim.

Başka bir yolu olup olmadığını merak ediyordum.

Yapabilirsin. SeriesInfoInteger().

Документация по MQL5: Доступ к таймсериям и индикаторам / SeriesInfoInteger
Документация по MQL5: Доступ к таймсериям и индикаторам / SeriesInfoInteger
  • www.mql5.com
SeriesInfoInteger - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Parçalı doğrusal enterpolasyonu uygulamanın basit bir örneğini nerede görebilirim?

Örneğin x[]={0.1 , 0.8, 3.2, 7.9, 9.3} (5 değer) dizisi için y[]={-3.2, 2.7, 1.1, -6.4, 20} (5 değer) dizisinde karşılık gelen değerler vardır

x1[]={0.1, 1, 2, 2.5, 5, 5.1, 6, 8, 9.3} (9 değer) bağımsız değişkeni için parçalı doğrusal enterpolasyon işlevi aracılığıyla x1[]={0.1, 1, 2, 2.5, 5, 5.1, 6, 8, 9.3} (9 değer) bağımsız değişkeni için y[]9 dizisinden karşılık gelen değerleri nasıl elde ederim?

Anladığım kadarıyla, başlangıçta x[] dizisinde x1[] dizisindeki değeri arıyoruz ve tam olarak eşleşiyorlarsa, y[]/ dizisindeki değeri y1[] dizisine atıyoruz.

Ve eğer eşleşmezlerse, x1[] dizisinde, aralarında x1 dizisindeki değerin bulunduğu 2 değer ararız. Daha sonra y1[] dizisi için, y[] dizisinden karşılık gelen değeri formülle hesaplarız.

Ve böylece gerekli sayıda nokta için. Ancak dizinin her bir elemanını numaralandırarak arama yapmak ekonomik değildir. Muhtemelen ikili arama kullanılır (arama yöntemleri hakkında okudum).

Bu yüzden, böyle bir fonksiyonun nasıl yazıldığını ve nasıl kullanıldığını bir yerde görmek istiyorum. Aramada sadece ALGLIB ile ilgili referanslar buldum. Ama nereden ve nasıl geldiğini anlayamadım.

Beni ALGLIB'e göndermeyin.

 
Novichokkk dizinin her bir elemanını numaralandırarak arama yapmak ekonomik değil. Muhtemelen ikili arama kullanın (arama yöntemleri hakkında okudum).

Bu yüzden, böyle bir fonksiyonun nasıl yazıldığını ve nasıl kullanıldığını bir yerlerde görmek istiyorum. Aramada sadece ALGLIB'e referanslar buldum. Ama nereden ve nasıl geldiğini anlayamadım.

Beni ALGLIB'e gönderme.

Neden her biri için arama yapalım? Eğer x ve x1 sıralıysa, iki indisle ilerleriz.

 
JRandomTrader #:

Neden her biri için arama yapalım? Eğer x ve x1 sıralanmışsa, iki indisle ilerleriz.

Evet, bunu düşünmemiştim. Bu yüzden örnek istemiştim. Ama hiç bulamadım. Bunu yapmak için doğru yola ihtiyacım var.

 
MQL5'te bir robotu Market'te satışa nasıl yükleyebilirim, talimat alabilir miyim?
 
Alisher Batiraliev #:
MQL5'te bir robotu Market'te satışa nasıl yükleyebilirim, talimat alabilir miyim?

Market'te. Sağ üstte büyük yeşil bir düğme var...


Форекс-маркет – Магазин торговых роботов, советников и технических индикаторов для MetaTrader 5
Форекс-маркет – Магазин торговых роботов, советников и технических индикаторов для MetaTrader 5
  • www.mql5.com
Официальная витрина приложений для торговли из терминала