以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  怎么计算平均盈利  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=135655)

--  作者:wxx212
--  发布时间:2016/7/18 22:45:38
--  怎么计算平均盈利
版主,下面这个公式分别求10次多头操作的平均盈利和10次空头操作的平均盈利 应该怎么写?


AA:=MA(C,30);
BB:=MA(C,300)

KD:=C>=BB AND CROSS(C,AA);          //开多条件
PD:=CROSS(AA,C);          //平多条件
KK:=C<=BB AND CROSS(AA,C);          //开空条件
PK:=CROSS(C,AA);          //平空条件


平空:SELLSHORT(PK,1,THISCLOSE);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);          //开多信号
平多:SELL(PD,1,THISCLOSE);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);     //开空信号




--  作者:wxx212
--  发布时间:2016/7/18 23:16:27
--  
计算平均盈利 只挑10次操作中亏损的那些计算平均值!
--  作者:jinzhe
--  发布时间:2016/7/19 9:01:09
--  
最近10次不论盈亏的盈利,还是最近10次亏损的盈利
--  作者:wxx212
--  发布时间:2016/7/19 11:46:08
--  
最近10次亏损的平均值
--  作者:jinzhe
--  发布时间:2016/7/19 13:27:44
--  

variable:n=0,ss=0;

 

if 平多条件 and holding>0 then begin

    sell(1,0,thisclose);

    if numprofit(1)<0 then begin

       n:=n+1;

       ss:=ss+numprofit(1);

    end

end

 

if 平空条件 and holding<0 then begin

    sellshort(1,0,thisclose);

    if numprofit(1)<0 then begin

       n:=n+1;

       ss:=ss+numprofit(1);

    end

end

 

cs:=sumbars((平空条件 or  平多条件) and holding=0 and ref(holding<>0,1) and numprofit(1)<0,10);

10次亏损均值:(ss-ref(ss,cs))/10;

[此贴子已经被作者于2016-7-19 13:30:24编辑过]

--  作者:zx7027
--  发布时间:2016/7/27 17:12:06
--  
我对2楼代码有个疑问,因为逐K模式,每一个tick进来都会计算一次,我们假设在一根K线的第11-100tick满足平多条件和holding>0,那么n和ss将被赋值90次,n起不到计数的作用(直接就从1变成90),ss也同理。相似代码我自己写过,在逐K模式下实现不了。
--  作者:zx7027
--  发布时间:2016/7/27 17:12:29
--  
不好意思,是5楼的代码
--  作者:jinzhe
--  发布时间:2016/7/27 17:16:16
--  
不会,图表交易一根k线就迭代一次,一根k线内不管成立几次,只会迭代一次