지표를 무료로 작성해 드립니다 - 페이지 19

 
Tango_X :

OnTimer()를 사용하여 구현했는데 아무 것도 나오지 않았습니다. 불행히도 onTimer() 이벤트 동안 표시기가 계산되지 않고 지연이 저장됩니다. 아마도 큰 소리로 말하고 내가 뭔가를 잘못했을 수 있습니다. 수정해 주세요. 고맙습니다!

당신이 한 것은 OnTimer()를 통한 구현이 아닙니다. 거기에서만 값을 얻을 수 있습니다(게다가 전체 기록, 심지어 확인 없이 매초까지). 일반적으로 직접 구현할 가능성은 거의 없습니다. 브랜치 작가님의 답변을 기다립니다 :)
 
Alexey Kozitsyn :
당신이 한 것은 OnTimer()를 통한 구현이 아닙니다. 거기에서만 값을 얻을 수 있습니다(게다가 전체 기록, 심지어 확인 없이 매초까지). 일반적으로 직접 구현할 가능성은 거의 없습니다. 브랜치 작가님의 답변을 기다립니다 :)
네 감사합니다! 나는 이미 스레드의 작성자에게 연락하여 도움을 약속했습니다! 답변을 기다리고 있습니다))
 
Tango_X :

OnTimer()를 사용하여 구현했는데 아무 것도 나오지 않았습니다. 불행히도 onTimer() 이벤트 동안 표시기가 계산되지 않고 지연이 저장됩니다. 아마도 큰 소리로 말하고 내가 뭔가를 잘못했을 수 있습니다. 수정해 주세요. 고맙습니다!

//+------------------------------------------------------------------+
//|                                              TestCopyBuffer3.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots    1
//---- plot MA
#property indicator_label1   "MA"
#property indicator_type1   DRAW_LINE
#property indicator_color1   clrRed
#property indicator_style1   STYLE_SOLID
#property indicator_width1   1
//--- input parameters
bool                AsSeries= true ;
int                 period= 15 ;
input ENUM_TIMEFRAMES     TimeFrame= PERIOD_CURRENT ; //Период графика
ENUM_MA_METHOD      smootMode= MODE_EMA ;
ENUM_APPLIED_PRICE price= PRICE_CLOSE ;
int                 shift= 0 ;
//--- indicator buffers
double                    MABuffer[];
int                       ma_handle;
int to_copy;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,MABuffer, INDICATOR_DATA );
   Print ( "Параметр AsSeries = " ,AsSeries);
   Print ( "Индикаторный буфер после SetIndexBuffer() является таймсерией = " ,
         ArrayGetAsSeries (MABuffer));
//--- set short indicator name
   IndicatorSetString ( INDICATOR_SHORTNAME , "MA(" +period+ ")" +AsSeries);
//--- set AsSeries (depends on input parameter)
   ArraySetAsSeries (MABuffer,AsSeries);
   Print ( "Индикаторный буфер после ArraySetAsSeries(MABuffer,true); является таймсерией = " ,
         ArrayGetAsSeries (MABuffer));
//---
   ma_handle= iMA ( Symbol (),TimeFrame,period,shift,smootMode,price);
   EventSetTimer ( 1 ) ;
   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[])
  {
//--- check if all data calculated
   if ( BarsCalculated (ma_handle)<rates_total) return ( 0 );
//--- we can copy not all data
   //int to_copy;
   if (prev_calculated>rates_total || prev_calculated<= 0 ) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
       //--- last value is always copied
      to_copy++;
     }
//--- try to copy
  
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
//---
   CopyBuffer (ma_handle, 0 , 0 ,to_copy,MABuffer);
   Print ( "Таймер" );
  }
//+------------------------------------------------------------------+
무슨 뜻인지 추측 - OnCalculate 있는 모든 것을 OnTimer 로 이동
 
Yurij Izyumov :
무슨 뜻인지 추측 - OnCalculate에 있는 모든 것을 OnTimer 로 이동
작동한다면 왜 안되는가!
 
여기 에 솔루션이 제안되었지만 저는 초보 프로그래머이기 때문에 구현하기가 상당히 어렵습니다. 그래서 이 스레드에 도움을 요청했습니다.
 
Yurij Izyumov :

다시 작성하려면 포함된 모든 지표도 mql5 아래에 있어야 합니다.

그렇다면 리메이크는? 너무 복잡한 코드???
 
안녕하세요. Delta_RSI 표시기를 사용하고 동시에 양방향으로 histo를 지속적으로 그립니다(스크린샷 참조)(오류 찾기). 그리고 당신은 위/아래 0에 대해 다른 색상으로 알고 있는 색상 신호를 칠할 수 있습니다. (수정) 보이시죠? 고맙습니다.
 
Igor371 :
안녕하세요. Delta_RSI 표시기를 사용하고 동시에 양방향으로 histo를 지속적으로 그립니다(스크린샷 참조)(오류 찾기). 그리고 당신은 위/아래 0에 대해 다른 색상으로 알고 있는 색상 신호를 칠할 수 있습니다. (수정) 보이시죠? 고맙습니다.

그것을 깨기 위해 무엇을하고 있는지 설명하십시오)))

일정, TF, 시퀀스 등

 
Yurij Izyumov :

그것을 깨기 위해 무엇을하고 있는지 설명하십시오)))

일정, TF, 시퀀스 등

네, 저는 아무것도 하지 않습니다. 예를 들어 1000/250의 큰 기간 동안 M1에 표시됩니다. 어느 시점에서 요점은 동시에 0의 양쪽에 있습니다. 구체적으로 못 잡은 부분은 뭐, 자세히 봐야겠습니다. 그리고 코드에서 모든 것이 번들이며 수정할 것이 없습니까?
 
안녕하세요. 인디케이터가 파손되는 순간을 포착하는 것은 불가능합니다. 여기 서 있고 모든 것이 정상이지만 일단 부서지면. 나는 종종 교환원과 같은 쓰레기를 가지고 있기 때문에 brocks가 한 어떤 종류의 조작도 발견하지 못했습니다. (하지만 나는 모든 것을 indics의 그림과 여기에서 RSI로 돌렸습니다) 스크린샷과 함께 올빼미를 보호할 것입니다 .
파일:
GBPUSD.mM1.png  32 kb
사유: