又是移動停利的疑問^.^

  •   391 
  • 最後發表   XQ 新手  2024 十二月 09
XQ 新手 發文於   2024/12/05

又來請教各位大大~~1分K 不用逐筆洗價也不自動洗價 讀取筆數5000
移動停利止損我加MAXLIST( BOUT = Maxlist(BOUT, H - loss_point);)來判斷,應該BOUT只會往上移不該往下降才對~~我是哪個環節沒搞清楚,BOUT會改變 我是哪忘設定什麼
請大大們 幫忙解惑~~
// 初始化變數

var: BCost(0), BOUT(0); // 多單

input: move_profit_point(8, "移動停利(點)");

 

input: loss_point(30, "停損點(點)");

 

if position = 1 and filled = 1 then begin

    BCost = filledAvgPrice;

    BOUT = BCost - loss_point;

    Print("進場成功: BCost=", BCost, ", BOUT=", BOUT);

end;

 

// 移動停利============================

if  position = 1 and filled = 1 then begin

    if C > BCost + move_profit_point then begin

        BOUT = Maxlist(BOUT, H - loss_point);

        Print("移動停利: 當前價格=", C, ", 更新後 BOUT=", BOUT);

    end;

end;

 

// 出場============================

if position = 1 and filled = 1 then begin

   // value100 = TimeAdd(Time, "S", 50);

   // if currentTime > value100 then begin

        if Close < BOUT then begin

            Print("出場條件成立: 收盤價=", Close, ", BOUT=", BOUT);

            SetPosition(0, Market);

        end;

    //end;



 

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/12/05

BOUT會一直變,是因為H為每根1分K的最高價。應該改成進場後的最高價。

 

XQ 新手 發文於   2024/12/05

應該改成進場後的最高價 ~~!!是指哪~能否指點一二

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

進場的當下,記錄價格。爾後只要K棒的High大於這個價格就更新這個價格為進場後的最高價。

XQ 新手 發文於   2024/12/06

請問 教授像這樣寫嗎

var: intrabarpersist X2(0)

if  position = 1 and filled = 1 then begin

    if H > BCost + move_profit_point then begin    //啟動  大於 移動停利價

  if H > X2 then begin

        BOUT = Maxlist(BOUT,H - loss_point);

X2 =  H ; //記錄高點 新的移點停利的價格

        Print("移動停利: 當前價格=", C, ", 更新後 BOUT=", BOUT,"移點停利最高價=",X2);

    end;

  end;  

 end;

 

 

XS小編 發文於   2024/12/09

Hello XQ 新手,

 

您可以參考系統內建的XS交易腳本,裡面有各種不同出場方式的腳本範例。

其中也包含移動停利。

發表回覆
Close