下单组件为什么控制不住开仓数量? [赢顺期货]
- 咨询内容:
VAR Price; //定义最新价
VAR sg; //定义上轨值
VAR xg; //定义下轨值
VAR MinPrice;// 定义最小变动值
VAR dcidvol;// 定义多仓数量
VAR kcidvol;//定义空仓数量
//--------------------------------------------------------------------
//主函数部分
//--------------------------------------------------------------------
VOID MAIN()
{
MinPrice=MinPrice("sr1209");
Price=Price("SR1209"); //让PRICE函数取得SR1201的最新价
sg=F_Variant("sg",0);
xg=F_Variant("xg",0);
dcidvol=F_BuyPosition();
kcidvol=F_SellPosition();
IF (Price>sg)
//开仓部分
{
IF(F_BuyPosition()>=0&&F_BuyPosition()<=3)
{
BKid();
}
}IF (Price<xg)
{
IF(F_SellPosition()>=0&&F_SellPosition()<=3)
{
SKid();
}
}
//这里加平仓部分
}
//------------------------------------------------------------
//自建函数部分
//-------------------------------------------------------------
VOID BKid() //建立多头仓位
{
T_Deal(F_DealCode(),0,0,1,Price+2*MinPrice);//发出委托
}
VOID SKid() //建立kong头仓位
{
T_Deal(F_DealCode(),1,0,1,Price+2*MinPrice);//发出委托
}IF(F_BuyPosition()>=0&&F_BuyPosition()<=3) 我认为这句话是控制开仓数量不大于3手的意思 可是为什么模拟中 实际开了5手出来
请问 我应该如何操作才能控制这个数量问题
- 赢顺技术人员:
您是否是发出的委托单没有成交形成挂单导致的?为了逻辑严谨在这个判断之后加上&&T_IsNoOrder()==1
该算法交易模型无挂单(发出的所有委托都已经成交,或被撤单)。
用法:
T_IsNoOrder()如果没有挂单返回1,否则返回0
例:
IF(T_IsNoOrder()) //如果没有挂单
- 上一篇:关于优化数据
- 下一篇:为什么只有平仓而没开仓呢?
相关文章
-
没有相关内容