請問自動交易同商品可以同時使用兩個不同策略嗎?如果可以,A策略的新建部位會不會被B策略平倉呢? 或是他們各跑各的?
跑自動交易前如果帳戶已經有部位要先清倉嗎?如何跟安控協調?譬如已經有多單2口.安控設定單向部位只能有1口,是不是就有衝突?
請問自動交易同商品可以同時使用兩個不同策略嗎?如果可以,A策略的新建部位會不會被B策略平倉呢? 或是他們各跑各的?
跑自動交易前如果帳戶已經有部位要先清倉嗎?如何跟安控協調?譬如已經有多單2口.安控設定單向部位只能有1口,是不是就有衝突?
接續1,A策略建立一口多單被B策略建立一口空單平掉,A策略後來的平倉指令(filled=1,set position(0) ),會不會因為實際帳戶沒有部位,無法下一口空單(本來是平多單,可是被B策略的空單平掉)?
我的交易指令如下(不曉得原因.無法上傳附檔)
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;
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 多方進場。
承4,為何不是13:35平倉空方,"同時"建多單?
Hello winton,
您的條件是當部位大於小於0的時候平倉,當部位等於0的時候多空進場。
所以一定會先平倉,接著才會再度進場。
另外需注意,SetPosition 在一次腳本執行中,就算觸發多個,也只會執行第一個觸發的交易指令。
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又變成正常.能否再幫我看看?
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最後的狀況。
10 評論