以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请修改交易系统  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=139758)

--  作者:tanyongde
--  发布时间:2016/9/20 0:23:55
--  请修改交易系统
请修改交易系统,没信号.

INPUT: SK1(1.4,0.1,2,0.1),SK2(0.07,0.01,0.1,0.01),SKK(0.9,0.1,1,0.01),SS(2,1,100,1);
INPUT: BK2(0.07,0.01,0.1,0.01),BK1(0.4,0.1,2,0.1),BKK(0.5,0.1,1,0.01);
VARIABLE : POSITION=0 ;
手数:=SS;
N:=BARSLAST(DATE<>REF(DATE,1));
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
今开:=IF(N=1,OPEN,REF(OPEN,N-1));
A:=HHV(H,N+1);
B:=LLV(L,N+1);
IF N>=1 THEN BEGIN
今高:=A;//今高
今低:=B;//今低
END
观察卖出价:今开+SK1*(昨收-昨低);//SSETUP
反转卖出价:((1+SK2)/2)*(昨高+昨低)-SK2*昨低;//SENTER
反转买入价:((1+BK2)/2)*(昨高+昨低)-BK2*昨高;//BENTER
观察买入价:今开-BK1*(昨高-昨收);//BSETUP
突破买入价:(观察卖出价+BKK*(观察卖出价-观察买入价));//BBREEAK
突破卖出价:观察买入价-SKK*(观察卖出价-观察买入价);//SBREAK
//条件
空仓做多条件:=C>突破买入价 ;
空仓做空条件:=C<突破卖出价 ;
多单反转条件:=今高>观察卖出价 AND C<=反转卖出价;
空单反转条件:=今低<观察买入价 AND C>=反转买入价;
IF BARPOS=1 THEN BEGIN
POSITION := 0 ;
  END 
//交易系统
IF TIME>=132000 AND TIME<185000  THEN BEGIN
 IF 空仓做多条件 THEN  BEGIN
   IF HOLDING<0 and POSITION := 1 THEN BEGIN
      SELLSHORT(1,手数,MARKET);
      POSITION := 0;
   END
   IF HOLDING=0 AND POSITION := 0 THEN BEGIN
   BUY(1,手数,MARKET);
   POSITION := 1 ;
   END
  END
 IF 空仓做空条件 THEN BEGIN
    IF HOLDING>0 AND POSITION := 1 THEN  BEGIN
       SELL(1,手数,MARKET);
       POSITION := 0;
     END
    IF HOLDING=0 AND POSITION := 0 THEN BEGIN 
       BUYSHORT(1,手数,MARKET);
       POSITION := 1 ;
    END
 END
//多单反转:
 IF 多单反转条件 THEN BEGIN 
    IF HOLDING>0 AND POSITION := 1 THEN  BEGIN
       SELL(1,手数,MARKET);
       POSITION := 0;
     END
    IF HOLDING=0 AND POSITION := 0 THEN BEGIN 
       BUYSHORT(1,手数,MARKET);
       POSITION := 1 ;
    END
 END
  
  
 //空单反转:
 IF 空单反转条件 THEN BEGIN
    IF HOLDING<0 and POSITION := 1 THEN BEGIN
      SELLSHORT(1,手数,MARKET);
      POSITION := 0;
   END
   IF HOLDING=0 AND POSITION := 0 THEN BEGIN
   BUY(1,手数,MARKET);
   POSITION := 1 ;
   END
  END
END 


//日内平仓
IF TIME>=185000 THEN BEGIN
   IF HOLDING>0 AND POSITION := 1 THEN  BEGIN
       SELL(1,手数,MARKET);
       POSITION := 0;
     END
   IF HOLDING<0 and POSITION := 1 THEN BEGIN
      SELLSHORT(1,手数,MARKET);
      POSITION := 0;
     END
END
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低


--  作者:jinzhe
--  发布时间:2016/9/20 9:14:52
--  

INPUT: SK1(1.4,0.1,2,0.1),SK2(0.07,0.01,0.1,0.01),SKK(0.9,0.1,1,0.01),SS(2,1,100,1);
INPUT: BK2(0.07,0.01,0.1,0.01),BK1(0.4,0.1,2,0.1),BKK(0.5,0.1,1,0.01);
VARIABLE : POSITION=0 ;   
手数:=SS;
N:=BARSLAST(DATE<>REF(DATE,1));
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
今开:=IF(N=1,OPEN,REF(OPEN,N-1));
A:=HHV(H,N+1);
B:=LLV(L,N+1);
IF N>=1 THEN BEGIN
今高:=A;//今高
今低:=B;//今低
END
观察卖出价:=今开+SK1*(昨收-昨低);//SSETUP
反转卖出价:=((1+SK2)/2)*(昨高+昨低)-SK2*昨低;//SENTER
反转买入价:=((1+BK2)/2)*(昨高+昨低)-BK2*昨高;//BENTER
观察买入价:=今开-BK1*(昨高-昨收);//BSETUP
突破买入价:=(观察卖出价+BKK*(观察卖出价-观察买入价));//BBREEAK
突破卖出价:=观察买入价-SKK*(观察卖出价-观察买入价);//SBREAK
//条件
空仓做多条件:=C>突破买入价 ;
空仓做空条件:=C<突破卖出价 ;
多单反转条件:=今高>观察卖出价 AND C<=反转卖出价;
空单反转条件:=今低<观察买入价 AND C>=反转买入价;
IF BARPOS=1 THEN BEGIN
   POSITION := 0 ;
  END
//交易系统
IF TIME>=132000 AND TIME<185000  THEN BEGIN
 IF 空仓做多条件 THEN  BEGIN
   IF HOLDING<0 and POSITION = 1 THEN BEGIN
      SELLSHORT(1,手数,MARKET);
      POSITION := 0;
   END
   IF HOLDING=0 AND POSITION = 0 THEN BEGIN
   BUY(1,手数,MARKET);
   POSITION := 1 ;
   END
  END
 IF 空仓做空条件 THEN BEGIN
    IF HOLDING>0 AND POSITION = 1 THEN  BEGIN
       SELL(1,手数,MARKET);
       POSITION := 0;
     END
    IF HOLDING=0 AND POSITION = 0 THEN BEGIN
       BUYSHORT(1,手数,MARKET);
       POSITION := 1 ;
    END
 END
//多单反转:
 IF 多单反转条件 THEN BEGIN
    IF HOLDING>0 AND POSITION = 1 THEN  BEGIN
       SELL(1,手数,MARKET);
       POSITION := 0;
     END
    IF HOLDING=0 AND POSITION = 0 THEN BEGIN
       BUYSHORT(1,手数,MARKET);
       POSITION := 1 ;
    END
 END
 
 
 //空单反转:
 IF 空单反转条件 THEN BEGIN
    IF HOLDING<0 and POSITION = 1 THEN BEGIN
      SELLSHORT(1,手数,MARKET);
      POSITION := 0;
   END
   IF HOLDING=0 AND POSITION = 0 THEN BEGIN
   BUY(1,手数,MARKET);
   POSITION := 1 ;
   END
  END
END

 


//日内平仓
IF TIME>=185000 THEN BEGIN
   IF HOLDING>0 AND POSITION = 1 THEN  BEGIN
       SELL(1,手数,MARKET);
       POSITION := 0;
     END
   IF HOLDING<0 and POSITION = 1 THEN BEGIN
      SELLSHORT(1,手数,MARKET);
      POSITION := 0;
     END
END
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低

 


--  作者:tanyongde
--  发布时间:2016/9/21 11:24:03
--  
谢谢!!及时解决