許教授 : 我想在頻率5分K下,寫出流動大戶差比的程式
在討論區有您對於頻率在1分K流動大戶差比寫法的解答:
請見以下:
流動大戶買賣力指標是在1分鐘頻率下,計算最近15分鐘的大戶的淨買進張數。
若要計算金額只要將張數乘以股價再乘以1000即可。
把大戶買賣力(金額)除以最近15分鐘的成交金額,就是你的流動大戶差比.
我把它寫成程式

在1分鐘頻率下 計算出來的值和報價欄位的流動大戶差比值不同.

請問在頻率1分K下, 要如何修改.
進一步要如何在頻率5分K下,寫出流動大戶差比的程式.
許教授 : 我想在頻率5分K下,寫出流動大戶差比的程式
在討論區有您對於頻率在1分K流動大戶差比寫法的解答:
請見以下:
流動大戶買賣力指標是在1分鐘頻率下,計算最近15分鐘的大戶的淨買進張數。
若要計算金額只要將張數乘以股價再乘以1000即可。
把大戶買賣力(金額)除以最近15分鐘的成交金額,就是你的流動大戶差比.
我把它寫成程式

在1分鐘頻率下 計算出來的值和報價欄位的流動大戶差比值不同.

請問在頻率1分K下, 要如何修改.
進一步要如何在頻率5分K下,寫出流動大戶差比的程式.
你的成交金額GetField("成交金額(元)","15")並非最近15分鐘的成交金額,而是目前15分K的成交金額。若要算出與系統一樣的數值,成交金額一樣要用1分鐘的成交金額累加最近15分鐘的成交金額。
5分鐘頻率的最近15分鐘的流動大戶差比,處理邏輯與1分鐘一樣。
好的,許教授1分K 已修改成:


1分K 已完成, 感謝許教授的教導.
試寫5分K頻率的最近15分鐘的流動大戶差比
(傳錯圖片,不知要如何刪除)

重傳 5分K頻率的最近15分鐘的流動大戶差比


沒有讀取, 請問要如何修改.
5分鐘頻率,一樣要用1分鐘抓,不能用5分鐘。
若你的程式碼不要用貼圖,而直接貼上程式碼,會比較好閱讀,我們也可以直接用來測試。
好的, 許教授,以下是程式碼.
array:_ArrayLarge[3](0),_ArraySmall[3](0);
var:_Count(0);
if barfreq <> "Min" or barinterval <> 5 then
raiseruntimeerror("僅支援 5 分鐘頻率");
//初始化
if getfieldDate("Date") <> getfieldDate("Date")[1] then begin
_Count = 0;
Array_SetValRange(_ArrayLarge, 5, 3, 0);
Array_SetValRange(_ArraySmall, 5, 3, 0);
value3 = 0;
value99 = 0;
end else begin
_Count += 1;
end;
value99 = mod(_count,3) + 1;
_ArrayLarge[value99] = GetField("買進大單金額", "5") + GetField("買進特大單金額", "5");
_ArraySmall[value99] = GetField("賣出大單金額", "5") + GetField("賣出特大單金額", "5");
value1 = Array_Sum(_ArrayLarge, 5, 3);
value2 = Array_Sum(_ArraySmall, 5, 3);
//流動大戶淨買進金額
value3 = value1 - value2;
plot1(value3,"流動大戶淨買進金額");
//近15分鐘的成交金額
array : _ArrayAmount[3](0);
var:_n(0);
//初始化
if getfieldDate("Date") <> getfieldDate("Date")[1] then begin
_n = 0;
Array_SetValRange(_ArrayAmount, 5, 3, 0);
value5 = 0;
value98 = 0;
end else begin
_n += 1;
end;
value98 = mod(_n,3) + 1;
_ArrayAmount[value98] = GetField("成交金額", "5") ;
value6 = Array_Sum(_ArrayAmount, 5, 3);
plot2(value6,"近15分鐘的成交金額 ");
//近15分鐘大戶差比
value7 = iff(value6<>0, value3/value6*100,0);
plot3(value7,"5分k_流動大戶差比");
我的理解是,不論你使用什麼頻率,最近15分鐘的流動大戶差比,都是用1分鐘頻率計算。也就是說,你寫的最近15分鐘流動大戶差比的指標,不論用什麼頻率,它的答案都一樣, 不是嗎?
5 評論