2017年9月6日

【MultiCharts】自製Equity Curve Trading指標(附程式碼)

Equity Curve中文稱為權益曲線,理想的Equity Curve自然是45度角不斷往上走最好,不過現實就是交易總會遇到困頓時期,損益曲線回落我們稱為Drawdown,可能是波動變小,或是波動的方式結構性改變等因素造成,當我們遇到Drawdown時心裡頭不免想到那句金言”記錄就是拿來破的”,憂心寫下新的Max Drawdown(MDD),箇中苦味,相信有經驗的程式交易客都體驗過,於是此時一個課題出來了,程式甚麼時候要下架(暫停),之後又是甚麼時候恢復上架。

「程式交易就是不能人為干預」,此話也對也不對,本來整個程式交易策略都是人開發的,你不需要一個情緒化的衝動就決定把已上線交易的程式關掉(通常下場就是下一把就會賺錢,但是你的autotrade是off),而是事先把程式策略的上下架機制設計進系統裡。

Equity Curve Trading就是一種典型的策略上下架(on/off)的做法,簡言之是把Equity Curve當成指數,然後作技術分析,定義出目前Equity Curve是走多還是走空,走多就繼續開著交易,甚至加碼,反之走空就是減碼或停單,如下圖所示。

Equity Curve Trading最簡單的做法,就是幫Equity Curve再多畫一條它的移動平均線,然後均線那套技術分析就可以拿出來用。例如Equity Curve跌破60MA就先關閉策略。如下圖所示,下方就是畫出Equity Curve Trading與其60MA。


以下為以下為Multicharts裏將Equity Curve繪製在圖上的語法:

Inputs: MAPeriods(60); 
Variables: AccountEquity(0), maOfAccountEquity(0);

AccountEquity = i_OpenEquity;
maOfAccountEquity = AverageFC(AccountEquity, MAPeriods);

// Change color with a growing account equity
if AccountEquity < maOfAccountEquity then
SetPlotColor(1, green)
else
SetPlotColor(1, red);

Plot1(AccountEquity, "Equity");

Plot2(maOfAccountEquity, "MA", RGB(0, 128, 255));

實務上要執行Equity Curve Trading,有土法煉鋼手動方式跟全自動方式。手動方式就是同一策略開兩張一樣的圖,一張是管理用,一張是自動下單用,上面的Equity Curve指標放在管理用圖表,根據設定之進場或暫停機制,再於自動下單用那張圖手動執行開啟或關閉自動交易。

全自動方式一樣開兩張圖,但透過採用GV或ADE跨圖表傳遞數值,來給自動交易那張圖下達開啟或關閉指令。


後記與預告
Equity Curve Trading看似替Drawdown找到解方,能「趨吉避凶」豈不妙哉?!但其實運用上並沒有表面看起來這麼簡單美好,甚至其真正效用都還有爭論空間,後面文章我們再深入介紹。


[2017/9/13補充]





歡迎加入LINE@
加入好友
(點擊上方圖示)

沒有留言:

張貼留言

歡迎留言討論!