지표: LinearRegSlope_V1

 

LinearRegSlope_V1:

선형 회귀 알고리즘을 사용하는 정규화되지 않은 오실레이터.

LinearRegSlope_V1

Author: Nikolay Kositsin

 

안녕하세요.이 지표"LinearRegSlope_V1"을 사용하여 EA를 작성하려고하는데 EA가 출력하는 데이터가 동일한 날짜 및 시간의 지표 데이터와 다릅니다. 제 코드의 일부는 다음과 같습니다:

이것은 입력 매개 변수입니다.


enum Applied_price_      // Type of constant

  {

   PRICE_CLOSE_ = 1,     // Close

   PRICE_OPEN_,          // Open

   PRICE_HIGH_,          // High

   PRICE_LOW_,           // Low

   PRICE_MEDIAN_,        // Median Price (HL/2)

   PRICE_TYPICAL_,       // Typical Price (HLC/3)

   PRICE_WEIGHTED_,      // Weighted Close (HLCC/4)

   PRICE_SIMPLE,         // Simple Price (OC/2)

   PRICE_QUARTER_,       // Quarted Price (HLOC/4) 

   PRICE_TRENDFOLLOW0_,  // TrendFollow_1 Price 

   PRICE_TRENDFOLLOW1_   // TrendFollow_2 Price 

  };

//----indicator parameter

input Smooth_Method SlMethod=MODE_SMA; // Smoothing method

input int SlLength=12;                 // Smoothing depth

input int SlPhase=15;                  // Smoothing parameter

input Applied_price_ IPC=PRICE_CLOSE;  // Price constant

input int Shift=0;                     // Horizontal shift of the indicator in bars

input uint TriggerShift=1;             // Bar shift for the trigger 

이것은 iCustom의 호출입니다. 매개 변수의 순서와 유형은 입력 매개 변수와 동일합니다.

 ExtHandle=iCustom(_Symbol,_Period,"Examples\\Test_LinearRegSlope_V1",

                        SlMethod,

                        SlLength,

                        SlPhase,

                        IPC,

                        Shift,

                        TriggerShift

                        );

다음 부분은 필수적인 부분으로, CopyBuffer 함수를 호출하여 인디케이터의 데이터를 가져오는 부분입니다.

double RegSlopeBuffer[],TriggerBuffer[];

      ArraySetAsSeries(RegSlopeBuffer,true);

      ArraySetAsSeries(TriggerBuffer,true);

     if(CopyBuffer(ExtHandle,0,0,3,RegSlopeBuffer)!=3)

     {

      Print("CopyBuffer from iMA failed, no data");

      return;

     }

     printf("Open  RegSlopeBuffer [0] is %f", RegSlopeBuffer [0]);//for test

 

문제는 인디케이터가 보여주는 데이터와 EA가 출력하는 데이터가 다르다는 것입니다. 예를 들어, EA가 출력하는 데이터는 다음과 같습니다.

2012.03.19 17:18:02 Core 1 2012.03.01 08:00:00 Open TriggerBuffer[0] is 0.160695

이지만 인디케이터의 데이터는 -0.051651입니다.

고마워요.