开不了仓?? (文华财经wh9)

投资者咨询:开不了仓?? (文华财经wh9)
来源:文华财经  日期:2019-6-10 21:43
下面这个模型 开不了仓,请帮忙看看 哪里有问题?谢谢
=====
Data
    data1:"RB1910"; 
Params
    //此处添加参数
Vars
    Numeric Lots; //定义参数,下单手
   Numeric CurDate; //定义参数,当前日期
   Numeric CurTime; //定义参数,当前时间
    Numeric CONQC; //定义参数
    Numeric BMP; //买盘量
    Numeric SMP; //卖盘量
    Numeric  LLL;//量开关
    Var_TickData data2; //定义数据区变量

    Global_Numeric PriceBid; //记录多头开仓价位
    Global_Numeric PriceBidTime; //记录多头开仓时间
    Global_Numeric PriceAsk; //记录空头开仓价位
    Global_Numeric PriceAskTime;
Begin
    Lots = 2; // 下单手数
    data2 = Def_TickData("RB1910",1,4); // 保存最近四笔的tick数据
    // 收盘前30秒清仓
    CONQC = ((HourFromDateTime( CurDate + CurTime ) == 23 && MinuteFromDateTime( CurDate + CurTime ) == 29) || (HourFromDateTime( CurDate + CurTime ) == 14 && MinuteFromDateTime( CurDate + CurTime ) == 59) || ( HourFromDateTime( CurDate + CurTime ) == 10 && MinuteFromDateTime( CurDate + CurTime ) == 14 ) || ( HourFromDateTime( CurDate + CurTime ) == 11 ) && MinuteFromDateTime(CurDate + CurTime ) == 29 ) && SecondFromDateTime(CurDate +  CurTime ) > 30 ;//收盘前30秒
     BMP = data0.price("bidvol1")+data0.price("bidvol2")+data0.price("bidvol3")+data0.price("bidvol4")+data0.price("bidvol5");
     SMP = data0.price("askvol1")+data0.price("askvol2")+data0.price("askvol3")+data0.price("askvol4")+data0.price("askvol5");
     LLL = BMP/SMP;
 If(data2.State == 1)
{
If (CONQC == 1)//满足在收盘前30秒内
 {
       Commentary("收盘前30秒清仓");//输出"收盘前30秒清仓"
        A_SendOrder(Enum_Sell,Enum_Exit,data1.F_BuyRemainPosition(),data1.Price("bid1")); //以买一价清仓
        A_SendOrder(Enum_Buy,Enum_Exit,data1.F_SellRemainPosition(),data1.Price("ask1")); //以卖一价清仓
    }
if(  LLL<0.5 && (data1.price("acceleratechange60")*100>0.19))
 {
        A_SendOrder(Enum_Buy,Enum_Entry,lots,data1.Price("bid1"));
       PriceBidTime=CurrentTime();
       PriceBid=data1.Price("ask1");
    }
IF( data1.price("close")-PriceBid>60)
 {
      A_SendOrder(Enum_Sell,Enum_Exit,lots,data1.Price("bid1")); 
    }
if( LLL >2 && (data1.price("acceleratechange60")*100<-0.19))
 {
        A_SendOrder(Enum_Sell,Enum_Entry,lots,data1.Price("ask1"));
       PriceAskTime=CurrentTime();
       PriceAsk=data1.Price("bid1");
    }
IF(PriceAsk-data1.price("close")>60)
 {
       A_SendOrder(Enum_Buy,Enum_Exit,lots,data1.Price("ask1")); 
    }
}
End
=====

投资者咨询:开不了仓?? (文华财经wh9)
来源:文华财经  日期:2019-6-10 21:43
 老师你看附件 :卖盘是买盘的1.88倍。   怎么会是无限接近1.     3倍以上的真有, 等晚上我看到截给你  

图片点击可在新窗口打开查看
技术人员回复
日期:2019-6-11 16:02
我们重新看了下您的模型,之前的回复存在一定的问题

您的模型我们需要盘中进一步排查分析原因,需要一定的时间,明日17点前给您回复
投资者咨询:开不了仓?? (文华财经wh9)
来源:文华财经  日期:2019-6-10 21:43
 好的 老师 谢谢
投资者咨询:开不了仓?? (文华财经wh9)
来源:文华财经  日期:2019-6-10 21:43
 这个图片 是3倍以上了

图片点击可在新窗口打开查看
技术人员回复
日期:2019-6-11 21:25
 明日工作时间一并给您回复
技术人员回复
日期:2019-6-12 10:33
您前面DATA定义的合约是用的DATA1,后续再引用的时候就写成DATA0了,所以不可能取到值的

另外引用60秒速涨的时候PRICE函数当中写的是AccelerateChange,而不是AccelerateChange60,您查看PRICE函数说明理解下


本次修改将比值和速涨值以文本的形式显示出来了,您查看这两个数值是否满足条件对比开平仓即可

如下修改,参考:

Data
    data1:"RB1910"; 
Params
    //此处添加参数
Vars
    Numeric Lots;
            //定义参数,下单手
   Numeric CurDate;
            //定义参数,当前日期
   Numeric CurTime;
            //定义参数,当前时间
    Numeric CONQC; 
            //定义参数
    Numeric BMP; //买盘量
    Numeric SMP; //卖盘量
    Numeric  LLL;//量开关
    Var_TickData data2;
            //定义数据区变量
    Global_Numeric PriceBid;
            //记录多头开仓价位
    Global_Numeric PriceBidTime;
            //记录多头开仓时间
    Global_Numeric PriceAsk;
            //记录空头开仓价位
    Global_Numeric PriceAskTime; 
            
