投资者咨询:
老师帮忙修改下程序! (文华财经WH6赢顺V6.7)来源:文华财经 日期:2018-8-30 17:41
老师,我写了个带加仓的程序如下:VAR1:=5;
HH1:HV(H,20);
LL1:LV(L,20);
HH2:HV(H,10);
LL2:LV(L,10);
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,26);
ATR1:=REF(C,REFSIG_PLACE(BPK,1))-N2*REF(ATR,REFSIG_PLACE(BPK,1));
ATR2:=REF(C,REFSIG_PLACE(SPK,1))+N2*REF(ATR,REFSIG_PLACE(SPK,1));
AAA1:IF(BKVOL>0,ATR1,NULL),RGB(248,148,148);
AAA2:IF(SKVOL>0,ATR2,NULL),RGB(146,228,211);
BKVOL=0&&CROSSUP(C,HH1),BPK(VAR1);
CROSSDOWN(C,LL2)&&CROSSDOWN(C,LL1)=0,SP(BKVOL);
(C<ATR1)&&CROSSDOWN(C,LL1)=0,SP(BKVOL);
BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(VAR1);
SKVOL=0&&CROSSDOWN(C,LL1),SPK(VAR1);
CROSSUP(C,HH2)&&CROSSUP(C,HH1)=0,BP(SKVOL);
(C>ATR2)&&CROSSUP(C,HH1)=0,BP(SKVOL);
SKVOL>0&&C<(SKPRICE-REF(ATR,REFSIG_PLACE(SPK,1))*0.5),SK(VAR1);
TRADE_AGAIN(4);
CHECKSIG_MIN(BK,'A',0,'C',0);
CHECKSIG_MIN(SK,'A',0,'C',0);
现在我想把这个带加仓的程序修改成带分批减仓的程序,想法如下:
当第一次平多时,用收盘价<最后一次加多的价格-首次开多那根K线的ATR,减仓的手数为最后一次加多的手数;第二次平多用收盘价<倒数第二次加多的价格-首次开多那根K线的ATR,减仓的手数为倒数第二次加多的手数,以此类推,第三次平多用收盘价<倒数第三次加多的价格-首次开多那根K线的ATR,减仓的手数为倒数第三次加多的手数,第四次平多用收盘价<倒数第四次加多的价格-首次开多那根K线的ATR,减仓的手数为倒数第四次加多的手数,第五次平多用收盘价<首次开多的价格-首次开多那根K线的ATR,减仓的手数为首次开多的手数。
反之,平空也一样,当第一次平空时,用收盘价>最后一次加空的价格+首次开空那根K线的ATR,减仓的手数为最后一次加空的手数;第二次平空用收盘价>倒数第二次加空的价格+首次开空那根K线的ATR,减仓的手数为倒数第二次加空的手数;以此类推,第三次平空用收盘价>倒数第三次加空的价格+首次开空那根K线的ATR,减仓的手数为倒数第三次加空的手数;第四次加空用收盘价>倒数第四次加空的价格+首次开空那根K线的ATR,减仓的手数为倒数第四次加空的手数;第五次平空用收盘价>首次开空的价格+首次开空那根K线的ATR,减仓的手数为首次开空的手数。
备注:以上加仓次数是根据达到加仓条件进行加仓,最多加仓4次,但达不到条件时有可能4次以下,分批减仓时根据加仓次数对应相应的减仓次数。
老师您能帮忙改下吗?
我们分析下,最晚明天下午给您回复
投资者咨询:
老师帮忙修改下程序! (文华财经WH6赢顺V6.7)来源:文华财经 日期:2018-8-30 17:41
好的,麻烦您了!谢谢啦
VAR1:=5;HH1:HV(H,20);
LL1:LV(L,20);
HH2:HV(H,10);
LL2:LV(L,10);
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,26);
ATR1:=REF(C,REFSIG_PLACE(BPK,1))-N2*REF(ATR,REFSIG_PLACE(BPK,1));
ATR2:=REF(C,REFSIG_PLACE(SPK,1))+N2*REF(ATR,REFSIG_PLACE(SPK,1));
AAA1:IF(BKVOL>0,ATR1,NULL),RGB(248,148,148);
AAA2:IF(SKVOL>0,ATR2,NULL),RGB(146,228,211);
BKVOL=0&&CROSSUP(C,HH1),BPK(VAR1);
C<REFSIG_PRICE(BK,1)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=0&&ENTRYSIG_PRICE(2)>0,SP(REFSIG_VOL(BK,1));
C<REFSIG_PRICE(BK,2)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=1&&ENTRYSIG_PRICE(3)>0,SP(REFSIG_VOL(BK,2));
C<REFSIG_PRICE(BK,3)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=2&&ENTRYSIG_PRICE(4)>0,SP(REFSIG_VOL(BK,3));
C<REFSIG_PRICE(BK,4)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=3&&ENTRYSIG_PRICE(5)>0,SP(REFSIG_VOL(BK,4));
C<ENTRYSIG_PRICE(1)-REF(ATR,ENTRYSIG_PLACE(1)),SP(BKVOL);
BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(VAR1);
SKVOL=0&&CROSSDOWN(C,LL1),SPK(VAR1);
SKVOL>0&&C<(SKPRICE-REF(ATR,REFSIG_PLACE(SPK,1))*0.5),SK(VAR1);
C>REFSIG_PRICE(SK,1)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=0&&ENTRYSIG_PRICE(2)>0,BP(REFSIG_VOL(SK,1));
C>REFSIG_PRICE(SK,2)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=1&&ENTRYSIG_PRICE(3)>0,BP(REFSIG_VOL(SK,2));
C>REFSIG_PRICE(SK,3)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=2&&ENTRYSIG_PRICE(4)>0,BP(REFSIG_VOL(SK,3));
C>REFSIG_PRICE(SK,4)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=3&&ENTRYSIG_PRICE(5)>0,BP(REFSIG_VOL(SK,4));
C>ENTRYSIG_PRICE(1)+REF(ATR,ENTRYSIG_PLACE(1)),BP(BKVOL);
TRADE_AGAIN(4);
CHECKSIG_MIN(BK,'A',0,'C',0);
CHECKSIG_MIN(SK,'A',0,'C',0);
投资者咨询:
老师帮忙修改下程序! (文华财经WH6赢顺V6.7)来源:文华财经 日期:2018-8-30 17:41
谢谢,老师!您太棒了~
投资者咨询:
老师帮忙修改下程序! (文华财经WH6赢顺V6.7)来源:文华财经 日期:2018-8-30 17:41
VAR1:=5;
HH1:HV(H,20);
LL1:LV(L,20);
HH2:HV(H,10);
LL2:LV(L,10);
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,26);
ATR1:=REF(C,REFSIG_PLACE(BPK,1))-N2*REF(ATR,REFSIG_PLACE(BPK,1));
ATR2:=REF(C,REFSIG_PLACE(SPK,1))+N2*REF(ATR,REFSIG_PLACE(SPK,1));
AAA1:IF(BKVOL>0,ATR1,NULL),RGB(248,148,148);
AAA2:IF(SKVOL>0,ATR2,NULL),RGB(146,228,211);
BKVOL=0&&CROSSUP(C,HH1),BPK(VAR1);
C<REFSIG_PRICE(BK,1)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=0&&ENTRYSIG_PRICE(2)>0,SP(REFSIG_VOL(BK,1));
C<REFSIG_PRICE(BK,2)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=1&&ENTRYSIG_PRICE(3)>0,SP(REFSIG_VOL(BK,2));
C<REFSIG_PRICE(BK,3)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=2&&ENTRYSIG_PRICE(4)>0,SP(REFSIG_VOL(BK,3));
C<REFSIG_PRICE(BK,4)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=3&&ENTRYSIG_PRICE(5)>0,SP(REFSIG_VOL(BK,4));
C<ENTRYSIG_PRICE(1)-REF(ATR,ENTRYSIG_PLACE(1)),SP(BKVOL);
BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(VAR1);
BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(VAR1);
BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(VAR1);
BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(VAR1);
SKVOL=0&&CROSSDOWN(C,LL1),SPK(VAR1);
SKVOL>0&&C<(SKPRICE-REF(ATR,REFSIG_PLACE(SPK,1))*0.5),SK(VAR1);
SKVOL>0&&C<(SKPRICE-REF(ATR,REFSIG_PLACE(SPK,1))*0.5),SK(VAR1);
SKVOL>0&&C<(SKPRICE-REF(ATR,REFSIG_PLACE(SPK,1))*0.5),SK(VAR1);
SKVOL>0&&C<(SKPRICE-REF(ATR,REFSIG_PLACE(SPK,1))*0.5),SK(VAR1);
C>REFSIG_PRICE(SK,1)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=0&&ENTRYSIG_PRICE(2)>0,BP(REFSIG_VOL(SK,1));
C>REFSIG_PRICE(SK,2)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=1&&ENTRYSIG_PRICE(3)>0,BP(REFSIG_VOL(SK,2));
C>REFSIG_PRICE(SK,3)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=2&&ENTRYSIG_PRICE(4)>0,BP(REFSIG_VOL(SK,3));
C>REFSIG_PRICE(SK,4)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=3&&ENTRYSIG_PRICE(5)>0,BP(REFSIG_VOL(SK,4));
C>ENTRYSIG_PRICE(1)+REF(ATR,ENTRYSIG_PLACE(1)),BP(BKVOL);
MULTSIG_MIN(0,0,10);
投资者咨询:
老师帮忙修改下程序! (文华财经WH6赢顺V6.7)来源:文华财经 日期:2018-8-30 17:41
老师,您好!谢谢您的回答!但是与我想要的还是有些偏差!
偏差1:您这次修改把我首次开仓和平仓都改成突破价了,我想要的是首次开仓和平仓都只用收盘价,只有加仓时候才用突破价格的。
偏差2:您把我加仓指令改成每根K线上多指令了,我想要的是每根K线上加仓时候只有一个突破价格。
我主要是想要,如上面提问中的,当一根大阴线符合所有止损条件(每次加多价格-首次开多的ATR,这个条件止损),把手中的多单都平掉,并且同时符合反手条件了就实现反手。
谢谢您了
VAR1:=5;
HH1:HV(H,20);
LL1:LV(L,20);
HH2:HV(H,10);
LL2:LV(L,10);
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR,26);
ATR1:=REF(C,REFSIG_PLACE(BPK,1))-N2*REF(ATR,REFSIG_PLACE(BPK,1));
ATR2:=REF(C,REFSIG_PLACE(SPK,1))+N2*REF(ATR,REFSIG_PLACE(SPK,1));
AAA1:IF(BKVOL>0,ATR1,NULL),RGB(248,148,148);
AAA2:IF(SKVOL>0,ATR2,NULL),RGB(146,228,211);
BKVOL=0&&CROSSUP(C,HH1),BPK(VAR1);
C<REFSIG_PRICE(BK,1)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=0&&ENTRYSIG_PRICE(2)>0,SP(REFSIG_VOL(BK,1));
C<REFSIG_PRICE(BK,2)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=1&&ENTRYSIG_PRICE(3)>0,SP(REFSIG_VOL(BK,2));
C<REFSIG_PRICE(BK,3)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=2&&ENTRYSIG_PRICE(4)>0,SP(REFSIG_VOL(BK,3));
C<REFSIG_PRICE(BK,4)-REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(SP,ENTRYSIG_PLACE(1))=3&&ENTRYSIG_PRICE(5)>0,SP(REFSIG_VOL(BK,4));
C<ENTRYSIG_PRICE(1)-REF(ATR,ENTRYSIG_PLACE(1))&&BKVOL>0,CLOSEOUT;
BKVOL>0&&C>(BKPRICE+REF(ATR,REFSIG_PLACE(BPK,1))*0.5),BK(VAR1);
SKVOL=0&&CROSSDOWN(C,LL1),SPK(VAR1);
SKVOL>0&&C<(SKPRICE-REF(ATR,REFSIG_PLACE(SPK,1))*0.5),SK(VAR1);
C>REFSIG_PRICE(SK,1)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=0&&ENTRYSIG_PRICE(2)>0,BP(REFSIG_VOL(SK,1));
C>REFSIG_PRICE(SK,2)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=1&&ENTRYSIG_PRICE(3)>0,BP(REFSIG_VOL(SK,2));
C>REFSIG_PRICE(SK,3)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=2&&ENTRYSIG_PRICE(4)>0,BP(REFSIG_VOL(SK,3));
C>REFSIG_PRICE(SK,4)+REF(ATR,ENTRYSIG_PLACE(1))&&COUNTSIG(BP,ENTRYSIG_PLACE(1))=3&&ENTRYSIG_PRICE(5)>0,BP(REFSIG_VOL(SK,4));
C>ENTRYSIG_PRICE(1)+REF(ATR,ENTRYSIG_PLACE(1))&&SKVOL>0,CLOSEOUT;
TRADE_AGAIN(4);
CHECKSIG_MIN(BK,'A',0,'C',0);
CHECKSIG_MIN(SK,'A',0,'C',0);