以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  仓位  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=84514)

--  作者:qqxc50
--  发布时间:2015/8/27 19:24:47
--  仓位
正反手永远在市的系统 
    初始开仓仓位为A ,当最高权益回撤10%,则仓位缩减为原来的80%即0.8A,直到账户恢复到最高权益的规模,然后仓位的规模也恢复到原来的水平即A。
    当最高权益回撤20%,则最新开仓仓位缩减为0.8A的80%即0.64A,直到账户恢复到上一次的水平(即最高权益回撤10%的时候)的规模,然后仓位的规模也恢复到原来的水平即0.8A。 这段代码怎么写?


--  作者:jinzhe
--  发布时间:2015/8/28 8:56:29
--  

b:=8;

if asset<=hhv(asset,enterbars+1)*0.9 and asset>hhv(asset,enterbars+1)*0.8 then a:=0.8*b;

if asset<=hhv(asset,enterbars+1)*0.8 then a:=b*0.64;

if asset>=hhv(asset,enterbars+1) then a:=b;

 


--  作者:qqxc50
--  发布时间:2015/8/28 12:43:57
--  
假如用下面这个最简单的均线模型 怎么用上面的资金管理模型进行仓位的控制


ma10:ma(c,10);
ma20:ma(c,20);
sellshort(ma10>ma20 and HOLDING<0,0,market);
buy(ma10>ma20 and HOLDING=0,a%,market);
sell(ma10<ma20 and HOLDING>0,0,market);
buyshort(ma10<ma20 and HOLDING=0,a%,market);

就是每天收盘后根据当天的资金跟资金最高点的对比回撤程度调整仓位?

--  作者:jinzhe
--  发布时间:2015/8/28 13:13:36
--  
怎么又多了条件?
意思是,每天收盘后,盘中有回撤就按照回撤比例降低仓位,然后看收盘时的资金是否回到最高时的值再回复仓位?

--  作者:qqxc50
--  发布时间:2015/8/28 13:20:01
--  
都按收盘后计算好了 是不是方便测试一些 每天收盘后根据回撤程度调整仓位
[此贴子已经被作者于2015/8/28 13:20:46编辑过]

--  作者:jinzhe
--  发布时间:2015/8/28 13:21:24
--  
那么是不是我上面说的意思?
--  作者:qqxc50
--  发布时间:2015/8/28 13:29:24
--  
不是 就是每天收盘计算一次权益 收盘才调整仓位 盘中的浮动权益不管。
--  作者:jinzhe
--  发布时间:2015/8/28 13:43:07
--  
variable:a=8;
ma10:ma(c,10);
ma20:ma(c,20);
sellshort(ma10>ma20 and HOLDING<0,0,market);
buy(ma10>ma20 and HOLDING=0,a,market);
sell(ma10<ma20 and HOLDING>0,0,market);
buyshort(ma10<ma20 and HOLDING=0,a,market);
a1:=ref(asset,todaybar);
aa:=ref(a,todaybar);

if asset<=hhv(asset,todaybar+1)*0.9 and asset>hhv(asset,todaybar)*0.8 then a:=0.8*a;

if asset<=hhv(asset,todaybar+1)*0.8 then a:=a*0.64;

if asset>=a1 then a:=aa;


--  作者:qqxc50
--  发布时间:2015/8/28 14:20:02
--  
为什么定义全局变量A=8 测试了一下一直开8手呀
--  作者:jinzhe
--  发布时间:2015/8/28 14:27:22
--  
variable:a=8;
ma10:ma(c,10);
ma20:ma(c,20);
sellshort(ma10>ma20 and HOLDING<0,0,market);
buy(ma10>ma20 and HOLDING=0,a,market);
sell(ma10<ma20 and HOLDING>0,0,market);
buyshort(ma10<ma20 and HOLDING=0,a,market);
a1:=ref(asset,todaybar);
aa:=ref(a,todaybar);

if asset<=hhv(asset,todaybar+1)*0.9 and asset>hhv(asset,todaybar)*0.8 and time=closetime(0) then a:=0.8*a;

if asset<=hhv(asset,todaybar+1)*0.8 and time=closetime(0) then a:=a*0.64;

if asset>=a1 and time=closetime(0) then a:=aa;