从文华转入使用金字塔图表实盘3个月。将公式按照说明转为金字塔格式,采用K线走完,确认信号下单方式,多次发现信号闪烁。主要体现在:
1、收盘后某些盘中未出现的信号在收盘后出现!
2、实盘盘中某些信号突然夹杂在最近出现的两个信号之中!
3、效果测试时采用2手下单不是1手下单的收益的两倍!
公式采用的全部函数为:BARSLAST、SMA、EMA、、MA、IFELSE、CROSS、ref、type、STD、TR、VALUEWHEN、TIME、TIME0、NEWLBARS、ENTERBARS、MIN、MAX、HHV、LLV、ABS、INTPART、SLOPE、SQRT、AVEDEV、EVERY、FILTER、NOT、OPENPROFIT、ENTERPRICE、COUNT;
公式有许多SPK、BPK、BK、SK、BP、SP条件,如SPK1——22、BPK1-22;多个开平仓条件采用以下方法过滤(见红字)。
TBP:=(NTBP||(RISE<16&&RREF&&C>BOTTOML&&ref(c,1)<ref(BOTTOML,1))||BSPSIG)&¬(TSK1||TSPK1||TSPK2||TSPK3)&¬(TBK1||TBPK1||TBPK2||TBPK3)&¬(MAMMON2=1);//
TSP:=(NTSP)&¬(TSK1||TSPK1||TSPK2||TSPK3||(BP7)||SPK33B)&¬(TBK1||TBPK1||TBPK2||TBPK3)&¬(MAMMON1=1);//
TBK:=(TBK1);
TSK:=(TSK1);
TBPK:=(TBPK1)||(TBPK2)||(TBPK3)||(BPK9L)||(BPK11L)||(BPK6L)||(BPK14L)||(BPK16L)||(BPK19L)||(BPK39)||(BPK26L)||(BPK29L)||(BPK33L)||(BPK40)||(BTLBL<=3&&OPENPROFIT<-2000&&OPENPROFIT>-5000);//&&C>MID||TLOPEN
TSPK:=(TSPK1)||(TSPK2)||(TSPK3)||(SPK6R)||(SPK9R)||(SPK10L)||(SPK10R)||(SPK13L)||(SPK14R)||(SPK15R)||(BPK20L)||(BK1P)||(SPK19L)||(SPK23L)||(SPK44)||(TOPLAL<=3&&OPENPROFIT<-2000&&OPENPROFIT>-5000);//&&MID>C||TLCLOSE
BSKMARK:=(TBPK||TBK)&&(TSK||TSPK)&&if(RISE>DOWN,1,0);
//-------------------金字塔BP书写--------------------------------------------
if (TBP&¬(TSK||TSPK)) then BEGIN//
WARNING_DISABLE:4;
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
if holding<0 then begin
SELLSHORT(not(TYPE(1)=4),N88,MARKET); //平空
i:=0;
SENDMAIL(i=0,'yf-zhang@qq.com','平空'+STKNAME(),'平空');
end
if i=0 and holding=0 then begin
EXTGBDATASET('Mark',-2);
EXTGBDATASET('Holding5',0);
EXTGBDATASET('PM',3);
i:=1;
end
end
end
//-------------------金字塔SP书写--------------------------------------------
if (TSP&¬(TBK||TBPK)) then begin
WARNING_DISABLE:4;
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
if holding>0 then begin
SELL(not(TYPE(1)=2),N88,MARKET); //平多
i:=0;
SENDMAIL(i=0,'yf-zhang@qq.com','平多'+STKNAME(),'平多');
end
if i=0 and holding=0 then begin
EXTGBDATASET('Mark',-1);
EXTGBDATASET('Holding5',0);
EXTGBDATASET('PM',4);
i:=1;
end
end
end
//-------------金字塔BK书写------------------------------------------------------
if ((TBK&¬((TBPK||TBK)&&(TSK||TSPK)))||(TBK&&BSKMARK=1)) then begin//当收盘价上穿下轨且有空仓或无仓时||TBK2
WARNING_DISABLE:4;
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
if holding=0 then begin
buy(not(TYPE(1)=1),N88,market);//开多
i:=0;
SENDMAIL(i=0,'yf-zhang@qq.com','开多'+STKNAME(),'开多');
end
if i=0 and holding>0 then begin
EXTGBDATASET('Mark',1);
EXTGBDATASET('Holding5',N88);
i:=1;
end
end
end
//-------------金字塔SK书写------------------------------------------------------
if ((TSK&¬((TBPK||TBK)&&(TSK||TSPK)))||(TSK&&BSKMARK=0)) then begin//当收盘价上穿下轨且有空仓或无仓时||TSK2
WARNING_DISABLE:4;
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
if holding=0 then begin
buyshort(not(TYPE(1)=3),N88,market);//开空
i:=0;
SENDMAIL(i=0,'yf-zhang@qq.com','开空'+STKNAME(),'开空');
end
if i=0 and holding<0 then begin
EXTGBDATASET('Mark',2);
EXTGBDATASET('Holding5',REVERSE(N88));
EXTGBDATASET('PM',5);
i:=1;
end
end
end
//-------------金字塔BPK书写------------------------------------------------------
if (TBPK&¬((TBPK||TBK)&&(TSK||TSPK))||(TBPK&&BSKMARK=1)) then begin//当收盘价上穿下轨且有空仓或无仓时
WARNING_DISABLE:4;
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
if holding<=0 then begin
sellshort(not(TYPE(1)=4),N88,market);//平空 第一个1代表100%成立,第二个1代表下单手数(下同)
buy(not(TYPE(1)=1),N88,market);//开多
i:=0;
SENDMAIL(i=0,'yf-zhang@qq.com','平空开多'+STKNAME(),'平空开多');
end
if i=0 and holding>0 then begin
EXTGBDATASET('Mark',1);
EXTGBDATASET('Holding5',N88);
i:=1;
end
end
end
//-------------金字塔SPK书写------------------------------------------------------
if (TSPK&¬((TBPK||TBK)&&(TSK||TSPK))||(TSPK&&BSKMARK=0)) then begin //当收盘价下穿上轨且有多仓或无仓时
WARNING_DISABLE:4;
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
if holding>=0 then begin
sell(not(TYPE(1)=2),N88,market);//平多
buyshort(not(TYPE(1)=3),N88,market);//开空
i:=0;
SENDMAIL(i=0,'yf-zhang@qq.com','平多开空'+STKNAME(),'平多开空');
end
if i=0 and holding<0 then begin
EXTGBDATASET('Mark',2);
EXTGBDATASET('Holding5',REVERSE(N88));
i:=1;
end
end
end
//---------------------------------------------------------------------------------
if MAMMON1=1 then begin
WARNING_DISABLE:4;
EXTGBDATASET('Forward',1);
end
if MAMMON2=1 then begin
WARNING_DISABLE:4;
EXTGBDATASET('Forward',2);
end
请问老师错误在那呀?
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
类似这样的
图表不要用ext来进行全局变量的控制,这些变量没有历史数据,所以导致上述现象的产生
要用variable来在图表上进行全局变量的使用
YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
类似这样的
图表不要用ext来进行全局变量的控制,这些变量没有历史数据,所以导致上述现象的产生
要用variable来在图表上进行全局变量的使用
我的公式其实没用到YCODE:=EXTGBDATA('YCODE');
if YCODE=0 then begin
这些主要是为移仓而书写。
我可以将完全其删除还会出现该现象吗?如下面开平仓方式: