我想要計算在頻率為分K時,前一天有幾根分K是漲停價,以下是指標的程式碼。
{指標 Test.TrueCount_High_UpLimit_1D} {測試對象 2021/06/11 笙科(5272) 漲停價為35} SetTotalBar(270*22*12*1); var:_UpLimit_1D(0), {昨天的漲停價} _Count_UpLimit_1D(0), {昨天有幾根分K是漲停價} _Count_UpLimit_1D_const(0); {2021/06/11 笙科(5272) 漲停價為35} _UpLimit_1D = GetField("漲停價", "D")[1]; _Count_UpLimit_1D = CountIf(High[mod(currentbar, 270)]=_UpLimit_1D, 270); _Count_UpLimit_1D_const = CountIf(High[mod(currentbar, 270)]=35, 270); {2021/06/11 笙科(5272) 漲停價為35} Plot1(_Count_UpLimit_1D, "_Count_UpLimit_1D"); Plot2(_Count_UpLimit_1D_const, "_Count_UpLimit_1D_const");
Plot1 畫的是用變數 _UpLimit_1D 來做邏輯判斷,而Plot2 畫的是直接用常數35來做邏輯判斷,理論上這兩個畫出來的應該要是一樣的。因為_UpLimit_1D是前一天的漲停價,2021/06/11 笙科(5272) 漲停價為35。
但是畫出來不相同,如下圖。
我的猜測是因為_UpLimit_1D 是日頻率"D"的變數,所以導致CountIf(High[mod(currentbar, 270)]=_UpLimit_1D, 270)變成在用日頻率"D"在進行,而不是用"分頻率"在進行。請問這個問題要如何解決?
_UpLimit_1D = GetField("漲停價", "D")[1];
3 評論