以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 加减仓的模型评测错误 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=7321) |
-- 作者:阿火 -- 发布时间:2011/7/25 12:44:16 -- 加减仓的模型评测错误 Avgenterprice这个函数要改进一下,目前的这个函数会导致加减仓模型评测结果错误 代码例子: ma5:=ma(c,5); ma10:=ma(c,10); ma20:=ma(c,20); b1:=cross(ma5,ma20); b2:=cross(ma10,ma20); s1:=cross(ma20,ma5); s2:=cross(ma20,ma10); 平均持仓成本:avgenterprice;//这个函数的结果错误 if holding>0 and s1 then sell(1,1,thisclose); if holding<0 and b1 then sellshort(1,1,thisclose); if holding>0 and cross(ma10,ma5) then sell(1,1,thisclose); if holding<0 and cross(ma5,ma10) then sellshort(1,1,thisclose); if holding=0 and b1 then buy(1,1,thisclose); if holding=1 and b2 then buy(1,1,thisclose); if holding=0 and s1 then buyshort(1,1,thisclose); if holding=-1 and s2 then buyshort(1,1,thisclose); 测试报告的明细表(手续费为0) 如上图,第一次平多后,平均持仓成本价错误,导致第二次平多时盈亏计算不正确,应该为3196.6-3197.5 而非3196.6-3199.4 平均持仓成本只有在有新开仓或者持仓为0的时候,才会改变。 假设 初始仓位为C1,对应的平均持仓成本价为 AVG1 新开仓为C2,对应的平均持仓成本价为 AVG2 (手续费为0的情况下,为开仓价) 计算方法为:AVG=(C1*AVG1+C2*AVG2)/(C1+C2) |
-- 作者:fly -- 发布时间:2011/7/25 13:20:13 -- 非常感谢! |