詢問XQ異常, 是否關係語法執行順序?

  •   161 
  • 最後發表   Killua  2022 十一月 04
Killua 發文於   2022/10/31

各位高手 小編大大你們好 :

 

小弟想詢問一下,我今天測試程式交易的時候遇到的一個問題

我設定1點過後不會交易, 結果在 13:06 他下了一筆多單 

之後沒有賣出! 跳出異常  策略就停止了

以下想問的是 :

1. 策略停止是因為 跳出異常 吧? 因為我看到 從 1300~1306 都一直有跳出檢查程式碼 ( 但不予以執行 )

 

2. 為什麼突然在13:06 他就 自己下單了呢? 是5min 6min cycle 一次程式碼嗎?

目前我把 最下面的 currenttime( 設定交易時間的部分 ) 移動到最上方, 好像目前是沒有再發生下單問題

不知道是不是因為順序呢?

 

//

if position = 0 and filled = 0 and condition1 then setposition(1, market);

 

//

if filled = 1 and position = 1 

and (high >= (filledAvgPrice + profit){停利} or low <= (filledAvgPrice - loss){停損}) 

then setposition(0, market);

 

if currenttime > 130000 and currenttime < 134000 

or currenttime > 040000 and currenttime < 050000 

or currenttime > 210000 and currenttime < 212500

then setposition(0, market);

 

以上謝謝

 

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

 Hello Killua,

 

1. 小幫手沒有看到截圖或錯誤訊息,也不太清楚您所謂的檢查程式碼是什麼意思,但如果策略執行上遇到錯誤是會中斷沒錯。

 

2.您提供的腳本中並沒有 1點過後不會交易 的條件。

最下面那一段移到上面就不會在下單,因該是因為同時有複數個setposition條件成立時,只會執行第一個運作的 setposition。

所以在上移後,時間介於 130000 到 1340000 之間時 setposition(0, market) 都會被執行到,故其他後面符合條件的 setposition都不會執行。

 

另外補充,小幫手回覆時都是由討論區的後面往前面回覆。(近來會開始依據用戶是否有訂閱調整順序)

所以如果您在同一篇文章推文的話會造成您的文章被往前推,反而讓小幫手看到問題的時間變晚。

由於近來問題量不少,麻煩您發問後多等待一陣子。

 

  • 按讚來自於
  • PILIQQ456
Killua 發文於   2022/11/02

小編你好: 如上圖

就是它會顯示這些訊息。

那再跟您請教,如果我是想要在某時段, 例如 084500 ~ 091500 不要交易 

我要如何寫呢? 謝謝

 

另外想詢問.. 曾聽說XQ回測不準

不管什麼滑價 tick 進場都不是非常重要

但我剛才回測...看到這張圖 不知道這是不是bug呢?...

XQ小幫手 發文於   2022/11/04

 Hello Killua,

 

您圖片中的訊息是當條件成立時執行setposition,但 position 沒有變化。

這個本身不算是錯誤,所以執行不會中斷。

建議您可以參考 自動交易語法介紹 裡的說明,將position和filled納入條件控制交易,以避免這樣的狀況。

須注意 setposition 每次只會執行一個,所以在複數setposition同時執行時,除了第一個以外的都會被無視。

 

如果在一定時間不要交易,可以用time 或 currenttime 來作限制。

舉例來說:

condition1 = currenttime < 084500 or currenttime > 091500;

這樣conditino1 在 08:45 ~ 09:15 就會是 False。

 

關於圖片的部分,小幫手認為應該是換月價差所導致。

回測系統在計算時股票會納入除權息再投資、期貨會去除換月價差影響。

您可以實際查看該日的日盤結束和夜盤開始價格就能理解。

發表回覆
Close