我在自動交易中心想要設定最大持有區間的出場問題,因為我在選股的回測時都可以在介面設定停損停利,自動交易的部分就要在腳本上撰寫對吧。有辦法寫他的最大持有區間設定為兩期嗎?如果DATE的話她考慮的兩天有可能包含了假日進而造成天數不是我設定好的那個樣子,請問我應該怎麼用XS交易腳本寫出來,謝謝各位高手的指點!!

自動交易腳本設定最大持有區間出場問題
- 64
- 最後發表 蘆葦 2025 七月 11
(1)請不要重複發帖,請將多餘的貼文刪除。
(2)你可以用BarsLast賦予進場條件,找出距離K棒數。例如上週五的日K符合進場條件,今天是週四,距離K棒數會傳回4。代表進場距離今天已4天。
(1)好的,我不小心按到兩篇,應有即時刪除了
(2)我試著用barslast寫出出場條件:最大持有五期了我的程式碼如下,但還是達不到我希望的持有五天後一定要出場,我設定進場條件為外資買超>300張當進場
// 參數設定
inputs:MaxHoldBars(5); // 最多持有幾根 K 棒
variables:holdBars(0),entryCond(false); // 用來存 BarsLast 的結果 // 進場條件
// 範例進場條件
entryCond = getField("外資買賣超","D")[1]>300;
// 進場:當進場條件成立且目前無部位
if entryCond and Position = 0 then begin
SetPosition(1); // 建倉
end;
// 出場:當已有多頭部位,且距上次 entryCond 為真已超過 MaxHoldBars
if Position <> 0 then begin
// BarsLast 回傳「距離上次 entryCond 為真」的 K 棒數
holdBars = BarsLast(entryCond);
if holdBars >= MaxHoldBars then begin
SetPosition(0, label:="持有超過五日出場");
end;
end;
但我這樣仍然寫不出我要的答案,還請高手們給我一點指點
試想這樣的情景,第一天符合進場條件,進場了,第二天同樣符合進場條件,BarsLast又計算K棒數,但是用第二天,而非第一天計算。這樣知道問題了吧?用BarsLast,賦予的條件不能是每根K都可能符合的情況,因為它抓的是最近符合條件K棒的距離。它比較適合例如黃金交叉或死亡交叉的條件。
你的情況比較適合用變數累加的方式記錄已進場幾根K棒。
3 評論