COCO研究院

 找回密碼
 註冊
搜索
查看: 21784|回復: 15

請教二段式移動停利怎麼寫?

[複製鏈接]
發表於 18-5-17 11:53 | 顯示全部樓層 |閱讀模式
MultiChart裡有SetPercentTrailing的移動停利功能,想請教的是,如果今天想設兩個移動停利條件,例如:1. 最高損益>=10000, 拉回50%出場
2. 最高損益>=20000, 拉回10%出場
請問該如何寫出這種兩階段停利?
是不是只能自己去紀錄算最高損益做ifelse判斷改變拉回幅度?
還請高手指教,謝謝
發表於 18-5-17 15:14 | 顯示全部樓層
inputs:DrawDownR1(50),DrawDownR2(10); //獲利回落比例
vars:Trigger1W(false),Trigger2W(false) ; //超過10000 & 20000的旗標
vars:MP(0) ;

//符合條件時啟動 Trigger
if MP <> 0 then begin  
   if MaxPositionProfit > 10000 then Trigger1w = true ;
   if MaxPositionProfit > 20000 then Trigger2w = true ;
end ;

//部位變化時 重設 Trigger
if MP <> MP[1] or MP = 0 then begin
   Trigger1w = false ;
   Trigger1w = false ;
end

//獲利回落到指定條件時出場
if Trigger2W then begin
   if MP > 0 then Sell next bar at (EntryPrice+(MaxPositionProfit*(1-DrawDownR2/100))/BigPointValue) stop ;
  if MP < 0 then BuyToCover next bar at (EntryPrice-(MaxPositionProfit*(1-DrawDownR2/100))/BigPointValue) stop ;
end ;

if Trigger1W then begin
   if MP > 0 then Sell next bar at (EntryPrice+(MaxPositionProfit*(1-DrawDownR1/100))/BigPointValue) stop ;
  if MP < 0 then BuyToCover next bar at (EntryPrice-(MaxPositionProfit*(1-DrawDownR1/100))/BigPointValue) stop ;
end ;

大概是這樣子的寫法 參考看看

評分

參與人數 1金錢 +5 收起 理由
綠茶妹 + 5 按一個讚

查看全部評分

回復 支持 1 反對 0

使用道具 舉報

發表於 18-5-17 15:15 | 顯示全部樓層
MP = MarketPosition ; 上面忘了定義
發表於 18-5-17 20:42 | 顯示全部樓層
//部位變化時 重設 Trigger
if MP <> MP[1] or MP = 0 then begin
   Trigger1w = false ;
   Trigger2w = false ;
end
 樓主| 發表於 18-5-17 21:11 | 顯示全部樓層
easytrader788 發表於 18-5-17 20:42
//部位變化時 重設 Trigger
if MP  MP[1] or MP = 0 then begin
   Trigger1w = false ;

我的天... 您還真的把全部邏輯都完整地寫出來了Orz先贈您20金錢以表感謝!

 樓主| 發表於 18-5-20 19:51 | 顯示全部樓層
本帖最後由 BeLikeCheetah 於 18-5-20 19:52 編輯
easytrader788 發表於 18-5-17 15:14
inputs:DrawDownR1(50),DrawDownR2(10); //獲利回落比例
vars:Trigger1W(false),Trigger2W(false) ; //超過 ...

經過研究您的程式邏輯,想請問是否可以簡化成以下? 有沒有什麼疏漏的地方?
input: TrgP1( 10000 ), TrgP2( 20000 ), DDR1( 50 ), DDR2( 20 );

if MarketPosition <> 0 then begin
   if MaxPositionProfit > TrgP1 then setpercenttrailing(TrgP1, DDR1) ; //第一階段停利
   if MaxPositionProfit > TrgP2 then setpercenttrailing(TrgP2, DDR2) ; //第二階段停利
end ;




發表於 18-5-20 21:17 | 顯示全部樓層
理論上可以簡化如您所述,只是我沒使用setpercenttrailling,所以您可能要開IOG測試
發表於 18-5-25 23:52 | 顯示全部樓層
Setpercenttrailing 我查之前網路討論區說有bug ,不知道目前是否正常
 樓主| 發表於 18-5-26 00:42 | 顯示全部樓層
kensu 發表於 18-5-25 23:52
Setpercenttrailing 我查之前網路討論區說有bug ,不知道目前是否正常

咦?! 我沒發現甚麼問題欸? 你指的Bug是甚麼情況...?
發表於 18-5-26 15:19 | 顯示全部樓層
凱衛討論區  dis_Content.aspx?rd=1&D_ID=1&SN=27587
        [問題追蹤] MC8.5-PercentTrailing、ProfitTarget勾選委託優化後送單異常
 樓主| 發表於 18-5-26 17:48 | 顯示全部樓層
kensu 發表於 18-5-26 15:19
凱衛討論區  dis_Content.aspx?rd=1&D_ID=1&SN=27587
        [問題追蹤] MC8.5-PercentTrailing、ProfitTarget勾 ...

阿~ 不過我沒用MC下單欸 只是用來回測而已 這樣也會有問題嗎?
發表於 18-5-30 13:19 | 顯示全部樓層
BeLikeCheetah 發表於 18-5-26 17:48
阿~ 不過我沒用MC下單欸 只是用來回測而已 這樣也會有問題嗎?

那我也不清楚~~~~~
發表於 23-3-15 07:33 | 顯示全部樓層
easytrader788 發表於 18-5-17 15:14
inputs:DrawDownR1(50),DrawDownR2(10); //獲利回落比例
vars:Trigger1W(false),Trigger2W(false) ; //超過 ...

感謝分享
發表於 23-3-29 14:44 | 顯示全部樓層
感謝分享,回覆還有完整程式碼範例,太佛心了感恩。
發表於 24-9-12 19:22 | 顯示全部樓層
感謝大大分享,可以學習到如何寫移動停利的方式
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-25 15:08

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |