自動交易 能否最後一盤出場

  •   925 
  • 最後發表   bowen  2023 十二月 06
bowen 發文於   2023/10/29

舉例:

我當沖做空,想要最後一盤出場,能否讓程式13:25進入集合競價時掛漲停限價呢?

做多,想要最後一盤出場,能否讓程式13:25進入集合競價時掛跌停限價?

 

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

Hello bowen,

 

如果您的策略是非逐筆洗價ROD,且有在系統參數中勾選分鐘K棒自動完成的話,那麼集合競價前的那根Bar會在應該結束的時間點後的2分鐘時自動結束運算,這樣就可以送單。

舉例來說,使用1分鐘頻率非逐筆洗價,且勾選分鐘K棒自動完成的話:

if time = 132400 and position > 0 and filled > 0 then setposition(0, getfield("跌停價", "D"))

else if time = 132400 and position < 0 and filled < 0 then setposition(0, getfield("漲停價", "D"));

 

這樣在 13:27 時 132400 (13:24 ~ 13:25) 這根Bar就會被結束,此時運算就會送出委託單。

就小幫手所知目前應該是可以用這種方式來送出委託。

  • 按讚來自於
  • Bowen16
  • Pingzz0719
bowen 發文於   2023/11/02

不太懂為什麼是2分鐘後13:27送出委託單,而不是13:24那根bar跑完後13:25bar去掛單?

 

XQ小幫手 發文於   2023/11/07

Hello bowen,

 

小幫手更正,應該是在 13:28 時才會下出委託。

原因是因為 系統參數中 的 分鐘K棒自動完成 是在當根Bar結束後3分鐘沒有洗價的話,才會將該根Bar結束掉。

所以要到 28 分時 132400 這根Bar才會被系統結束並洗價。

  • 按讚來自於
  • Bowen16
  • Pingzz0719
Johnny66 發文於   2023/11/23

小幫手好

 

今天用getfield("漲停價", "D")結果是市價,所以失敗,該如何是好 謝謝

XQ小幫手 發文於   2023/11/28

Hello Johnny66,

 

如果腳本在執行 setposition 指令的時候有填寫委託價的話,應該不會下市價單。

麻煩您提供 自動交易中心匯出檔勾選(包含)交易腳本、交易紀錄匯出檔、XQ Log 並告知問題發生的日期時間來檢驗。

Log資料夾(預設路徑:C:\SysJust\XQLite\LOG)直接壓縮後提供即可。

您可以直接將檔案上傳,如果檔案過大的話也可以保存到雲端後將連結Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小幫手才能盡早處理)。

感謝。

交易練習生 發文於   2023/11/28

如果您的策略是非逐筆洗價ROD,且有在系統參數中勾選分鐘K棒自動完成的話,那麼集合競價前的那根Bar會在應該結束的時間點後的2分鐘時自動結束運算,這樣就可以送單。

小幫手您好

關於您上面提到尾盤的出場方式,有幾點請益:

1. 由於最後一盤集合競價同價格下也有送出委託的順序問題,如果13:28才能送出,有可能回補不到或回補不完全。請問有什麼方法可以定時或提前一點送出漲停或跌停的限價委託呢?

2. 我目前理解的XQ自動交易是需要有成交才會觸發腳本檢查,假如當前跑的是1分K的腳本,13:19有成交之後,13:20-13:23都沒有任何成交量,接著13:24成交了1張,這樣是在13:24時,如果未勾選「分鐘K棒自動完成」,XQ會同時完成13:20、13:21、13:22、13:23、13:24這5根K棒,但實際上腳本是只在13:19與13:24兩個時間點做檢查嗎?

3. 承第2點,如果想要透過觀察執行紀錄去確認這段時間是否有遇到K棒因無成交量而未完成的情況,該怎麼做比較好呢?有辦法針對這個情境,才觸發Print指令印出提示文字嗎?

4. 系統參數勾選「分鐘K棒自動完成」會影響到自動交易的部分在官網的教學文件中沒有提到,但這個對於用戶理解交易腳本邏輯似乎影響滿大的,是否可以將相關說明加入到自動交易的章節裡呢?

