以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 信号闪烁问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=76820) |
-- 作者:sword8586 -- 发布时间:2015/3/24 12:21:09 -- 信号闪烁问题 从文华转入使用金字塔图表实盘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);// TBK:=(TBK1);
//-------------------金字塔BP书写-------------------------------------------- 请问老师错误在那呀? |
-- 作者:jinzhe -- 发布时间:2015/3/24 13:32:38 -- YCODE:=EXTGBDATA(\'YCODE\'); 类似这样的 图表不要用ext来进行全局变量的控制,这些变量没有历史数据,所以导致上述现象的产生 要用variable来在图表上进行全局变量的使用 |
-- 作者:sword8586 -- 发布时间:2015/3/24 15:25:43 -- 以下是引用jinzhe在2015/3/24 13:32:38的发言:
YCODE:=EXTGBDATA(\'YCODE\'); 类似这样的 图表不要用ext来进行全局变量的控制,这些变量没有历史数据,所以导致上述现象的产生 要用variable来在图表上进行全局变量的使用 我的公式其实没用到YCODE:=EXTGBDATA(\'YCODE\'); 这些主要是为移仓而书写。 我可以将完全其删除还会出现该现象吗?如下面开平仓方式: //-------------------金字塔BP书写--------------------------------------------
if (TBP&¬(TSK||TSPK)) 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 i:=1; end end //-------------------金字塔SP书写-------------------------------------------- if (TSP&¬(TBK||TBPK)) 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 i:=1; end end //-------------金字塔BK书写------------------------------------------------------ if ((TBK&¬((TBPK||TBK)&&(TSK||TSPK)))||(TBK&&BSKMARK=1)) then begin//当收盘价上穿下轨且有空仓或无仓时||TBK2 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 i:=1; end end //-------------金字塔SK书写------------------------------------------------------ if ((TSK&¬((TBPK||TBK)&&(TSK||TSPK)))||(TSK&&BSKMARK=0)) then begin//当收盘价上穿下轨且有空仓或无仓时||TSK2 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 i:=1; end end //-------------金字塔BPK书写------------------------------------------------------ if (TBPK&¬((TBPK||TBK)&&(TSK||TSPK))||(TBPK&&BSKMARK=1)) 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 i:=1; end end //-------------金字塔SPK书写------------------------------------------------------ if (TSPK&¬((TBPK||TBK)&&(TSK||TSPK))||(TSPK&&BSKMARK=0)) then begin //当收盘价下穿上轨且有多仓或无仓时 WARNING_DISABLE:4; 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 i:=1; 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 |
-- 作者:jinzhe -- 发布时间:2015/3/24 15:27:29 -- 删掉这个之后看框架是没问题了,具体情况还是要看你的其他条件在实际运行中的结果 |