當策略很多的時候,通常都會把策略合併當投資組合,
可惜券商版沒有提供Portfolio Trader,
所以我們要透過ADE++來合併投資組合績效。
方法一、把每個策略的”績效”合併起來,然後用指標顯示合併後績效。
第一步、在圖表1設定A策略績效:
VPS.SetGlobalVariable("A", netprofit);
第二步、在圖表2設定B策略績效:
VPS.SetGlobalVariable("B", netprofit);
第三步、在圖表3設定C策略績效:
VPS.SetGlobalVariable("C", netprofit);
第四步、在圖表4新增指標,然後讀取ABC策略設定的績效:
var A = VPS.GetGlobalVariable("A");
var B = VPS.GetGlobalVariable("B");
var C = VPS.GetGlobalVariable("C");
第五步、將合併後的績效顯示在圖表上,如果要合併MDD請使用第二種方法。
Plot1(A+B+C);
方法二、把每個策略的”部位”合併起來,然後透過訊號計算完總部位再下單。
第一步、在圖表1設定A策略部位:
VPS.SetGlobalVariable("A", marketposition * currentcontracts);
第二步、在圖表2設定B策略部位:
VPS.SetGlobalVariable("B", marketposition * currentcontracts);
第三步、在圖表3設定C策略部位:
VPS.SetGlobalVariable("C", marketposition * currentcontracts);
第四步、在圖表4新增訊號,然後讀取ABC策略設定的部位:
var A = VPS.GetGlobalVariable("A");
var B = VPS.GetGlobalVariable("B");
var C = VPS.GetGlobalVariable("C");
第五步、在圖表4的訊號中計算總部位:
var MP = A+B+C;
第六步、當總部位為多單,買進時指定多單口數:
if MP > 0 then buy absvalue(MP) contracts next bar market;
第七步、當總部位為空單,賣出時指定空單口數:
if MP < 0 then sellshort absvalue(MP) contracts next bar market;
- 測試影片:
工商服務時間:
我們的加值套件支援 券商版 跟 專業版,購買後只要續租雲端主機就能一直使用。