XQ小幫手 發文於   2023/12/01

 Hello 交易練習生,

 

1.您可以自行設定時間條件提早出場,舉例來說:

if currenttime > 132000 and position <> 0 and filled <> 0 then setposition(0, market);

這樣只要再 13:20 以後腳本有庫存的話就會被平倉。

 

2.如果您是逐筆洗價的話,那麼就是13:19和13:24這兩筆交易發生後馬上洗價。

如果沒有勾選分鐘K棒自動完成的話,那麼 131900 (13:19的洗價) 這根Bar會到 13:24 洗價時才結束掉,所以13:24洗價時會運算 131900 這根Bar。

如果有勾選分鐘K棒自動完成的話,那麼在 13:23 時 131900 這根Bar會被自動結束掉,故此時會洗 131900 這根Bar。

您可以用 print 印出 time (K棒標記時間) 以及 currenttime (本機當下時間) 會比較容易觀察。

 

3.沒辦法,沒有成交量就沒有洗價,腳本也不會運算。

 

4.分鐘K棒自動完成是如果經過180 秒還沒有洗價的狀況下,會將該根Bar結束。

小幫手會將您的建議轉告相關人員,但個人認為這是個很單純的功能,且未來會有自動洗價的功能可以替代。

  • 按讚來自於
  • Pingzz0719
交易練習生 發文於   2023/12/01

小幫手您好


 

第 1 點回覆有點疑問想確認一下,關於我所了解的是無論是否有成交量,筆洗價後,固定每秒都會跑一次腳本運算,所以用 currenttime 才能正常觸發委託。那麼在沒勾逐筆洗價的情況下,如果過程中都沒有成交量,寫 currenttime 是不是沒辦法保證在該時間點送出平倉委託或Print指令?


 

第 2 點在沒勾逐筆洗價且沒勾選分鐘K棒自動完成的情況下,如果在集合競價前最後成交的就是13:24這一筆,又因為當下是洗13:19這一根Bar,是不是會等到集合競價結束才會在運算 13:24 這根Bar呢?(實際上當下已經收盤,要下委託也下不了)。請問這樣理解是對的嗎?

尾盤平倉指令是否能正常被執行,直接影響用戶是否需要儲備交割款項、改帳成融券,甚至可能需要借券,而現況看起來如果我們跑的是沒勾逐筆洗價的腳本,影響能否正常送出委託的主要因素在於是否勾選分鐘K棒自動完成由於系統默認是勾選分鐘K棒自動完成該功能的開關不在自動交易中心介面或交易腳本的設定裡,大部分情況下寫腳本的時候只會單純用腳本頻率是否勾選逐筆洗價去設想腳本的運算時機,沒有來論壇看到相關討論的人,很可能都不曉得有這件事,偏偏對於想尾盤平倉的策略來說,這又是一個很關鍵的設定,這點對於用戶實單存在不小的風險。

 

而且在自動交易功能出現前,原本用戶對此功能的理解應該是只影響「指標腳本所呈現的K棒是否會自動完成」,不容易聯想到這個功能還兼影響了自動交易的執行。故雖然功能本身很單純,但在您說的自動洗價功能出現前,建議至少在官方教學文件或其他適合的區域提供一份詳細說明,學習XS的用戶才有機會去注意到這個設計影響。


 

謝謝您。

XQ小幫手 發文於   2023/12/06

 Hello 交易練習生,

 

1.逐筆洗價並不是每秒洗一次,而是有Tick時洗價。

可參考 Tick欄位的應用 文章。

所以若沒有成交量的話,勾選逐筆洗價也不會運算。

 

2.是的。

 

不論是否有勾選逐筆洗價,要能夠在尾盤下單都需要勾選分鐘K棒自動完成。

在有這功能之前,XQ是沒辦法在尾盤出場的。

小幫手個人覺得比起在尾盤出場,不如早一些 (ex. currenttime > 132000) 出場會比較好,不用擔心萬一出了問題會來不及出場,也比較好掌控價格。

未來小幫手會補上說明文章。

 

 

  • 按讚來自於
  • XQ1612201
  • Pingzz0719
發表回覆
Close