paf 發表於 12-4-2 13:47

請益 MC有子策略的用法嗎?

我本身有寫一個A策略,但現在想要回測 "如果在我A策略賠幾次後就加碼進場"而出場條件也是跟著A策略,那這樣有辦法只針對加碼單來回測加碼的績效嗎?

謝謝

jo5918 發表於 12-4-2 14:07

有人可以回應p大這種策略程式寫法嗎
想請問學MC會不會很難?
有工具書可以推薦一下嗎?

曾永政 發表於 12-4-2 15:00

這應該沒有辦法在單一策略訊號裡面實現。

我知道的有兩種作法去取代:

1. 透過下單部位的控制,沒有加碼條件的時候只下1口,符合加碼條件的時候,下單很大口數,產出回測報表轉到Excel,把下單口數為1口的資料剔除,另外自己做你要的回測評估指標計算。

2. A策略一直下單一口,透過ADE的方式把A策略的交易資料輸出,另外開一張圖(B策略)只讀取A策略透過ADE丟出來的績效去生訊號,然後看B策略的回測報表。


以上兩種,通通不輕鬆~

paf 發表於 12-4-2 15:35

請問ADE方式是如何呢?

roder 發表於 12-4-2 15:36

我印象中MC有語法可以抓出你成交價位,你自己寫各判斷計算這筆進出是否賠錢,若賠錢用一個變數紀錄counter值,若你賠多少次也寫成變數,EX:3次,之後就判對counter>=3就加碼進場,之後再把賠錢的counter值歸0

paf 發表於 12-4-2 15:55

那請教R大,變數紀錄,可以宣告成global嗎?因為得另外開發成B策略,才能對B策略來單獨回測績效

roder 發表於 12-4-2 20:51

我所提的是在同一策略裡面,因賠錢次數遇到進場時(假設賠3次後進場加碼),當你進場後你的賠錢次數的變數必須變為0(重新計數),所以該變數會是一個浮動的值,宣告成global因該是沒問題,但是你要回測賠多少次再進場加碼,最後要測試最佳化可能不容易,可能得一直改賠錢次數的變數值,看看有無其他大大更好的建議,下面只是舉個簡單例子

vars: R1(3);
Value1 = R1;{為賠錢次數}

if XXX then begin{當賠錢就計數}
Value2 = Value2 + 1;
end;

if Value2 >= Value1 then begin
你的進場策略
Value2 = 0;{重新計數賠錢次數}
end;

r5888 發表於 12-4-3 09:47

paf 發表於 12-4-2 15:35 static/image/common/back.gif
請問ADE方式是如何呢?

ADE - All Data Everywhere for TradeStation 8 and Multicharts
http://ssdkchang.blogspot.com/2012/04/ade-all-data-everywhere-for.html
頁: [1]
查看完整版本: 請益 MC有子策略的用法嗎?