초보자의 질문 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
Официальная витрина приложений для торговли из терминала
사유: