以文本方式查看主题

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

--  作者:Nature
--  发布时间:2017/10/24 14:58:28
--  反手加仓模型

两条均线MA(C,25) MA(C,50) 金叉开多,死叉反手开空,如果是盈利开仓还是一手,如果亏损反手加仓一手,在连续亏损在继续加仓一手,直到盈利平仓,重新开仓一手。暂时就写出了一个反手模型。

MA1:MA(C,25);
MA2:MA(C,50);
IF CROSS(MA1,MA2) THEN BEGIN;
SELLSHORT(1,5,MARKET);//平空
BUY(1,5,MARKET);//开多
END;
IF CROSS(MA2,MA1) THEN BEGIN;
SELL(1,5,MARKET);//平多
BUYSHORT(1,5,MARKET);//开空
END;


--  作者:yukizzc
--  发布时间:2017/10/24 17:02:32
--  

if  then

 

MA1:MA(C,25);
MA2:MA(C,50);
IF CROSS(MA1,MA2) THEN BEGIN;
SELLSHORT(1,holding,MARKET);//平空
BUY(NUMPROFIT( 1)>0,1,MARKET);//开多

BUY(NUMPROFIT( 1)<0,ENTERVOL+1,MARKET);//开多
END;
IF CROSS(MA2,MA1) THEN BEGIN;
SELL(1,holding,MARKET);//平多
BUYshort(NUMPROFIT( 1)>0,1,MARKET);//开多

BUYshort(NUMPROFIT( 1)<0,ENTERVOL+1,MARKET);//开多
END;


--  作者:2017gogogoo
--  发布时间:2017/10/26 14:26:02
--  
以下是引用yukizzc在2017/10/24 17:02:32的发言:

if  then

 

MA1:MA(C,25);
MA2:MA(C,50);
IF CROSS(MA1,MA2) THEN BEGIN;
SELLSHORT(1,holding,MARKET);//平空
BUY(NUMPROFIT( 1)>0,1,MARKET);//开多

BUY(NUMPROFIT( 1)<0,ENTERVOL+1,MARKET);//开多
END;
IF CROSS(MA2,MA1) THEN BEGIN;
SELL(1,holding,MARKET);//平多
BUYshort(NUMPROFIT( 1)>0,1,MARKET);//开多

BUYshort(NUMPROFIT( 1)<0,ENTERVOL+1,MARKET);//开多
END;

您好,用ENTERVOL来滚动叠加单量的写法学习了!但没有考虑到首次开仓的问题,不妨这样修改下:

 

MA1:MA(C,25);
MA2:MA(C,50);
IF CROSS(MA1,MA2) THEN BEGIN;
SELLSHORT(1,holding,MARKET);//平空
BUY(NUMPROFIT( 1)>=0,1,MARKET);//开多

BUY(NUMPROFIT( 1)<=0,ENTERVOL+1,MARKET);//开多
END;
IF CROSS(MA2,MA1) THEN BEGIN;
SELL(1,holding,MARKET);//平多
BUYshort(NUMPROFIT( 1)>=0,1,MARKET);//开多

BUYshort(NUMPROFIT( 1)<=0,ENTERVOL+1,MARKET);//开多
END;

[此贴子已经被作者于2017/10/26 14:26:49编辑过]