自訂出場問題

  •   442 
  • 最後發表   士愷  2023 一月 09
士愷 發文於   2022/09/13

小編你好 

XS編輯器我出場條件想用自己的出場條件時

遇到一些技術上的障礙

1.當我已經成交時止損想設離我最近的波段低點

問題:怎麼找出離我最近的波段低點,我在Xs函數搜尋裡只看到一段時間內最低值,或第N個低值,但是我不知道離我最近的低值怎麼找

2.當我已經成交時(和上一個不同策略),我想找離我成交價未來波段最低點(不含成交當下那根k棒)後的第一個高點轉折出場

問題:如何找未來波段離我最近的一個低點轉折後第一個高點下一根k收盤出場

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

Hello 士愷,

 

1.您需要先定義出何謂最近的波段低點。

如果是轉折點的話,或許可以參考 SwingLow 函數。

另外 lowest 就會是最近一段區間的最低點。

 

2.XQ 沒辦法取得未來的資訊,就算是回測中也是如此。

所以您的需求無法達成。

士愷 發文於   2022/12/01

請問一下除了close,close[1]這種k棒寫法

那有close[Filled]這種寫法嗎?(代表成交k的收盤價格)

XQ小幫手 發文於   2022/12/01

Hello 士愷,

 

沒有這種寫法。

但您可以用變數來保存成交Bar的收盤價格,像是在 filled 改變的狀況下紀錄前一根收盤價。

士愷 發文於   2022/12/05

請問一下單根k棒只要交易一次這要怎麼寫?

士愷 發文於   2022/12/05

這根k棒同時觸發成交與止損我會無限在這根k棒重複進出場

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

Hello 士愷,

 

建議您可以將策略的逐筆洗價取消勾選,這樣一根Bar就只會運算一次。

或是您可以使用 intrabarpersist 的變數來記錄當根Bar是否有執行過來當作條件。

舉例來說:

var: intrabarpersist _cond(0);

 

condition1 = 進場條件;

condition2 = 出場條件;

 

if condition1 and _cond <> currentbar then begin

    setposition(1, market);

    _cond = currentbar;

    end;

 

if condition2 and _cond <> currentbar then begin

    setposition(0, market);

    _cond = currentbar;

    end;

這樣每根Bar最多就只會交易一次。

士愷 發文於   2022/12/07

謝謝🙏,想請教一個問題

stop_loss=lowest(low,2);

if close>stop_loss then setposition(0);

如果我觸發出場條件我想當下止損而不要close後出場,這要怎麼改好!

XQ小幫手 發文於   2022/12/08

Hello 士愷,

 

小幫手推測您想要的應該是不要等Bar結束在出場,而是一觸發就出場。

這樣的話就要勾選逐筆洗價讓其能夠即時出場。

依照上面的範例,您可以修改為:

var: intrabarpersist _cond(0);

 

condition1 = 進場條件;

condition2 = 出場條件;

 

if condition1 and _cond <> currentbar then begin

    setposition(1, market);

    _cond = currentbar;

    end;

 

if condition2 then begin

    setposition(0, market);

    end;

 

這樣就只有進場的時候會受到一根Bar只能交易一次的限制。

士愷 發文於   2022/12/12

請問一下當我程式在跑的時候,當程式買進時我手動平倉,但程式會在我本來要平倉的點位放空,可是當下我已經沒部位了,這點怎麼改好,還是說當手動平倉的時候讓程式停止,在從新開始運作?

XQ小幫手 發文於   2022/12/13

 Hello 士愷,

 

自動交易策略啟動的時候,手動操作和其他策略的交易對運作中的策略不會有影響。

啟動中策略的部位庫存是獨立的。

依照您的描述,手動平倉時讓程式停止,交易完後再重新開始運作是可行的。

須注意策略庫存的相關設定是否符合您的需求。

顯示更多回應 發表回覆
Close