存在しないデータ部分を計算しない
データ開始部分はデータが無いため、インディケーターの表示がおかしい。
int start() { int limit = Bars-IndicatorCounted(); for(int i=limit-1; 0<=i; i--){ Buf[i] = 0; for(int j=0; j<MA_Period; j++){ Buf[i] = Buf[i] + Close[i+j]; } Buf[i] = Buf[i]/MA_Period; } for(i=limit-1; 0<=i; i--){ Buf1[i] = 0; for(j=0; j<MA_Period1 ; j++){ Buf1[i] = Buf1[i] + Close[i+j]; } Buf1[i] = Buf1[i]/MA_Period1; } return(0); }
既に計算された指標バーがない場合は、それを計算から取り除く処理を施す。
int start() { int limit = Bars-IndicatorCounted(); //既に計算された指標がない場合は、 補正する。 if(limit == Bars){ limit = limit - (MA_Period -1); } for(int i=limit-1; 0<=i; i--){ Buf[i] = 0; for(int j=0; j<MA_Period; j++){ Buf[i] = Buf[i] + Close[i+j]; } Buf[i] = Buf[i]/MA_Period; } limit = Bars-IndicatorCounted(); //既に計算された指標がない場合は、 補正する。 if(limit == Bars){ limit = limit - (MA_Period1 -1); } for(i=limit-1; 0<=i; i--){ Buf1[i] = 0; for(j=0; j<MA_Period1 ; j++){ Buf1[i] = Buf1[i] + Close[i+j]; } Buf1[i] = Buf1[i]/MA_Period1; } return(0); }