MQ ,对盘口锁仓怎么写 (文华财经wh9)

投资者咨询:MQ ,对盘口锁仓怎么写 (文华财经wh9)
来源:文华财经  日期:2018-6-21 13:39
 MQ ,对盘口锁仓怎么写
技术人员回复
日期:2018-6-21 13:52

 以简单的判断有多头持仓并做锁仓为例,可以参考:

 

Vars
  Numeric NN;     
Data
   data0:"IF1809";
Begin
   NN=F_BuyPosition() -F_SellPosition();
   If(GetGlobalVar(0) == 0 && NN>0  )
   {
      data0.A_SendOrder(Enum_Sell,Enum_Entry,NN,Limit_Order);
      SetGlobalVar(0,1);
   }
End

投资者咨询:MQ ,对盘口锁仓怎么写 (文华财经wh9)
来源:文华财经  日期:2018-6-21 13:39
 data,那一行什么意思
技术人员回复
日期:2018-6-21 13:57

 定义数据区,编写以IF1809合约为例,判断对应的持仓并针对IF1809进行锁仓

 

具体根据您需要交易的合约来定义就可以

投资者咨询:MQ ,对盘口锁仓怎么写 (文华财经wh9)
来源:文华财经  日期:2018-6-21 13:39
 GetGlobalVar(0) == 0,这句话啥意思,我的问题有点多哈 ,这句话不太明白
技术人员回复
日期:2018-6-21 14:03

 1楼锁仓的思路需要使用A_SendOrder语句发委托进行锁仓

 

而A_SendOrder函数满足条件就会执行一次,所以如果不适用 GetGlobalVar(0) == 0进行控制

 

在锁仓为完全成交之前会一直发空单委托, GetGlobalVar(0) == 0就是限制仅发一次委托

 

具体的用法您可以参考函数说明了解一下

投资者咨询:MQ ,对盘口锁仓怎么写 (文华财经wh9)
来源:文华财经  日期:2018-6-21 13:39

 我进行锁仓后,后面有在这个合约上新开,我后面平仓时,可以分清先对的是哪一个平仓的吗

 

技术人员回复
日期:2018-6-21 14:41

根据交易所规定,除上期所可以设置优先平今外,


国内其他三所都是遵循先开先平的原则执行的,所以其他三所默认都是优先平老仓的
 
上期所合约A_SendOrder第二个参数枚举值写为Enum_ExitToday 可以平今仓,您了解一下