COCO研究院

 找回密碼
 註冊
搜索
查看: 5701|回復: 5

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

[複製鏈接]
發表於 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口單,

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

評分

參與人數 2金錢 +4 收起 理由
AGWZ + 2 感謝分享
程式新手 + 2 按一個讚

查看全部評分

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

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

純討論~當參考~
發表於 17-8-4 19:00 | 顯示全部樓層
統計勝負次數流程可用
只是期望值計算方式,不是很穩健的評估機制
發表於 17-8-4 20:03 | 顯示全部樓層
感謝分享   
發表於 21-6-20 11:37 | 顯示全部樓層
學習中,先收下研究,謝謝啦。
發表於 21-7-13 16:35 | 顯示全部樓層
感謝分享~~!
學習中,再來研究研究  謝謝啦。
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-28 14:42

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |