以文本方式查看主题

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

--  作者:风中
--  发布时间:2015/12/29 10:26:16
--  手数增加怎样写
 如果亏损,下次出现信号时候:亏损手数*2

--  作者:jinzhe
--  发布时间:2015/12/29 10:28:12
--  

这个需要做全局变量来记录

首先定义初始手数为1手:

variable:ss=1;

然后在平仓语句内判断盈亏,然后亏损之后就加倍手数:

if 平多条件 and holding>0 then begin

   sell(1,0,market);

   if numprofit(1)<0 then ss:=ss*2;

end

 

if 平空条件 and holding<0 then begin

   sellshort(1,0,market);

   if numprofit(1)<0 then ss:=ss*2;

end

 

开仓语句里面的下单手数写ss即可


--  作者:风中
--  发布时间:2016/1/4 14:36:19
--  
 图片点击可在新窗口打开查看
--  作者:jinzhe
--  发布时间:2016/1/4 14:47:07
--  
是不是其他也有定义为ss的变量,那么改上面所有的ss即可,比如sss之类的,
--  作者:风中
--  发布时间:2016/1/4 16:16:09
--  
 可以了,但是没有在亏损后下次加仓
--  作者:风中
--  发布时间:2016/1/4 16:16:31
--  
图片点击可在新窗口打开查看
--  作者:jinzhe
--  发布时间:2016/1/4 16:23:48
--  
不会这样的,请贴代码
--  作者:风中
--  发布时间:2016/1/5 13:36:26
--  
 DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

手数:=ss;
//交易条件

开多平空条件:=CROSS(MACD,0);//开多平空条件
开空平多条件:=CROSS(0,MACD);//开空平多条件

//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);
variable:ss=1;


if CROSS(0,MACD) and holding>0 then begin

   sell(1,0,market);

   if numprofit(1)<0 then sss:=s*2;

end

 

if CROSS(MACD,0) and holding<0 then begin

   sellshort(1,0,market);

   if numprofit(1)<0 then sss:=s*2;

end
--  作者:jinzhe
--  发布时间:2016/1/5 13:44:14
--  

variable:sss=1;

DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

手数:=ss;
//交易条件

开多平空条件:=CROSS(MACD,0);//开多平空条件
开空平多条件:=CROSS(0,MACD);//开空平多条件

//交易系统
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);


if CROSS(0,MACD) and holding>0 then begin

   sell(1,0,market);

   if numprofit(1)<0 then sss:=s*2;

end

 

if CROSS(MACD,0) and holding<0 then begin

   sellshort(1,0,market);

   if numprofit(1)<0 then sss:=s*2;

end


--  作者:风中
--  发布时间:2016/1/5 13:58:21
--  
老师,我整理一下思路,
我的思路是,当MACD死叉的时候开多,金叉的时候开空,
开始自动化后,第一次出现信号后,开一手,盈利的话下次出现信号继续一手,亏损的话,在原来的手数基础上再加开上次手数的2倍,


 DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

手数:=ss;
//交易条件

开多平空条件:=CROSS(MACD,0);//开多平空条件
开空平多条件:=CROSS(0,MACD);//开空平多条件

//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);