交易策略

  •   431 
  • 最後發表   winton  2022 六月 24
winton 發文於   2022/05/26

 請問自動交易同商品可以同時使用兩個不同策略嗎?如果可以,A策略的新建部位會不會被B策略平倉呢? 或是他們各跑各的?

跑自動交易前如果帳戶已經有部位要先清倉嗎?如何跟安控協調?譬如已經有多單2口.安控設定單向部位只能有1口,是不是就有衝突?

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/05/30

Hello winton,

 

1.可以,但須注意雖然個別策略的部位庫存是獨立的,但實際上還是同一個帳戶。

舉例來說,A策略買一口台指期,B策略放空一口台指期,雖然個別策略是多一口跟空一口,但您的帳戶裡會是沒有口數的。(正負相抵)

 

2.若您選擇依庫存,且庫存超過安控上限的話,在啟動策略時會跳出警示告知目前部位超出安控設定,是否要繼續執行。(參考附圖)

啟動後若要增加口數,一樣會被安控給限制,但出場的話不會。

附加文件

winton 發文於   2022/05/31

接續1,A策略建立一口多單被B策略建立一口空單平掉,A策略後來的平倉指令(filled=1,set position(0) ),會不會因為實際帳戶沒有部位,無法下一口空單(本來是平多單,可是被B策略的空單平掉)?

XQ小幫手 發文於   2022/06/06

Hello winton,

 

除非您有設定只作多/空 或是 安控限制,不然的話就算實際庫存為0,平倉指令一樣會執行。

因為對策略來說他的庫存是正的。

  • 按讚來自於
  • wintonchung
winton 發文於   2022/06/06

  • 今日我購買貴司量化交易模組,並於盤中交易小台指/五分鐘線圖,部分時段同時有反向交易訊號.不解,因我給的指令是"互斥"的指令(參考所附交易指令與五分鐘線圖)
  • 盤後重新叫出五分鐘線圖,圖形會"修正"與盤中即時的圖不一樣(見盤後圖),為何?
  • 我的指令要求收盤前2分鐘平倉離場,可是log沒有發生,原因為何?
  • 我的交易指令其中一部分依照我的理解為"如果有部位且有反向的交易訊號出現則會先平倉原有部位並同時新建倉
  • (反向部位)對嗎?
  • ***第一次上線,請幫忙***

我的交易指令如下(不曉得原因.無法上傳附檔)

buy=tobuy and not(tosell);

sell=tosell and not(tobuy);

 

 

if Position = 0 and buy then begin

SetPosition(1, MARKET);{ 以市價買進 }

end;

 

if Position = 0 and sell then begin

SetPosition(-1, MARKET);{ 以市價買進 }

end;

 

if Position >0  and sell then begin

    SetPosition(0, MARKET); { 以市價平倉 }

end;

 

if Position <0  and buy then begin

    SetPosition(0, MARKET); { 以市價平倉 }

end;

 

input: exit_period(2, "收盤前N分鐘平倉");

var: market_close_condition(false); { 是否已經進入收盤階段 }

market_close_condition = EnterMarketCloseTime(exit_period);

if Position <>0  and market_close_condition then begin

    SetPosition(0, MARKET); { 以市價平倉 }

end;

附加文件

XQ小幫手 發文於   2022/06/10

Hello winton,

 

1. 小幫手不太懂您所謂的 部分時段同時有反向交易訊號 是什麼意思。

就您的圖來看:

13:30 => sell 符合所以出場。

13:35 => buy 符合且部位為-1所以平倉。

13:40 => buy 符合且部位為0所以多方進場。

需注意XQ Bar上的標示時間是開始的時間,紀錄上的時間是腳本執行的時間。

所以如果是Bar 標示的時間是 13:40 的話,代表的是 13:40 ~ 13:45 這段時間的資料。

您 13:30 執行的運算是 13:25 這根Bar (13:25~13:30的交易資訊),以此類推。

 

