我在函數裡面,寫了一個自訂函數,名為 f_Accumulated_Volume_In_Minute,回傳為數值
這是一個基於分K棒,計算當日累計成交量的函數
程式碼如下:
//宣告
SetBarMode(1);
variable:currentbar_flag(0);
//計算當日累計成交量
if currentbar_flag < currentbar //控制此腳本在每根K棒只會被計算一次
then begin
currentbar_flag = currentbar;
if date > date[1]
then begin
f_accumulated_volume_in_minute = volume; //當日第一根分K棒的成交量
end
else begin
f_accumulated_volume_in_minute += volume; //當日第二根分K棒,及之後的成交量
end;
end;
然後,我在指標裡面,寫了一個指標,名為 Test.累計成交量.函數,來測試這個自訂函數f_accumulated_volume_in_minute 。
程式碼如下:
variable:buf_1(0);
variable:buf_2(0);
//buf_1,使用邏輯if else,來選擇承接 f_accumulated_volume_in_minute //==========
if time > 110000 then
buf_1 = f_accumulated_volume_in_minute
else
buf_1 = f_accumulated_volume_in_minute;
plot1(buf_1,"buf_1");
//buf_2,不使用邏輯if,直接承接 f_accumulated_volume_in_minute //===========
buf_2 = f_accumulated_volume_in_minute;
plot2(buf_2,"buf_2");
buf_1 使用了 if else 來分別承接自訂函數 f_accumulated_volume_in_minute 的值,但是在 if 和 else 裡面都承接了,因此包含了所有的情況,並利用 plot1(buf_1,"buf_1"); 畫出來。
buf_2 則是直接承接了 並利用 plot2(buf_2,"buf_2"); 畫出來。
邏輯上,plot1(buf_1,"buf_1");和plot2(buf_2,"buf_2"); 應該要出現一樣的圖形,但是卻不同。
但這卻不合理,因此想要請教助教,是不是我在哪裡理解錯誤了?
plot1(buf_1,"buf_1"); 如下:
.jpg?width=690&upscale=false)
plot2(buf_2,"buf_2"); 如下:
.jpg?width=690&upscale=false)

.jpg?width=690&upscale=false)
.jpg?width=690&upscale=false)
.jpg?width=690&upscale=false)
.jpg?width=690&upscale=false)
.jpg?width=690&upscale=false)
.jpg?width=690&upscale=false)
16 評論