关于分批减仓的问题 (文华财经WH8赢智V8.2)

投资者咨询:关于分批减仓的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-30 11:19
 老师您好:我写了个加减仓程序,其中加仓语句是这样的:BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(5);最多不超过4次,我想减仓的时候分批减仓,比如说:第一次开仓开5手,第二次开仓开了5手,第三次开仓5手,第四次开仓钱不够了,只开了4手,第5次开仓只开了1手,减仓的时候第一次减仓用第5次开仓的价格-第一次开仓的ATR,减仓1手,第二次减仓用第4次开仓的价格-第一次开仓的ATR,减仓4手,第三、四、五次减仓用各自的开仓价格-第一次开仓的ATR,各减仓5手,老师这个要怎么写呢,有什么特殊的函数可以定义吗?
技术人员回复
日期:2018-8-30 11:31
 这么试试

C<REFSIG_PRICE(BK,1)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(2)>0,SP(1);
C<REFSIG_PRICE(BK,2)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(3)>0,SP(5);
C<REFSIG_PRICE(BK,3)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(4)>0,SP(5);
C<REFSIG_PRICE(BK,4)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(5)>0,SP(5);
C<ENTRYSIG_PRICE(1)-REF(ATR,REFSIG_PLACE(BPK,1)),SP(5);
投资者咨询:关于分批减仓的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-30 11:19

 老师:我这样写对吗

C<REFSIG_PRICE(BK,1)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(2)>0,SP(REFSIG_VOL(BK,1));
C<REFSIG_PRICE(BK,2)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(3)>0,SP(REFSIG_VOL(BK,2));
C<REFSIG_PRICE(BK,3)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(4)>0,SP(REFSIG_VOL(BK,3));
C<REFSIG_PRICE(BK,4)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(5)>0,SP(REFSIG_VOL(BK,4));
C<ENTRYSIG_PRICE(1)-REF(ATR,REFSIG_PLACE(BPK,1)),SP(REFSIG_VOL(BPK,1));

技术人员回复
日期:2018-8-30 13:21
 可以的
投资者咨询:关于分批减仓的问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-30 11:19
 老师:我加载了一下,这样写每次平仓都取最后一次加仓的价格和手数,取不到前几次加仓的价格和手数,请问是哪里的问题呢?
技术人员回复
日期:2018-8-30 14:28
如果完全按照您1楼的顺序来执行开平仓,条件比较严格,出信号可能没有那么多,参考:

BKVOL=0&&1,BPK(5);
ISLASTBPK&& 1,BK(5);
ISLASTBK&&1,BK(5);
ISLASTBK&&1,BK(4);
ISLASTBK&&1,BK(1);
COUNTSIG(SP,BARSBK)=0&&C<REFSIG_PRICE(BK,1)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(2)>0,SP(REFSIG_VOL(BK,1));
COUNTSIG(SP,BARSBK)=1&&C<REFSIG_PRICE(BK,2)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(3)>0,SP(REFSIG_VOL(BK,2));
COUNTSIG(SP,BARSBK)=2&&C<REFSIG_PRICE(BK,3)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(4)>0,SP(REFSIG_VOL(BK,3));
COUNTSIG(SP,BARSBK)=3&&C<REFSIG_PRICE(BK,4)-REF(ATR,REFSIG_PLACE(BPK,1))&&ENTRYSIG_PRICE(5)>0,SP(REFSIG_VOL(BK,4));
COUNTSIG(SP,BARSBK)=4&&C<ENTRYSIG_PRICE(1)-REF(ATR,REFSIG_PLACE(BPK,1)),SP(REFSIG_VOL(BPK,1));