以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 此种资金管理模式有什么错? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=160634) |
-- 作者:jjjfk -- 发布时间:2017/12/25 9:06:05 -- 此种资金管理模式有什么错? 目标:资金权益回撤幅度在15%以内,则风险暴露为2%;当回撤幅度在15%-25%之间,则风险暴露为1%;当回撤幅度大于25%,则停止交易。 代码: n:=barpos(); maxasset:=hhv(asset,n); //历史最高平仓权益 if asset>0.85*maxasset,then a1:=0.02*asset; //回撤幅度在15%以内 if asset<=0.85*maxasset and asset>0.75*maxasset,then a1:=0.01*asset; //回撤幅度在15%-25%之间 if asset<=0.75*maxasset,then a1:=0*asset; //回撤幅度大于25% SS:=floor(a1/(multiplier*atr)); //开仓手数
回测结果: 请问为什么回撤幅度会远超控制?哪里有错?如何正确编写想要实现的目标? |
-- 作者:yukizzc -- 发布时间:2017/12/25 9:27:03 -- 你的回撤只是控制在开仓数量上,这个和你之前的回撤有没有关系 比如你说我亏损100就下次开1手,但这个又不能控制你不会亏10000的 |
-- 作者:jjjfk -- 发布时间:2017/12/25 9:42:52 -- 我明白你的意思。但我的首仓风险暴露都控制在2%以内,不可能出现上面的短期内的大幅回撤。我觉得是不是“if asset<=0.75*maxasset,then a1:=0*asset; ”这里错了?是不是这里的“0*asset”是指全仓介入而不是不买入? 还请您看一下我编辑的代码是否有错吧,我主要是想知道我的代码是否体现了我的目标?
|
-- 作者:yukizzc -- 发布时间:2017/12/25 9:56:37 -- 你开仓手数如果是0,那么是全部买入 |
-- 作者:jjjfk -- 发布时间:2017/12/25 10:04:57 -- 好的。 这样吧,请问你会如何写“资金权益回撤幅度在15%以内,则风险暴露为2%;当回撤幅度在15%-25%之间,则风险暴露为1%;当回撤幅度大于25%,则停止交易。”
|
-- 作者:banzhuan -- 发布时间:2017/12/25 10:30:03 -- 您可以在开仓条件中加入,回测幅度小于25%; 风险暴露只是指显示一下数值对吧? |
-- 作者:yukizzc -- 发布时间:2017/12/25 10:31:57 -- 你要停止交易只要在开仓条件里加一个控制就好了 比如加上if a>0这样就不会全仓买入 |
-- 作者:jjjfk -- 发布时间:2017/12/25 13:31:47 -- 搞好了,谢谢! |
-- 作者:jjjfk -- 发布时间:2017/12/25 13:32:21 -- 按照你说的,我改了一下,编辑目标已经完成了,谢谢! |
-- 作者:jjjfk -- 发布时间:2017/12/25 13:37:09 -- 我贴出来,让有需要的人看到: tr1 : =max(max((high-low),abs(ref(close,1)-high)),abs(ref(close,1)-low)); atr : =ma(tr1,20); //atr公式 atr1:ref(atr,1); n:=barpos(); maxasset:=hhv(asset,n); if asset>0.85*maxasset,then a1:=0.02*asset; if asset<=0.85*maxasset and asset>0.75*maxasset,then a1:=0.01*asset; if asset<=0.75*maxasset and asset>0.4*maxasset,then a1:=0.005*asset; if asset<=0.4*maxasset,then a1:=-1*asset; //资金管理 a2:=floor(a1/(j*multiplier*atr1)); //开仓手数 //然后,在每个开仓条件中加入"a1>0"即可 ^_^ |