VWAPの欠点
今日は久しぶりにトレステの話でもしてみます。
前にVWAPの話をしましたが、VWAPは上げ下げを順に加算していくので
その性質上、前場寄り直後は大きく上下しますが、午後からは殆ど動かなくなります。
なので、直近の一定本数のみを加算する方式にしたらどうか、と考えたのが以下です。
またろう式範囲内VWAP
関数:VWAP_M
inputs: VwapAvg(NumericSimple); vars: PriceW(0), ShareW(0), Answer(0), ii(0), BarCount(0); Once begin PriceW = 0; ShareW = 0; Answer = OpenD(0); end; if date > date[1] then begin BarCount = 0; end; if CurrentBar > 1 then begin PriceW = 0; ShareW = 0; FOR ii = 0 to VwapAvg - 1 BEGIN IF ii < BarCount then begin PriceW += (High[ii] * UpTicks[ii]) + (Low[ii] * DownTicks[ii]); END; end; FOR ii = 0 to VwapAvg - 1 BEGIN IF ii < BarCount then begin ShareW += Ticks[ii]; END; end; if ShareW > 0 then BEGIN Answer = PriceW / ShareW; END; end; BarCount = BarCount + 1; VWAP_M = Answer;
VwapAvgが対象とする直近の本数です。
インジケーター
inputs: AvgDownColor(Cyan), AvgUPColor(Magenta), NewColor(DarkGray), VwapAvg(25); vars: Answer(0), AnswerH(0); Answer = VWAP_M(VwapAvg); SetPlotColor(1,NewColor); IF Answer[1] < Answer then SetPlotColor(1,AvgUpColor); IF Answer[1] > Answer then SetPlotColor(1,AvgDownColor); Plot1(Answer,"VWAP_M");