適用大部分交易系統策略優化的方法
本帖最後由 dickens0818 於 17-8-2 21:49 編輯市場上很難有一個交易訊號長期回測下來表現都是好的,即使開發出一個十年長期期望值都正的訊號,
亦很難避免這十年間訊號有不穩定的時候,
怎麼在訊號表現好時自動下較多的單,表現不好時下較少的單,
在此小弟摸索出一套方法,歡迎大家討論:
vars:進場口數(0);
if 訊號期望值>0
then begin 進場口數=5;
end else
進場口數=1;
if 訊號條件成立
then buy 進場口數 next bar at market;
arrays:訊號賺錢[](0),訊號賠錢[](0);
vars:賺錢次數(0),賠錢次數(0),訊號期望值(0);
if entryname(1)="訊號"
and positionprofit(1)>0
and barssinceexit(1)=0
and PosTradeSize(1,0)=5
then begin
賺錢次數=賺錢次數+1;
訊號賺錢[賺錢次數]=positionprofit(1);
end;
if entryname(1)="訊號"
and positionprofit(1)>0
and barssinceexit(1)=0
and PosTradeSize(1,0)=1
then begin
賺錢次數=賺錢次數+1;
訊號賺錢[賺錢次數]=5*positionprofit(1);
end;
if entryname(1)="訊號"
and positionprofit(1)<0
and barssinceexit(1)=0
and PosTradeSize(1,0)=5
then begin
賠錢次數=賠錢次數+1;
訊號賠錢[賠錢次數]=positionprofit(1);
end;
if entryname(1)="訊號"
and positionprofit(1)<0
and barssinceexit(1)=0
and PosTradeSize(1,0)=1
then begin
賠錢次數=賠錢次數+1;
訊號賠錢[賠錢次數]=5*positionprofit(1);
end;
訊號期望值=
賺錢次數/(賺錢次數+賠錢次數)*(Array_sum(訊號賺錢[賺錢次數],1, 賺錢次數)/賺錢次數)
+賠錢次數/(賺錢次數+賠錢次數)*(Array_sum(訊號賠錢[賠錢次數],1, 賠錢次數)/賠錢次數);
以上寫法可實現:
(1)當訊號期望值為正值時下5口單
(2)當訊號期望值為負值時下1口單
經過多次測試,大部分訊號在經過此優化後,回測10年以上獲利都會提升,
持續表現好之訊號會持續下5口單,
持續表現差之訊號會持續只下1口單,
歡迎大家測試後來討論 :)
一個策略~回測出來是48%的勝率~
所以~連勝兩次的機率是23.04%~
連勝三次的機率是11.0592%~
在已發生兩次連勝~第三次會再次勝利的機會雖然有48%~
但是你要在第三次開始加碼下單的話~(假設是多一倍)
輸的期望值是 0.52 * 2X = 1.04X
比平常多一倍~
那麼下次要連贏兩次才賺的回來~機率是23.04%~
講到這裡~會不會開始覺得哪裡有點怪怪的呢~
除非~這個策略在單一口數交易時勝率就不錯~而且也有不錯的獲利~
不然~連贏加碼的作法~很危險~
倒不如連輸後加碼~或許可以試試~
純討論~當參考~ 統計勝負次數流程可用
只是期望值計算方式,不是很穩健的評估機制 感謝分享 {:7_523:} 學習中,先收下研究,謝謝啦。 感謝分享~~!
學習中,再來研究研究謝謝啦。
頁:
[1]