自動交易的疑問

  •   264 
  • 最後發表   無情卻慈悲  2021 五月 27
無情卻慈悲 發文於   2021/05/25

HI,

我想請教一下,我回測都能順利,但在真正跑交易,卻都沒有一筆有送出交易,而且如下圖這些訊息都是有偵到入場訊號,不是嗎?

求幫助!

 

 

 

附加文件

排序方式: 標準 | 最新
無情卻慈悲 發文於   2021/05/25

有把交易策略匯出上傳附檔。

無情卻慈悲 發文於   2021/05/26

可以麻煩幫看一下嗎?我真的研究2日了仍看不出原因。

XQ小幫手 發文於   2021/05/26

Hello 無情卻慈悲,

 

首先圖上這些列印是在腳本運算預先讀取筆數時的print資訊,要等到開始即時洗價才是自動交易開始運轉。

關於資料讀取筆數您可以參考此連接

您可以用GetInfo("IsRealTime")來判斷是即時還是歷史資料。

由於您是用自己設的變數紀錄庫存/部位(_stockS)並控制進出場,所以會發生您的變數在預先讀取筆數運算時有符合進場的條件,導致變數被調整但Position還是為0的狀況。

這會導致您沒有部位,但變數卻不為0的狀況。

小幫手建議您一率使用 Filled(庫存)、Position(部位) 和 FilledAvgPrice(未平倉成本) 來作控制。

無情卻慈悲 發文於   2021/05/26

感謝小幫手,

我重新再修改看首。

另外有二個問題請教 :

1. 用自己設的變數紀錄庫存/部位(_stockS)並控制進出場

→主要是我這交易腳本若 多 與空 的進出場都寫在同一腳本,

會發生我的多單進場後,但空單腳本剛好有訊號符合空單的條件,就把我的多單給平倉了,

請問是否有建議避免的方法?還是真的要把多單與空單分開寫成兩個腳本?

 

2.我此腳本為空單腳本,但我有另一個空單腳本正跑測試中,是可以自動下單沒錯,但如下單,我若勾選「無限制」,怎麼他會自己下多單進場呢?是否只能勾穻方就好?

 

XQ小幫手 發文於   2021/05/26

Hello 無情卻慈悲,

 

1.同一支自動交易策略,相同商品不能同時有多的庫存跟空的庫存。

如果您的劵商可以讓您同時作多又作空的話,那建議您將其拆開。

 

2.根據您早上提供的腳本來看,小幫手猜測您應該是弄錯 SetPosition 的用法。

小幫手看您寫法是 SetPosition(1, MARKET,label:="空單進場1"),這實際上是將部位調整到持有1張。

SetPosition 是將部位調整至您輸入的位置。

舉例來說, SetPosition(3, market) 會將您的部位調整至3。

如果你現在部位數是1的話,那就會買2張。

如果是空1張的話(-1),那就會買4張。

您如果是要空的話,應該是 SetPosition(-1, market),會將您的部位調整至空1張。

無情卻慈悲 發文於   2021/05/26

感謝小幫手的回覆。

最後請教一下,如果是純做空的腳本,我上圖應勾「無限制」就好了嗎?

XQ小幫手 發文於   2021/05/27

Hello 無情卻慈悲,

 

純做空的腳本裡面的 setposition 應該只會小於等於0。

如果您腳本撰寫無誤的話,那麼勾選無限制是不會有多方的庫存。

當然,如果要保險起見的話勾選只作空也是可行的。

無情卻慈悲 發文於   2021/05/27

非常感謝

發表回覆
Close