Begin
    Lots = 2; // 下单手数
    data2 = Def_TickData("RB1910",1,4); // 保存最近四笔的tick数据
    // 收盘前30秒清仓
    CONQC = ((HourFromDateTime( CurDate + CurTime ) == 23 && MinuteFromDateTime( CurDate + CurTime ) == 29) || (HourFromDateTime( CurDate + CurTime ) == 14 && MinuteFromDateTime( CurDate + CurTime ) == 59) || ( HourFromDateTime( CurDate + CurTime ) == 10 && MinuteFromDateTime( CurDate + CurTime ) == 14 ) || ( HourFromDateTime( CurDate + CurTime ) == 11 ) && MinuteFromDateTime(CurDate + CurTime ) == 29 ) && SecondFromDateTime(CurDate +  CurTime ) > 30 ;//收盘前30秒
     BMP = data1.price("BidVol1")+data1.price("BidVol2")+data1.price("BidVol3")+data1.price("BidVol4")+data1.price("BidVol5");
     SMP = data1.price("AskVol1")+data1.price("AskVol2")+data1.price("AskBol3")+data1.price("AskVol4")+data1.price("AskBol5");
     LLL = BMP/SMP;
 If(data2.State == 1)
{
If (CONQC == 1)//满足在收盘前30秒内
 {
        A_SendOrder(Enum_Sell,Enum_Exit,data1.F_BuyRemainPosition(),data1.Price("Bid1")); //以买一价清仓
        A_SendOrder(Enum_Buy,Enum_Exit,data1.F_SellRemainPosition(),data1.Price("Ask1")); //以卖一价清仓
    }
if(  LLL<0.5 && (data1.price("AccelerateChange")*100>0.19))
 {
A_SendOrder(Enum_Buy,Enum_Entry,lots,data1.Price("Bid1"));
       PriceBidTime=CurrentTime();
       PriceBid=data1.Price("Ask1");
    }
IF( data1.price("close")-PriceBid>60)
 { 
A_SendOrder(Enum_Sell,Enum_Exit,lots,data1.Price("Bid1")); 
    }
if( LLL >2 && (data1.price("AccelerateChange")*100<-0.19))
 {
A_SendOrder(Enum_Sell,Enum_Entry,lots,data1.Price("Ask1"));
       PriceAskTime=CurrentTime();
       PriceAsk=data1.Price("bid1");
    }
IF(PriceAsk-data1.price("close")>60)
 {
A_SendOrder(Enum_Buy,Enum_Exit,lots,data1.Price("ask1")); 
    }
}
Commentary("-------------比值:"+Text(LLL));
Commentary("------------速涨值:"+Text((data1.price("AccelerateChange"))*100));
End

投资者咨询:开不了仓?? (文华财经wh9)
来源:文华财经  日期:2019-6-10 21:43
好的谢谢老师
投资者咨询:开不了仓?? (文华财经wh9)
来源:文华财经  日期:2019-6-10 21:43
仍然不开仓,条件都满足,不知道啥原因,请看看
======
 
Data
   data1:"RB1910";
Params//RB-15 /10主力连续
    Numeric Length1(1); 
    Numeric Length3(3); 
Numeric Length5(5);                  //快线周期
    Numeric Length9(9);
Numeric Length10(10);              //慢线周期
    Numeric Length20(20); 
    Numeric Length100(100); 
    Numeric Length1000(1000); 
Vars
NumericSeries MA5;              //定义变量,计算均值
NumericSeries MA10;              //定义变量,计算均值
    NumericSeries MA20; 
    NumericSeries LLV9; 
    NumericSeries HHV9; 
     NumericSeries RSV; 
    NumericSeries D; 
    NumericSeries K; 
    NumericSeries OPI1; 
    Numeric BMP; //买盘量
    Numeric SMP; //卖盘量
    Setting
    AddTimes:2;
Begin

MA5 = AverageFC(Close, Length5);
MA10 = AverageFC(Close, Length10);
    MA20 = AverageFC(Close, Length20);//PlotNumeric("MA1",AvgValue1);
    OPI1 =  OpenInt;
    LLV9 = LLV(Low,Length9);
    HHV9 = HHV(High,Length9);
    RSV = (Close-LLV9)*Length100/(HHV9-LLV9); //  KLineStart =  KLineStart=KText= K_State= K_State1
     K = Sma(Sma(RSV,Length3,Length1),Length3,Length1);
     D = Sma(k,Length3,Length1);
     BMP = data1.price("bidvol1")+data1.price("bidvol2")+data1.price("bidvol3")+data1.price("bidvol4")+data1.price("bidvol5");
     SMP = data1.price("askvol1")+data1.price("askvol2")+data1.price("askvol3")+data1.price("askvol4")+data1.price("askvol5");
If(MarketPosition <>1 && length1000* (Close[1]-Open[1])/Open[1]>3 && D[1]>D[2])
{
Buy;
  
If(MarketPosition <>-1 &&length1000* (Open[1]-Close[1])/Open[1]>3 && D[1]<D[2])
{
SellShort;
}
if(IsLastBuy&& (data1.price("acceleratechange60")*100>0.02) && BMP/SMP<0.5 )
{
Buy(1,open);
}
if(IsLastSellShort&& (data1.price("acceleratechange60")*100<-0.02) && BMP/SMP>2 )
{
SellShort(1,Open);
}
Commentary("-------------比值:"+Text(bmp/smp));
Commentary("------------速涨值:"+Text((data1.price("AccelerateChange"))*100));
End
=======
技术人员回复
日期:2019-6-17 21:44
本地加载是能够开仓的,您是加载到什么周期上?



图片点击可在新窗口打开查看