請問怎門在程式裡加入遞增跟遞減

  •   178 
  • 最後發表   貓戰ya  2024 五月 14
貓戰ya 發文於   2024/05/09

怎門第一次賣20000,-1口上漲超過20000變0口,

        第2次賣19900,-1口上漲超過19900變0口.

以止到第5次賣19600,-1口上漲超過19600變0口,就停止沒第6次

跟一直執行下去的 2種寫法

 

第一次買20000,1口下跌超過20000變0口,

        第2次買20100,1口下跌超過20100變0口.

以止到第5次買20400,1口下跌超過20400變0口,就停止沒第6次

跟一直執行下去的 2種寫法

排序方式: 標準 | 最新
XS小編 發文於   2024/05/10

Hello 貓戰ya,

 

您可以設變數來記錄進出場的次數與要下降多少。

舉例來說:

input: x(0), x1(-1), x10(20000);

value1 = q_last;

 

if value2 > 4 then RaiseRunTimeError("已達交易次數上限");

 

if value1 > (x10 - value2 * 100) then begin

    setposition(x, market);

    value2 += 1;

    end

else if value1 < (x10 - value2 * 100) then begin

    setposition(x1, market);

    end;

 

value2 會隨著腳本每次平倉時增加,這樣 (x10 - value2 * 100) 就會跟著遞減, 接著在第五次以後就會中斷。

 

網站上有教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

 

 

貓戰ya 發文於   2024/05/10

感謝教學

貓戰ya 發文於   2024/05/10

為何用逐筆洗價去跑,沒有遞增減還是x10的價格買賣

虎科大許教授 發文於   2024/05/11

逐筆洗價時,不要用value2,應改用其他變數,並用intrabarpersist宣告。例如:

var: intrabarpersist count(0);

if position>0 and value1<(x10+count*x11) then

begin

   setposition(x1,market);

   count+=1;

end;

XS小編 發文於   2024/05/14

Hello 貓戰ya,

 

小編補充,您可以參考 IntrabarPersist 的說明,再逐筆洗價的狀況下若要變數保持在同一根Bar間的運算,那麼就會需要使用其來宣告。

 

感謝 虎科大許教授 的熱心回覆。

發表回覆
Close