移動停利的停利問題

  •   528 
  • 最後發表   XQ 新手  2024 十二月 28
XQ 新手 發文於   2024/12/03

請問各位大大們,關於移動停利的疑問,我有列印資料看 更新後 BOUT 理論上應該 只會向上移動,但卻是會變動,應該在移動在獲利點上 出場卻沒有 一直獲利不出場 ,有時出場不是更新後 BOUT 而是原始的BOUT價,求助大大們幫忙^,^

// 初始化變數

var:BCost(0),BOUT(0);

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

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

//運算區=============================

 

//邏輯區=============================

///////////////多方進場參數//////////////////////////

if isfirstcall("Bar") and position = 0  and  FILLED = 0 AND condition1 and Average(VAlue3,3) >50  then begin

   setposition(1,market);

    Print("進場條件成立: 當前價格=", Close, ", Value3 平均=", Average(Value3, 3));

    end;   

 

IF position = 1 and filled = 1  THEN BEgin

   BCost=filledAvgPrice;//進場成本點

   BOUT=BCost-loss_point;//出場點停損30點

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

 end;     

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

if position = 1 and filled = 1  then begin //MKP=1 代表 手上有單

   if C > BCost + move_profit_point then begin   

    if C - loss_point > BOUT then begin

     BOUT= C - loss_point;

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

   end;   

 end;

end;

/////////////出場///////////////////////// 

IF  position = 1 and filled = 1 then begin

if currentTime>TimeAdd(Time,"S",50) then begin //BAR的最後55秒才判定要出場

    // 若收盤價跌破停損點,出場

    if Close < BOUT then begin

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

        SetPosition(0,Market); // 平倉

    end;

 end;

END;

 

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

會一直變動,是因為你不是用進場之後最高價判斷,而是用即時成交價。

例如,進場成本100,初始停損價為100-30=70。

價格來到110,啟動移動停利,BOUT=110-30=80。

若價格回到105,BOUT=105-30=75。

不會一直往上。

若用進場之後最高價計算,亦即BOUT=high-loss_point,則來到最高價110,BOUT=80,回到105,BOUT還是80。當最高價來到120,則BOUT變成90。BOUT只會往上,不會往下。

XQ 新手 發文於   2024/12/03

原來如此~~ 謝謝 指導 十分感謝~

XQ 新手 發文於   2024/12/03

這樣也行嗎?

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

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;

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

可以。

XQ 新手 發文於   2024/12/03

謝謝 有您真好~~大家的程式之路 好走多了

XQ 新手 發文於   2024/12/04

打擾了 !想請問一下 早上開盤前幾分鍾為何會出現頩煩交易,如圖

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

頻繁與否要看程式碼怎麼寫。若買進之後,馬上符合出場條件就會出場。

XQ 新手 發文於   2024/12/04

哦! 您說的是 可能是開盤前5分鍾 波動太大 ㄧ進場就打到出場點 ,如果在程式前加個 time >090500  是否就可避開

 

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

你可以限定特定時間才判斷,或是放寬停損條件。

XS小編 發文於   2024/12/05

Hello XQ 新手,

 

小編補充,您可以參考系統內建的XS交易腳本,裡面有常見的停損停利腳本範例。

至於條件連續觸發的部分可能是因為條件太容易達成所導致,建議可以將條件 print 出來調整。

 

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

顯示更多回應 發表回覆
Close