欄位取得錯誤或不支援的欄位、頻率

  •   213 
  • 最後發表   sAAAs  2021 十月 06
sAAAs 發文於   2021/09/30

懇求偉大小幫手幫忙,

想法是,"當天"大戶買賣力創新高,"當天"股價卻沒有創"當天"的新高

腳本如下

if barfreq <> "Min" and barfreq <> "D" and barfreq <> "AD" then 

raiseruntimeerror("僅支援分鐘與日頻率(含還原)");

 

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

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

value6 = value5 - value4;

value7 = highest(value6,200);

value8 = getField("最高價", "D");

 

if close < value8 and value6 = value7

then ret = 1;

問題1.回測如標題如何修改解決?

問題2.執行雷達"當天盤中"抓的到警示嗎?

 

XQ小幫手 發文於   2021/10/06

Hello sAAAs,

 

您可以參考 賣出特大單量 等相關函數說明,上面有備註目前策略雷達與交易中心回測不支援日頻率。

簡單的替代方案是使用分鐘頻率但將每日的資訊加總,舉例來說:

if getfielddate("Date") <> getfielddate("Date")[1] then begin

    value4 = 0;

    value5 = 0;

    end;

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

value5 = value5 + GetField("買進特大單量") + GetField("買進大單量");

這樣您使用分鐘頻率的話,value4 與 value5 就會是該日加總的值。

所以您需要將 GetField("賣出特大單量","D")、GetField("賣出大單量","D")、GetField("買進特大單量","D")、GetField("買進大單量","D") 修改成其他頻率。

雷達可以盤中警示,不過您需要設定為分鐘頻率(逐筆可以勾選或不勾選,視需求而定),或是日頻率但勾選逐筆洗價才行。

發表回覆
Close