dickens0818 發表於 17-8-2 21:43

適用大部分交易系統策略優化的方法

本帖最後由 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口單,

歡迎大家測試後來討論 :)

apollochung 發表於 17-8-4 10:28

一個策略~回測出來是48%的勝率~
所以~連勝兩次的機率是23.04%~
連勝三次的機率是11.0592%~
在已發生兩次連勝~第三次會再次勝利的機會雖然有48%~
但是你要在第三次開始加碼下單的話~(假設是多一倍)
輸的期望值是 0.52 * 2X = 1.04X
比平常多一倍~
那麼下次要連贏兩次才賺的回來~機率是23.04%~

講到這裡~會不會開始覺得哪裡有點怪怪的呢~
除非~這個策略在單一口數交易時勝率就不錯~而且也有不錯的獲利~
不然~連贏加碼的作法~很危險~
倒不如連輸後加碼~或許可以試試~

純討論~當參考~

無無明 發表於 17-8-4 19:00

統計勝負次數流程可用
只是期望值計算方式,不是很穩健的評估機制

cukie 發表於 17-8-4 20:03

感謝分享   {:7_523:}

wys1688 發表於 21-6-20 11:37

學習中,先收下研究,謝謝啦。

chasefox 發表於 21-7-13 16:35

感謝分享~~!
學習中,再來研究研究謝謝啦。
頁: [1]
查看完整版本: 適用大部分交易系統策略優化的方法