总风收比就是,比如一共3笔交易,一次亏3%,一次亏4%,一次赚10%。 亏3%就等于把资金除以约1.0309,亏4%就等于把资金除以约1.0417,赚10%就等于 把资金乘以1.1。 然后1.0309*1.0417=1.0739,这就是亏损合计。然后求盈利合计和亏损合计的log对数函数,以亏损合计为底。
就得到总盈利倍数是总亏损倍数的几倍,这就是总风收比。
或者比如胜率为50.01%,平均每把盈利为10%——也就等于把资金乘以1.1,平均每把亏损为3%——也就等于把资金除以1.0309。
然后求pow(),1.1^(50.01%)=A,1.0309^(1-50.01%)=B,然后再求这两个数A和B的log(),以B为底。就是总风收比
以上两种计算方法算出来是同一个结果
[此贴子已经被作者于2020/12/20 16:23:04编辑过]
表头就是优化参数后,出现有MAR比率的那个列表的那一横排表头。我发了截图 不知为何发不出来,你们知道我说的是哪里吧?
[此贴子已经被作者于2020/12/20 16:27:38编辑过]
1、先在策略中定义总风收比的变量;2、优化中选择显示列中选自定义项,添加上述的变量试试
此主题相关图片如下:temp.png

汗 在策略中定义总风收比这个变量,我不会啊。。。如何定义?需要胜率,平均每把盈利百分比,平均每把亏损百分比,这三个函数软件有吗?
稍微有点麻烦。需要你自己会改代码才行。
参考下面范例:
VARIABLE:yl:=1,ks:=1;//用全局变量实现有效累乘。
input:n(9,1,100,10),p1(3,2,40,4),p2(3,2,40,4);//参数设置
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,P1,1);
D:SMA(K,P2,1);
J:3*K-2*D,NODRAW;
手数:=1;
//交易条件
kdjjc:cross(k,d),NODRAW;//kdj金叉
kdjsc:cross(d,k),NODRAW;
if kdjjc and holding<0 then
begin
平空:SELLSHORT(kdjjc,HOLDING,MARKET);
if NUMPROFIT(1)<0 then ks:=ks*(1/(1-abs(NUMPROFITPER(1)/100)));
if NUMPROFIT(1)>0 then yl:=yl*((1+abs(NUMPROFITPER(1)/100)));
end
开多:BUY(kdjjc and holding=0,手数,MARKET);
if kdjsc and holding>0 then
begin
平多:SELL(kdjsc,HOLDING,MARKET);
if NUMPROFIT(1)<0 then ks:=ks*(1/(1-abs(NUMPROFITPER(1)/100)));
if NUMPROFIT(1)>0 then yl:=yl*((1+abs(NUMPROFITPER(1)/100)));
end
开空:BUYSHORT(kdjsc and holding=0,手数,MARKET);
showyl:yl;//盈利
showks:ks;//亏损
result:LOG(showyl)/LOG(ks);//最终结果
你需要在每个平仓地方,判断下盈亏 然后计算。部分平仓是不行的。必须是完全平仓。否则无法获取盈亏的数值。
多谢。不过 额 是有点复杂 我算了,还是你们专业人士来行了。不过这个总风收比指标很重要啊,它是综合胜率和盈亏比得到的最终的指标。
单看胜率高,我可以盈亏比很低,最后还是很微弱的正期望系统。单看盈亏比高,我又可以胜率很低,最后还是很微弱的正期望系统。只有综合两个才能看出来正期望系统的正期望数值到底多大。
如果有空,希望以后把这个总风收比指标加入软件吧。谢谢。