策略雷達的大戶買賣力數據有誤

  •   156 
  • 最後發表   cliffjen  2023 五月 18
cliffjen 發文於   2023/05/17

小幫手您好  使用策略雷達  指定頻率為3分鐘   以下為程式碼  

SetTotalBar(600);
setbarBack(600,"D");


value1 = GetField("成交金額(元)", "D") / 100000000; 

condition1 = value1 >= 1;


condition2 = close >= average(GetField("收盤價","D"),20); 


value3 = ((close - GetField("參考價", "D")) / GetField("參考價", "D")) * 100;

condition3 = value3 >= 3;


value4 = GetField("買進特大單金額","D") + GetField("買進大單金額","D");
value5 = GetField("賣出特大單金額","D") + GetField("賣出大單金額","D");
value6 = (value4 - value5) / 10000;

condition4 = value6 >= 1000;  


if GetField("成交金額(元)", "D") <> 0 then value7 = ((value4 - value5) / GetField("成交金額(元)", "D")) * 100;

condition5 = value7 > -7.5; 



if CurrentTime <= 131244 and condition1 and condition2 and condition3 and condition4 and condition5

then Begin ret=1;

           RetMsg = text("     ", NumToStr(value6, 0),",            ", NumToStr(value7, 1) ," % ",",           ", NumToStr(value1, 2)," 億 ");
     End;


print(file("C:\print\print.log"),symbol,value4,value5,value6,value7,value1);


其中  大戶買賣力金額  有時會出錯  如附圖的(1762中化生,6472保瑞)

不知道是什麼問題  只有幾隻會出錯  而且通常在越早盤越容易有誤(如9點剛開盤時)

還煩請小幫手幫忙處理  謝謝

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/05/17

Hello cliffjen,

 

因為您雷達是在盤中洗價腳本運算當下的數值,而指標畫出的是當根Bar結束後您拉回去看的數值。

由於買進特大單金額等欄位並沒有提供Tick頻率的資訊,所以在該根Bar的時間內都會顯示該分鐘的資訊,並不會因為是不同的Tick而有著不同的數值。

如果您在趨勢圖上左右移動的話,可以確認到同一分鐘內該數值都不會變動,就是這個原因。

簡單的例子是K棒還未結束所印出的close和K棒結束的close並不一定會相同。(不過 close 有tick頻率的資料可以回去確認就是)

cliffjen 發文於   2023/05/17

謝謝小幫手的解答

另想請問小幫手  遇到這種情形我該如何解決  來使雷達的數值和該根Bar的數值一致呢?

我想到是在程式碼中的CurrentTime改為Time 不知這樣是否能解決?

或是小幫手您有好的方法可以建議? 

謝謝

XQ小幫手 發文於   2023/05/18

Hello cliffjen,

 

如同小幫手上面回覆所說,該欄位沒有Tick頻率的資料,故沒辦法得知該根Bar未結束的數值。

如果要相同的話,您可以將雷達設為非逐筆洗價,這樣就會是當根Bar結束後腳本才會運算。

或是使用前一根Bar的資訊。

舉例來說,在一分鐘頻率的狀況下:

value4 = GetField("買進特大單金額","D") + GetField("買進大單金額","D");

value5 = GetField("賣出特大單金額","D") + GetField("賣出大單金額","D");

value6 = (value4 - value5) / 10000;

改用 value6[1] 當作條件並顯示,這樣就會是上1分鐘已經完結的Bar的資訊。

發表回覆
Close