以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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线内不管成立几次,只会迭代一次 |