data0没有信号,麻烦看看
2022-12-06 19:33


Params
    //此处添加参数
    Numeric Length(100);  //定义布林周期
    Numeric Offset(3);    //定义布林宽度
    Numeric Lots(1);      //定义交易手数

Vars
    //此处添加变量
    Series<Numeric> UpLine;        //上轨
    Series<Numeric> DownLine;        //下轨 
    Series<Numeric> MidLine;    //中间线
    Numeric Band;    
    Series<Numeric> DiffP;  //价差
Events
OnInit() 
    {
    AddDataFlag(Enum_Data_RolloverBackWard());
    AddDataFlag(Enum_Data_RolloverRealPrice());
    AddDataFlag(Enum_Data_AutoSwapPosition());
    AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());
    }
    onBar(ArrayRef<Integer> indexs)
    {    
        //此处添加代码正文    
            //过滤集合竞价
        //If(!CallAuctionFilter()) return;    
        
        DiffP = Data1.Close-Data0.Close; //计算两个合约之间价差,合约1-合约0
        
        MidLine = AverageFC(DiffP,Length); //计算价差布林中轨
        Band = StandardDev(DiffP,Length,1); //计算价差单位布林轨宽
         
        UpLine = MidLine + Offset * Band; //计算价差布林上轨
        DownLine = MidLine - Offset * Band; //计算价差布林下轨
        
        If(Data0.MarketPosition == 0 && Data1.MarketPosition == 0) //如果没有持有两个合约套利
        {
            If ( DiffP[1]>UpLine[1] )  //如果上一期合约之间价差大于布林上轨
            {
                Data0.Buy(Lots,Data0.Open);  //以开盘价买入合约0
                Data1.SellShort(Lots,Data1.Open);  //以开盘价卖出合约1
            }
            If ( DiffP[1]<DownLine[1] )  //如果上一期合约之间价差小于布林下轨
            {
                Data0.SellShort(Lots,Data0.Open);   //以开盘价卖出合约0
                Data1.Buy(Lots,Data1.Open);   //以开盘价买入合约1
            }
        }
        
        If ( Data0.MarketPosition>0 && Data1.MarketPosition<0 && DiffP[1]<MidLine[1] )  //如果持有合约套利,合约价差小于布林中轨
        {
            Data0.Sell(Lots,Data0.Open);   //以开盘价卖出合约0
             Data1.BuyToCover(Lots,Data1.Open); //以开盘价买入合约1
         }
         
        If ( Data0.MarketPosition<0 && Data1.MarketPosition>0 && DiffP[1]>MidLine[1] ) //如果持有合约套利,合约价差大于布林中轨
        {
            Data0.BuyToCover(Lots,Data0.Open);  //以开盘价买入合约0
            Data1.Sell(Lots,Data1.Open);  //以开盘价卖出合约1
        }
         
    }
 

评论区
顶部