-- 作者:eric917
-- 发布时间:2013/2/21 9:53:08
-- 简单的后台模型,麻烦帮忙修改
我已经经过多番修改,但还是没有找到原因
这是一个简单的单均线 上穿BPK 下破SPK的 模型
要求:出信号立即开仓不进行复核,每根K线只开仓一次,在总账号有其他持仓的情况,不能平掉或者影响其他交易系统的持仓
下面为代码:麻烦老师帮忙修改,谢谢!
SS:=1; //手数 EXTGBDATASET(\'POSITIONAA\',0);
MAA:MA(C,5);
BPK:=CROSS(H,MAA); SPK:=CROSS(MAA ,L);
//初次开仓 IF EXTGBDATA(\'POSITIONAA\')=0 THEN BEGIN IF BPK THEN BEGIN BUY(HOLDING=0,SS,MARKET); TBUY(1,SS,MKT); POSITIONAA:=1; EXTGBDATASET(\'POSITIONAA\',1); END IF SPK THEN BEGIN BUYSHORT(HOLDING=0,SS,MARKET); TBUYSHORT(1,SS,MKT); POSITIONAA:=-1; EXTGBDATASET(\'POSITIONAA\',-1); END END
//后续开仓 IF BPK AND EXTGBDATA(\'POSITIONAA\')=-1 THEN BEGIN SELLSHORT(HOLDING<0,SS,MARKET); TSELLSHORT(1,SS,MKT); END
IF BPK AND EXTGBDATA(\'POSITIONAA\')=-1 AND TENTERBARS>=1 THEN BEGIN BUY(HOLDING<0,SS,MARKET); TBUY(1,SS,MKT); POSITIONAA:=1; EXTGBDATASET(\'POSITIONAA\',1); END
IF SPK AND EXTGBDATA(\'POSITIONAA\')=1 THEN BEGIN SELL(HOLDING>0,SS,MARKET); TSELL(1,SS,MKT); END
IF SPK AND EXTGBDATA(\'POSITIONAA\')=1 AND TENTERBARS>=1 THEN BEGIN BUYSHORT(HOLDING>0,SS,MARKET); TBUYSHORT(1,SS,MKT); POSITIONAA:=-1; EXTGBDATASET(\'POSITIONAA\',-1); END
AA:=TENTERBARS; BB:=TEXITBARS;
DEBUGOUT(\'POSITIONAA=%.0f\' ,POSITIONAA) ; DEBUGOUT(\'AA=%.0f\' ,AA) ; DEBUGOUT(\'BB=%.0f\' ,BB) ; DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'POSITIONAA=%.0f\' ,POSITIONAA,1) ; DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'AA=%.0f\' ,AA,1) ; DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'BB=%.0f\' ,BB,1) ;
|
-- 作者:eric917
-- 发布时间:2013/2/21 14:59:54
--
以下是引用just在2013-2-21 14:13:21的发言:是否满足平仓条件?
你用debugfile调试语句输出你的平仓条件看看是否满足条件。
还有勾选一下记录下单日志 方便查找运行过程的出现的问题
这样写对吗?
SS:=1; //手数 EXTGBDATASET(\'POSITIONAA\',0);
MAA:MA(C,5);
BPK:=CROSS(H,MAA); SPK:=CROSS(MAA ,L);
//初次开仓 IF EXTGBDATA(\'POSITIONAA\')=0 THEN BEGIN IF BPK THEN BEGIN BUY(HOLDING=0,SS,MARKET); TBUY(1,SS,MKT); POSITIONAA:=1; EXTGBDATASET(\'POSITIONAA\',1); END IF SPK THEN BEGIN BUYSHORT(HOLDING=0,SS,MARKET); TBUYSHORT(1,SS,MKT); POSITIONAA:=-1; EXTGBDATASET(\'POSITIONAA\',-1); END END
//后续开仓 IF BPK AND EXTGBDATA(\'POSITIONAA\')=-1 THEN BEGIN SELLSHORT(HOLDING<0,SS,MARKET); TSELLSHORT(1,SS,MKT); 平空条件:=1; END
IF BPK AND EXTGBDATA(\'POSITIONAA\')=-1 AND TENTERBARS>=1 THEN BEGIN BUY(HOLDING<0,SS,MARKET); TBUY(1,SS,MKT); POSITIONAA:=1; EXTGBDATASET(\'POSITIONAA\',1); END
IF SPK AND EXTGBDATA(\'POSITIONAA\')=1 THEN BEGIN SELL(HOLDING>0,SS,MARKET); TSELL(1,SS,MKT); 平多条件:=1; END
IF SPK AND EXTGBDATA(\'POSITIONAA\')=1 AND TENTERBARS>=1 THEN BEGIN BUYSHORT(HOLDING>0,SS,MARKET); TBUYSHORT(1,SS,MKT); POSITIONAA:=-1; EXTGBDATASET(\'POSITIONAA\',-1); END
AA:=TENTERBARS; BB:=TEXITBARS;
DEBUGOUT(\'POSITIONAA=%.0f\' ,POSITIONAA) ; DEBUGOUT(\'AA=%.0f\' ,AA) ; DEBUGOUT(\'BB=%.0f\' ,BB) ; DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'POSITIONAA=%.0f\' ,POSITIONAA,1) ; DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'AA=%.0f\' ,AA,1) ; DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'BB=%.0f\' ,BB,1) ;
DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'平空条件=%.0f\' ,平空条件,1) ; DEBUGFILE2(\'D:\\Debug\\DEBUGFILE.TXT\',\'平多条件=%.0f\' ,平多条件,1) ;
|