請問此指令為何無法進行回補,3月初時還可以?

  •   142 
  • 最後發表   Johnny0495  2023 五月 02
Johnny0495 發文於   2023/04/19

if Position <> 0 and filled <> 0  then begin

SetPosition(0, market);

end;

 

  • 按讚來自於
  • SEJU0313
排序方式: 標準 | 最新
XQ小幫手 發文於   2023/04/20

Hello Johnny0495,

 

要麻煩您提供更詳細的說明,小幫手才能理解狀況並嘗試解決。

就這腳本來看,在策略的部位和庫存不為0的狀況下都會出場,除非腳本前面已經先執行了其他的交易指令,因為每次腳本運算只會執行第一個交易指令。

細節可以參考 setposition

Johnny0495 發文於   2023/04/20

if Position <> 0 and filled <> 0  then begin

SetPosition(0, market);

end;

(以上為全部程式內容)

程式(B)為需手動回補時啟動。

例如:A程式進行台積電(2330)賣出,再由此程式(B)手動啟動進行買回。

原先啟動都會即時進行回補買回(3月底前),近期啟動卻沒有進行回補買回。

 

  • 按讚來自於
  • SEJU0313
XQ小幫手 發文於   2023/04/21

Hello Johnny0495,

 

如果是這樣的話,應該跟您的策略設定比較有關。

1.是否有設定為依庫存。

2.執行商品是否有包含有庫存的商品。

3.B策略是否是在A策略賣出後才啟動策略。

4.啟動策略時策略是否有正確的讀取到實際庫存。

 

如果以上都有達成但策略還是沒有交易的話,麻煩您提供 策略匯出檔勾選(包含)交易腳本 以及 XQ Log ,並告知問題發生的日期時間讓相關人員確認。

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

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

感謝。

 

Johnny0495 發文於   2023/04/21

以上皆是。

下周操作後若執行仍無回補再LOG提供。

XQ小幫手 發文於   2023/04/24

Hello Johnny0495,

 

小幫手補充,要商品有洗價,腳本有運算才會下單。

所以如果該商品一直都沒有洗價的話,是有可能發生策略啟動後完全不交易的狀況。

Johnny0495 發文於   2023/04/24

今天有進行回補,但先前好像沒有你說的洗價動作。

而且之前的回補速度相當快幾乎是不到一秒時間(瞬間)就已成交,以今天為例約為16秒後才成交。

附加文件

XQ小幫手 發文於   2023/04/26

Hello Johnny0495,

 

啟動策略後,策略會先運算資料讀取筆數,等運算完並顯示開始即時洗價的時候才會開始運算新進來的資訊。

此時若您有勾選逐筆洗價的話,當商品有交易有Tick資訊進來洗價時,腳本會運算,此時才會觸發。

若沒有勾選逐筆洗價的話,則要等到該根Bar結束後的洗價腳本才會運算並觸發。

兩者的共同點是,如果商品本身沒有交易導致洗價的話,腳本是不會運算的,而沒運算的話就不會交易。

小幫手認為間隔16秒可能是因為16秒間沒有交易,或是策略沒有勾選逐筆洗價所造成。

Johnny0495 發文於   2023/04/26

理解了,所以要開啟逐筆洗價。

確實沒有勾選逐筆洗價,可能先前交易商品是成交量較少速度較慢,又沒勾選逐筆洗價,導致未能即時進行回補動作。

感謝您的回覆,謝謝!

Johnny0495 發文於   2023/04/26

抱歉,請問資料讀取筆數應該設定多少筆較佳呢?

假設跑1分K,只讀取1筆可以嗎?

XQ小幫手 發文於   2023/05/02

 Hello Johnny0495,

 

資料讀取筆數的設定是看您的腳本是否需要變數的前期值來決定。

細節可以參考 資料讀取範圍與腳本執行的關係

如果是問題中腳本的話並不需要,所以可以設為1筆沒錯。

發表回覆
Close