TICK级问题 (文华财经wh9)

投资者咨询:TICK级问题 (文华财经wh9)
来源:文华财经  日期:2018-8-9 13:59
如果一只股票连续4个TICK价格在涨而都是大单买,那就开仓买。4个TICK跌而都是大单卖的话就开仓卖。我不知道我写的对不对。
例如今天中国软件(600536)10:49应该买入,但是测试报告写着没有交易。

Setting
SetBigVol:50; // 50手算是大单
SetTickData:1,3;
Vars
NumericSeries Sum_AskBigCount;
NumericSeries Sum_BidBigCount;
Begin
Sum_AskBigCount = AskBigCount;  
Sum_BidBigCount = BidBigCount; 

If(MarketPosition == 0){
If(Sum_BidBigCount >= 4 && Rising(4) == 1 )
Buy(10, Active_Order, Cancel_Order);
Else If(Sum_AskBigCount >= 4 && Rising(4) == 0)
SellShort(10, Active_Order, Cancel_Order);
}

谢谢!
 
技术人员回复
日期:2018-8-9 14:22

 1.您的数据区只定义了3笔tick数据,但是开仓条件是大单大于等于4笔,即使定义的3笔数据都是大单,也不可能大于等于4

 

2.600536不活跃,大单阈值50,对该股票来说太大了,很难满足大单条件

 

3.开仓条件中的rising函数需要有五档授权,没有五档行情的话返回空值,所以开仓条件不能满足

 

4.600536是股票软件,1手为100股,您买开仓数量是10,小于最小开仓股数

 

5.股票是T+1交易,您的模型不是股票T+0模型,所以sellshort信号卖平开是无效的

 

可以这样改一下,加载到比较活跃的期货合约,例如m1901看看:

 

Setting
     SetBigVol:5; // 50手算是大单
     SetTickData:1,10;
Vars
     NumericSeries Sum_AskBigCount;
     NumericSeries Sum_BidBigCount;
Begin
     Sum_AskBigCount = AskBigCount; 
     Sum_BidBigCount = BidBigCount; 


If(MarketPosition == 0)
{
      If(Sum_BidBigCount >= 4 )   
{    
      Buy(10, Active_Order);//, Cancel_Order);
}
       If(Sum_AskBigCount >= 4)
{
      Sell(10, Active_Order);//, Cancel_Order);
}
}

End

 
投资者咨询:TICK级问题 (文华财经wh9)
来源:文华财经  日期:2018-8-9 13:59
 谢谢, 期货的策略是稍微简单一些。我还有几个问题关于股票交易。

1. rising的函数是不是股票快涨或者跌停就会空值?如果是这样的话,有没有其他函数可以用?就是要4个TICK价格都涨就买。(如果期货合同也涨/跌停也是一个问题)

2. StockT0_Plus:True 只能在K线图模型用。 TICK级数据不支持股票T+0交易吗?

3. 为什么600536大单阈值50太大了?一个单50股应该不算大。
技术人员回复
日期:2018-8-9 15:52

1.rising函数需要五档授权才能使用,没有五档授权返回空值,购买五档授权在软件右上角》帮助》网购付费功能

 

rising对行情的判断取决于rising的参数,您可以根据加载的合约和周期自行调整

 

4笔tick买一价上涨就买,可以参考下面写法:

 

Data
    data1:"m1809";        //定义合约
Vars
    Var_TickData data2;     //定义数据区变量
Begin
    data2 = Def_TickData("m1809",1,4); // 保存最近四笔的tick数据
    If ( data2.State == 1 ) // 数据保存完成
    {
        If (  data2[0].Bid1 > data2[1].Bid1 && data2[1].Bid1 >data2[2].Bid1 && data2[2].Bid1 > data2[3].Bid1) //连续3次当笔TICK的买一价都大于上一笔TICK的买一价
        {
                BKID=A_SendOrder(Enum_Buy,Enum_Entry,1,data1.Price("ask1")); //以卖一价买入1手仓位
        }
    }

 

2.是的,股票T+0交易需要使用K线图模型

 

3.大单阈值的单位是手数,50手即为5000股