大戶買賣力

  •   501 
  • 最後發表   jd  2022 八月 02
jd 發文於   2022/07/13

 小幫手您好,

想請教大戶買賣力 的買力往上增加以下我的想法哪裡有錯?執行後所出來的結果並沒有看到紅柱往上遞增。

以下是我的程式碼,請問該如何修改?

if barfreq <>"M" and barinterval <> 1 then raiseRunTimeError("請用1分鐘線");
value1=getfield("買進大單量");
value2=getfield("買進特大單量");
value3=getfield("賣出大單量");
value4=getfield("賣出特大單量");
value5=value1+value2-value3-value4;
condition1=value5[2]<value5[1] and value5[1]<value5[0] and value5[0]>0 and value5[1]>0 and value5[2]>0;
condition2=value5[2]<value5[1] and value5[1]<value5[0] and value5[0]>0 and value5[1]>0 and value5[2]<0;
if condition1 or condition2 then
begin
ret=1;
//Print(file("d:\print\"), "Date=", NumToStr(Date, 0), "value5[2]=", NumToStr(value5[2],2), "value5[1]=", NumToStr(value5[1],2), "value5[0]=", NumToStr(value5[0],2));
end;

排序方式: 標準 | 最新
musashi 發文於   2022/07/16

要用累計的方式計算,把value5加回去。

value5+=value1+value2-value3-value4;

XQ小幫手 發文於   2022/07/20

Hello jd,

 

value5=value1+value2-value3-value4;

這種寫法是將每1分鐘頻率的大單和特大單分別加總。

 

value5+=value1+value2-value3-value4;

這種寫法則是將執行過的每根Bar的大單和特大單加總。

 

如果是第二種的話,可能會需要定時重置value5。

舉例來說,就只統計每日的大單量的話:

if issessionfirstbar then value5 = 0;

value1=getfield("買進大單量");

value2=getfield("買進特大單量");

value3=getfield("賣出大單量");

value4=getfield("賣出特大單量");

value5+=value1+value2-value3-value4;

 

感謝 musashi 的熱心回覆。

jd 發文於   2022/07/25

謝謝 小幫手回覆,能夠再進一步請教 大戶買賣力的紅柱的數值是以下程式的value5 嗎?(value5正為紅柱, 負為綠柱)

if barfreq <>"M" and barinterval <> 1 then raiseRunTimeError("請用1分鐘線");
value1=getfield("買進大單量");
value2=getfield("買進特大單量");
value3=getfield("賣出大單量");
value4=getfield("賣出特大單量");
value5=value1+value2-value3-value4;

XQ小幫手 發文於   2022/08/02

Hello jd,

 

您可以參考內建的大戶買賣力指標。

value1 = GetField("賣出特大單量","D") + GetField("賣出大單量","D");

value2 = GetField("買進特大單量","D") + GetField("買進大單量","D");

value3 = value2 - value1;

可以看出裡面使用 日頻率,所以計算出的 value3 會是當日累積值。

如果您是拿此指標和上面的警示腳本 (非累積) 相比,自然會不相同。

 

小幫手不太確定您要的是當根Bar的買賣力,還是當日累積的買賣力。

假設是當根Bar的話,那麼您寫的 value5 沒有錯。

若是要累積的話,看是要將value1~value4改為取得日頻率資訊,或是 將value5改為:

if issessionfirstbar then value5 = value1+value2-value3-value4 else value5 += value1+value2-value3-value4;

這樣就會在當天第一跟Bar時重新累計。

發表回覆
Close