以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 关于如果只平当日开的仓位,而不是所有持仓,代码要怎么写 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=97581) |
-- 作者:vivi926 -- 发布时间:2016/5/18 17:03:24 -- 关于如果只平当日开的仓位,而不是所有持仓,代码要怎么写 根据系统横盘突破的代码修改了一下,想在开仓的时候记录一下一共开了几次仓,那么平仓的时候就平几次。 比如我原本有10000的底仓,我在满足开多条件的时候开多1000股,或者满足开空条件的时候开空1000股;满足平仓条件的时候,如果当天开多了5次(即一共5000股),那么平多仓的时候,就平掉这5000股,而不是一次性把我所有底仓全部平掉,这代码要怎么写呢? |
-- 作者:vivi926 -- 发布时间:2016/5/18 17:04:42 -- 上传附件功能有点问题,把代码贴上吧 //准备需要的中间变量 INPUT:SS(10000,10000,1000000,10000),N1(0.005,0.001,1,0.001); CYC:=BARSLAST(DATE<>REF(DATE,1))+1; H30:REF(HHV(H,30),1); L30:REF(LLV(L,30),1); MID:(H30+L30)/2;//中轴 T1:=TIME>090000 AND TIME <145500; T2:=TIME>=145500; 手数:=SS; //进场的条件 开多条件:= H>H30 AND (H30-MID)/MID<N1 AND CYC>=30 AND T1; 开空条件:= L<L30 AND (MID-L30)/MID<N1 AND CYC>=30 AND T1; //系统 收盘平多:SELL((T2 OR ABS(CLOSE-AVGENTERPRICE)*手数>=150) AND HOLDING>0 ,10000,MARKET) ; 收盘平空:SELLSHORT((T2 OR ABS(CLOSE-AVGENTERPRICE)*手数>=150) AND HOLDING<0,10000,MARKET) ; 开空:BUYSHORT(开空条件 AND HOLDING=0,手数,MARKET); 开多:BUY(开多条件 AND HOLDING=0, 手数,MARKET); //其他 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
|
-- 作者:jinzhe -- 发布时间:2016/5/18 17:05:20 -- 平仓条件添加 ref(holding,todaybar)-holding>0 ,判断今天是否开过仓 平仓手数写 ref(holding,todaybar)-holding,把今天开的仓平掉 |