Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:建一个最简单的后台交易系统,求救

1楼
eric917 发表于:2013/2/20 14:42:19

我想写一个很简单的单均线交易系统,

上穿就开多平空,下破就开空平多,出信号立即开仓不进行复核,每根K线只开仓一次,在总账号有其他持仓的情况,不能平掉或者影响其他交易系统的持仓

我在论坛发了3天贴都没有问出来,应该怎么写才对或者指出我哪里写得不对,万分感激~!!!!!

SS:=1; //手数
 
EXTGBDATASET('POSITIONAA',0);

MAA:MA(C,20);

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  AND TENTERBARS>=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  AND TENTERBARS>=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  ) ;


 

[此贴子已经被作者于2013-2-20 14:42:59编辑过]
2楼
jinzhe 发表于:2013/2/20 14:47:37

开仓分两段,一段是初次开仓,一段是后续开仓,

把这个加上

3楼
eric917 发表于:2013/2/20 14:57:33

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  AND TENTERBARS>=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  AND TENTERBARS>=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) ;


谢谢

4楼
eric917 发表于:2013/2/20 15:03:24

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 AND TENTERBARS>=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 AND TENTERBARS>=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) ;


谢谢

5楼
eric917 发表于:2013/2/20 15:11:45
是不是一根K线只能执行一次操作的缘故,现在加载后观察,运行就只能开仓,不能平仓,也就是平仓信号一直都没有被执行过
6楼
eric917 发表于:2013/2/20 15:27:17
老师,解答一下,谢谢
7楼
eric917 发表于:2013/2/20 16:39:24
可以帮忙看一下吗?
8楼
jinzhe 发表于:2013/2/20 17:03:29
平仓不要加tenterbars>=1
9楼
eric917 发表于:2013/2/21 9:24:51
试过了,但还是只帮我开仓,没有帮平仓
共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03711 s, 3 queries.