開盤價進場策略寫法

  •   284 
  • 最後發表   Nestort  2024 二月 21
Nestort 發文於   2024/02/19

小編你好,想請問一下 有以下想法想請你協助,

想用5分K去做進出場判斷
假設開盤有跳空,就會直接進場
所以會想寫說 if open > h [1] then setposition(1 , market);

然後出場想用跌破前一根K棒低點去設停損 
if c < low[1] then setposition(0,market);

Q1:大致上條件式這樣,但回測是使用「逐筆洗價」,都會發現進場不一定是開盤價,都有可能會是9:01 9:04 ...等等的進場,要怎麼固定他在9:00做進場,還是無法使用開盤價判斷去做進場回測?

Q2:出場的時候都會發現,出場因為開啟了逐筆洗價,導致他不會跟著5分K收盤才去做判斷,想請教說要如何去解決這塊的問題,因為如果關掉「逐筆洗價」,進場好像又會固定在5分K收完 9:05 的時候去做進場,這樣有什麼樣的解法嗎?

感謝回覆

XS小編 發文於   2024/02/21

Hello Nestort,

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

 

if open > h [1] then setposition(1 , market);

您這種寫法會在每根Bar上都判斷,並不只有開盤時。

要限定在開盤時可以加上 issessionfirstbar 當作條件。

 

同理,if c < low[1] then setposition(0,market); 則會是當價格比前一根Bar的低點低時就出場。

出場的部分如果是要跌破進場前一根Bar的低點的話,可以使用變數在進場時紀錄。

 

另外,XQ的運算邏輯中是洗價完畢後才下單。

而5分鐘逐筆洗價時5分鐘Bar會由5根1分鐘Bar組成,故最近的成交價格會是第一分鐘的收盤價。

且 issessionfirstbar 在第一根Bar (5分鐘) 都會是True,所以 090000 ~ 090400 的1分鐘Bar此條件都會是True。

如果要成交在開盤價的話,要使用一分鐘逐筆洗價 (用1分鐘OHLC來洗價),才有辦法辦到。

 

如果出場要用已經結束的Bar來做判斷的話,可以用前一根Bar來做判斷。

舉例來說:

condition1 = close < low[1];

if condition1[1] and filled <> 0 then setposition(0, market);

或是

if close[1] < low[2] and filled <> 0 then setposition(0, market); 

都可以有相同效果。

發表回覆
Close