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
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股