2. 小幫手沒看到您的腳本所以不能確定。

當日最後一筆Bar實際close的時間大概會是在收盤後的5分鐘左右,避免有資訊遺漏。(可以參考您交易策略的截圖,交易區間結束是在13:50)

所以您是否是以 13:50 以後的資料去相比可能會造成誤差。

如果還是有疑慮的話,需要麻煩您提供 頁面匯出檔勾選(包含)指標腳本 以及 XQ Log 來檢驗。

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

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

感謝。

 

3. 就您的圖片來看,您的策略並沒有開啟逐筆洗價。

這樣的話每根Bar就只會在結束的時候運算,自然也不會有收盤前2分鐘交易,因為腳本沒有運算。

建議您可以開啟逐筆洗價試試。

 

4. 是的,所以您附的交易圖片才會是 13:35 先平倉空方, 13:40 多方進場。

winton 發文於   2022/06/10

承4,為何不是13:35平倉空方,"同時"建多單?

XQ小幫手 發文於   2022/06/16

Hello winton,

 

您的條件是當部位大於小於0的時候平倉,當部位等於0的時候多空進場。

所以一定會先平倉,接著才會再度進場。

另外需注意,SetPosition 在一次腳本執行中,就算觸發多個,也只會執行第一個觸發的交易指令。

 

  • 按讚來自於
  • wintonchung
XQ小幫手 發文於   2022/06/20

Hello winton,

 

關於您寄來的mail中附上的腳本和問題,經確認後應該是因為該根Bar在即時洗價運算時,有先後觸發過兩邊的條件,而之前畫出過的plot不會被覆蓋取消。導致兩者都畫出來。

如果要避免此狀況的話,可以使用 noplot 來將不符合的plot給消除。

winton 發文於   2022/06/21

conditionbuy1=condition1 and condition2;

conditionsel1=condition2 and condition3;

conditionbuy=conditionbuy1 and not conditionsel1;// 意謂 condiitonbuy=condition1

conditionsel=conditionsel1 and not conditionbuy1;// 意謂conditionsel=condition3

**基本上我的not condition 相當於小編說的noplot //過濾掉不要的condition2i

這題的多空指標同時滿足conditionbuy & conditionsel不合理.//應該只會出現condition1 或condition2 或沒有訊號.

而且都是時間最近的幾根bar指標才會有問題,往前都不會發生.如果我重新整理(例如換其他時間頻率,再切回)

原來同時出現多空指標的bar又變成正常.能否再幫我看看?

 

 

 

XQ小幫手 發文於   2022/06/24

Hello winton,

 

您搞錯小幫手回覆的重點了,這跟您的條件有沒有互斥沒關係。

小幫手舉個簡單例子,假設1分鐘頻率,現在時間是 09:30 此時093000這根Bar會出現,09:30:21 時洗價條件A觸發,09:30:53 時洗價條件B觸發 (條件A不符合)。

當時間到 09:31 時,093000這根Bar結束,結束時的價格是符合條件A的 (條件B不符合)。

這樣的話,如果您plot1是依據條件A,plot2是依據條件B 的話,一樣會兩者都畫出來,因為在 09:30:53 的時候 plot2 就執行了,就算之後條件B變得不符合,已經畫出的資訊還是會留在圖上。

為了讓已經不符合的plot2消失,您需要的是使用 noplot 來將其消除。

 

您可以實際測試一下範例,範例A:

if mod(v,2)=0 then plot1(H);

if mod(v,2)=1 then plot2(L);

範例B:

if mod(v,2)=0 then

begin

    plot1(H);

    noplot(2);

end;

if mod(v,2)=1 then

begin

    plot2(L);

    noplot(1);

end;

 

範例A即時的狀態下會發生 plot1 和 plot2 都畫出的狀況,範例B只會畫出該根Bar最後的狀況。

發表回覆
Close