請問想寫一個警示,otc開盤價在近5日均線之上且個股開4%以下才啟動策略雷達要怎麼寫

  •   315 
  • 最後發表   Tofu  2025 六月 04
Tofu 發文於   2025/05/19

input:N(5); setinputname(1, "期別"); 

 

setbarback(N, "D");

Value1 = Average(GetSymbolField("otc.TW","close","D"),N);

if GetSymbolField("otc.tw","open") >=0

then begin

 

condition1 = open <= close[1] * 1.04;  //開盤價小於等於前日收盤價的1.04倍

condition2= time <= 090059; //開盤第一根K棒內

if condition1 and condition2

then ret = 1;

end;

 

如題,請問我像上面寫這樣ok嗎?

不確定引用的bar數要設定多少,因為我雷達是用1分K下去跑,但otc開盤參照的是前5日的收盤...

如果otc的部分放在基準商品參照的話會比較好嗎?若是的話是否要更改呢

謝謝小幫手!

 

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/05/19

1分鐘頻率下,

(1)close[1]是前一分鐘的收盤價,而非前一天的收盤價。前一天的收盤價要改用getField("Close","D")[1]。

(2)open是目前1分K的開盤價。

(3)

input: N(5, "期別");

condition1 = getField("Close","D") <= getField("參考價","D") * 1.06;  //開盤價小於等於前日收盤價的1.04倍

condition2 = time = 090000; //開盤第一根K棒內

condition3 =  getField("Open","D") > Average(GetSymbolField("otc.TW","close","D"),N);

if condition1 and condition2 and condition3 then ret = 1;

Tofu 發文於   2025/05/19

謝謝許教授,想請問condition3那邊,如果我是想要寫「otc當天的開盤價」>「otc前五日收盤均價」,是不是要改成如下:

condition3 =  GetSymbolField("otc.TW","open") > Average(GetSymbolField("otc.TW","close","D"),N);

 

虎科大許教授 發文於   2025/05/19

若是前五天,不包含當天,計算均價要加[1]

condition3 =  GetSymbolField("otc.TW","open") > Average(GetSymbolField("otc.TW","close","D")[1],N);

XS小編 發文於   2025/06/04

Hello Tofu,

 

小編補充,策略雷達沒辦法在某個條件達成後才啟動,因為策略需要啟動才能運算。

但您這邊的狀況可以使用 return 來作到 如果條件不符合,就不繼續計算下去。

舉例來說:

condition1 = GetSymbolField("otc.TW","open") > Average(GetSymbolField("otc.TW","close","D"),N);

if not condition1 then return;

 

這樣條件不符合時,在執行到return時就會中斷。

發表回覆
Close