以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  根据连赢连亏次数进行仓位控制  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=156079)

--  作者:tyx0063
--  发布时间:2017/7/19 18:57:03
--  根据连赢连亏次数进行仓位控制
K:=SMA(RSV,M1,1);D:=SMA(K,M2,1);J:=3*K-2*D;
SS:=3;
开多平空条件:=CROSS(K,D) AND K<20 ;
开空平多条件:=CROSS(D,K) AND K>80 ;

平空:SELLSHORT(开多平空条件,0,MARKET);
开多:BUY(开多平空条件,SS,MARKET);
平多:SELL(开空平多条件,0,MARKET);
开空:BUYSHORT(开空平多条件,SS,MARKET);

---------以上是简单的KD交易策略,我想再加一个仓位控制的思路:
当连赢1次时,下次开仓数为3,当连赢2次时,下次开仓数是2,当连赢大于等于3时,下次开仓数为1;
当连亏1次时,下次开仓数为1,当连亏2次时,下次开仓数是2,当连亏大于等于3时,下次开仓数为3;

另外:在完成上面思路后,请把仓位数分别换成10%、20%、30%。

我是标准版多年的用户,在此表示感谢!

--  作者:wenarm
--  发布时间:2017/7/19 21:26:49
--  
标准版用户,为了更好的提供技术服务,请进行vip认证.
认证方式如下:
http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=144425


工作人员处理中


--  作者:tyx0063
--  发布时间:2017/7/19 21:51:48
--  
我按方法认证了,并提示恭喜成功。但看贴子左边还是没VIP标志呢
--  作者:tyx0063
--  发布时间:2017/7/20 9:25:11
--  
请工作人员帮助解决我的问题,谢谢!
--  作者:wenarm
--  发布时间:2017/7/20 10:21:24
--  

VARIABLE:lossnum=0, flag=0;
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
if flag=0 then begin
 SS:=1;
 flag=1;
end
开多平空条件:=CROSS(K,D) AND K<20 ;
开空平多条件:=CROSS(D,K) AND K>80 ;

平空:SELLSHORT(开多平空条件,0,MARKET);
开多:BUY(开多平空条件,SS,MARKET);
平多:SELL(开空平多条件,0,MARKET);
开空:BUYSHORT(开空平多条件,SS,MARKET);


//当连赢1次时,下次开仓数为3,当连赢2次时,下次开仓数是2,当连赢大于等于3时,下次开仓数为1;
//当连亏1次时,下次开仓数为1,当连亏2次时,下次开仓数是2,当连亏大于等于3时,下次开仓数为3;


//判断当前最近一次盈亏是否为第一次盈利状态,是则将全局变量置为0;
if NUMPROFIT( 1)>0 and NUMPROFIT( 2) <0 and ENTERBARS=-1 then begin
 lossnum:=0;
 ss:=3;//连赢0次之后开仓数量设置为3手
end
cac:ENTERBARS;
if NUMPROFIT( 1)>0 and NUMPROFIT( 2) >0 and  ENTERBARS=-1 then lossnum:=lossnum+1;//统计连赢次数
if lossnum=1 then ss:=2;//连赢1次之后开仓数量设置为2手
if lossnum>=2 then ss:=1;//连赢2次之后开仓数量设置为1手

//判断当前最近一次盈亏是否为第一次亏损状态,是则将全局变量置为0;
if NUMPROFIT( 1)<0 and NUMPROFIT( 2) >0 and  ENTERBARS=-1 then begin
 lossnum:=0;
 ss:=1;//连亏0次之后开仓数量设置为1手
end
if NUMPROFIT( 1)<0 and NUMPROFIT( 2) <0  and  ENTERBARS=-1 then lossnum:=lossnum-1;//统计连亏次数
if lossnum=-1 then ss:=2;//连亏1次之后开仓数量设置为2手
if lossnum<=-2 then ss:=3;//连亏2次之后开仓数量设置为3手

 

你要的百分比方式,你自己通过资金计算出具体手数。将修改对应条件下的ss


--  作者:tyx0063
--  发布时间:2017/7/20 14:13:24
--  
没解决问题,开仓始终为1,且有时持仓数超过了SS