초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1485

MQL5로 다시 작성했습니다. 개체와 관련된 작업을 제거했습니다.

비율 = 1을 설정하면 차트에 정상적으로 나타납니다. 즉, 차트에 하이-로우 막대로 겹쳐집니다. 그러나 디버깅 모드에서는 어떤 이유에서인지 그렇지 않습니다,

비율이 2로 설정되어 있는데도 1로 설정된 것처럼 표시됩니다.

코드가 모두 올바른가요?

//+------------------------------------------------------------------+
#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);
  }
//+------------------------------------------------------------------+
스크립트로
rates_total
매개변수 값을 가져오는 방법

표시기에는 명확합니다. 하지만 스크립트는요?


#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 #:
스크립트로 매개변수 값을 가져오는 방법

표시기에는 명확합니다. 하지만 스크립트는요?


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

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

이해할 수 있습니다. 전에도 그런 식으로 해본 적이 있습니다. 고마워요

#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));
   

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

다른 방법이 있는지 궁금해서요.

Novichokkk #:

이해할 수 있습니다. 전에도 해본 적이 있습니다. 고마워요

다른 방법이 있는지 궁금해서요.

할 수 있습니다. SeriesInfoInteger().

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

조각 단위 선형 보간을 구현하는 간단한 예는 어디에서 볼 수 있나요?

예를 들어 배열 x[]={0.1 , 0.8, 3.2, 7.9, 9.3}(5개 값)의 경우 배열 y[]={-3.2, 2.7, 1.1, -6.4, 20}(5개 값)에 대응하는 값이 있습니다.

인자 x1[]={0.1, 1, 2, 2.5, 5, 5.1, 6, 8, 9.3}(9개 값)에 대한 부분 선형 보간 함수를 통해 배열 y[]={0.1, 1, 2, 2.5, 5, 5.1, 6, 8, 9.3}(9개 값)에서 해당 값을 어떻게 얻으려면 어떻게 해야 합니까?

우선 배열 x[]에서 배열 x1[]의 값을 찾고 정확히 일치하면 배열 y[]/의 값을 배열 y1[]에 할당한다는 것을 이해합니다.

일치하지 않으면 배열 x1[]에서 2개의 값을 찾고, 그 사이에 배열 x1의 값이 있습니다. 그런 다음 배열 y1[]에 대해 수식에 따라 배열 y[]에서 해당 값을 계산합니다.

필요한 포인트 수에 대해서도 마찬가지입니다. 그러나 배열의 각 요소를 열거하여 검색하는 것은 경제적이지 않습니다. 아마도 이진 검색을 사용할 것입니다 (검색 방법에 대해 읽었습니다).

그래서 나는 그러한 함수가 어떻게 작성되고 어떻게 사용되는지 어딘가에서보고 싶습니다. 검색에서 ALGLIB에 대한 참조 만 찾았습니다. 그러나 나는 그것이 어디에서 어떻게 왔는지 이해할 수 없었습니다.

나를 ALGLIB로 보내지 마십시오.

Novichokkk 배열의 각 요소를 열거하여 검색하는 것은 경제적이지 않습니다. 아마도 이진 검색을 사용할 것입니다(검색 방법에 대해 읽었습니다).

그래서 나는 그러한 함수가 어떻게 작성되고 어떻게 사용되는지 어딘가에서보고 싶습니다. 검색에서 ALGLIB에 대한 참조 만 찾았습니다. 그러나 나는 그것이 어디에서 어떻게 왔는지 알아낼 수 없었습니다.

ALGLIB으로 보내지 마세요.

왜 각각을 검색하나요? x와 x1이 순서대로 정렬되면 두 개의 인덱스로 진행합니다.

JRandomTrader #:

왜 각각을 검색하나요? x와 x1이 순서대로 정렬되면 두 인덱스씩 전진합니다.

네, 그건 생각하지 못했습니다. 그래서 예제를 요청했습니다. 하지만 아무것도 찾을 수 없었어요. 올바른 방법이 필요해요.

마켓플레이스에서 로봇을 판매하기 위해 MQL5에 로봇을 업로드하려면 어떻게 해야 하나요?
Alisher Batiraliev #:
마켓플레이스에서 로봇을 판매하기 위해 MQL5에 로봇을 업로드하려면 어떻게 해야 하고 지침을 받을 수 있나요?

마켓에서. 오른쪽 상단에 큰 녹색 버튼이 있습니다...


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