小幫手大神您好,我有購買XQ企業版。
最近在檢查交易分析資料,發現有些策略,如果設定了10%數停損(假設10%),那麼的確股票離成本價跌10%後,系統會自動賣出停損,但當天晚上若進場條件依舊符合,那則隔天開盤又會進場,反而導致這個%數停損沒什麼意義。
這問題應該在於,進場條件沒有排除掉「%數停損」,因此想請問小幫手大神,如果我想要%數停損掉後10天內,都不要再進場同一檔股票,實務上我要如何寫程式碼篩選掉呢?謝謝。
小幫手大神您好,我有購買XQ企業版。
最近在檢查交易分析資料,發現有些策略,如果設定了10%數停損(假設10%),那麼的確股票離成本價跌10%後,系統會自動賣出停損,但當天晚上若進場條件依舊符合,那則隔天開盤又會進場,反而導致這個%數停損沒什麼意義。
這問題應該在於,進場條件沒有排除掉「%數停損」,因此想請問小幫手大神,如果我想要%數停損掉後10天內,都不要再進場同一檔股票,實務上我要如何寫程式碼篩選掉呢?謝謝。
Hello 阿建,
如果是在回測上,您可以用變數紀錄停損出場的日期,並用 DateDiff 計算差了幾天,把此納入進場條件。
若是即時的狀況,由於只要策略中止的話下次啟動時變數就會重新開始,可以 啟動策略部位計算功能 並選擇庫存依策略,或是自行將停損出場的商品從商品清單中移除。
了解,爬了一下過去的資料,所以就是要在進場條件那增加「出場條件的變數」並且紀錄出場的日期,另外想請問小編,那是否可以提供最大持有時間及停損利出場的程式碼,俾利我預掛在進場條件內,謝謝。
Hello 阿建,
系統內建的交易腳本中有停損停利的範例腳本,您可以參考其中內容。
至於要加上出場條件的變數,你可以用這樣的邏輯新增,舉例來說:
condition1 = 進場條件 and (value1 = 0 or datediff(date, value1) > 10);
condition2 = 停損條件;
if position = 0 and filled = 0 and condition1 then setposition(1, market);
if position = 1 and filled = 1 and condition2 then begin
setposition(0, market);
value1 = date;
end
網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。
3 評論