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

 
Vitaly Muzichenko :

효과가 있었는지 아닌지?

입력 매개변수의 색상을 변경할 때 이 색상이 " indicator_color1 "에 있도록 하는 방법 "? 이제 변경하지 마십시오. 이니셜이 있습니다.

 Comment (Buffer1_Color[ 0 ]);

어쩌면 그렇게?

 
Сергей Таболин :

어쩌면 그렇게?

 
Vitaly Muzichenko :

효과가 있었는지 아닌지?

입력 매개변수의 색상을 변경할 때 이 색상이 " indicator_color1 "에 있도록 하는 방법 "? 이제 변경하지 마십시오. 이니셜이 있습니다.

다음과 같이 추적할 수 있습니다.

 //+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots    1
//--- plot Label1
#property indicator_label1    "Label1"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrDarkGoldenrod
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- indicator buffers
double          Label1Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,Label1Buffer, INDICATOR_DATA );

//---
   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[])
  {
//---
   Print ( PlotIndexGetInteger ( 0 , PLOT_LINE_COLOR , 0 ));
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
파일:
Test.mq5  5 kb
 
Vladimir Karputov :

다음과 같이 추적할 수 있습니다.

좋습니다. PlotIndexGetInteger ( 0 , PLOT_LINE_COLOR , 0 )

고맙습니다!

 

모든 시간대에서 분 시계열에 대해서만 사용자 지정 표시기 의 OnCalculate()에서 데이터를 가져오는 방법은 무엇입니까? 최대한 CopyRates(sym,PERIOD_M1,...)를 사용하고 있습니다. 조언이 있습니까?

 
Vladimir M. :

모든 시간대에서 분 시계열에 대해서만 사용자 지정 표시기 의 OnCalculate()에서 데이터를 가져오는 방법은 무엇입니까? 최대한 CopyRates(sym,PERIOD_M1,...)를 사용하고 있습니다. 조언이 있습니까?

한 번에 여러 막대가 필요한 경우 더 나은 것을 찾을 수 없습니다. 그리고 내 생각에는 CopyRates를 사용하여 한 막대의 값을 얻는 것이 좋습니다.

 
Alexey Viktorov :

한 번에 여러 막대가 필요한 경우 더 나은 것을 찾을 수 없습니다. 그리고 내 생각에는 CopyRates를 사용하여 한 막대의 값을 얻는 것이 좋습니다.

저도 다 읽어보고 다 해봤는데 이보다 더 좋은 걸 못 찾겠는데 OnCalculate() 는 불필요하게 인디케이터에서 제거할 수 없습니다. 동일한 데이터를 두 번 수신하는 것으로 나타났습니까?
 
Vladimir M. :
OnCalculate()는 불필요하므로 표시기에서 제거되지 않습니다. 동일한 데이터를 두 번 수신하는 것으로 나타났습니까?

OnTick()이 있으면 그것 없이도 가능한 것 같습니까?

 
Vladimir M. :
저도 다 읽어보고 다 해봤는데 이보다 더 좋은 걸 못 찾겠는데 OnCalculate()는 불필요하게 인디케이터에서 제거할 수 없습니다. 동일한 데이터를 두 번 수신하는 것으로 나타났습니까?

글쎄, 당신이 그것을 필요로하지 않는다면 당신은 두 번째 옵션을 사용할 수 있습니다

 int OnCalculate ( const int rates_total,       // размер массива price[] 
                 const int prev_calculated,   // обработано баров на предыдущем вызове 
                 const int begin,             // откуда начинаются значимые данные 
                 const double & price[]       // массив для расчета 
   );
 
Igor Zakharov :

OnTick()이 있으면 그것 없이도 가능한 것 같습니까?

나는 그것이 가능하다고 의심하지만 시도하지 않을 것입니다. 그리고 문서에는 다음과 같이 나와 있습니다.

"... NewTick 이벤트는 Expert Advisors가 연결된 심볼에 새 틱이 도착할 때 Expert Advisors에 대해서만 생성됩니다. NewTick 이벤트 이후 사용자 지정 표시기 또는 스크립트에서 OnTick() 함수를 정의하는 것은 쓸모가 없습니다 . 생성되지 않습니다..."

사유: