开拓者期货期权程序化系统交易论坛

标题: 请教管理员关于A_SendOrder函数问题 [打印本页]

作者: ST振翔    时间: 2014-3-5 14:28:29     标题: 请教管理员关于A_SendOrder函数问题

本帖最后由 ST振翔 于 2014-3-5 14:41 编辑

策略为反手模型,即满足开多条件的话,则平空仓开多仓。但时常发生成交不了的现象,因为人不总是在电脑旁边,这样容易浪费时机,还需要后续用监控器再操作一下。原有代码如下:
If(close[1]<ema[1])
     {
       MyEntryPrice=Open;
       SellShort(1,MyEntryPrice);
   }
If(close[1]>ema[1])
)
  {
       MyEntryPrice=Open;
       Buy(1,MyEntryPrice);
   }
现在想改成用A_SendOrder函数来控制开仓,不考虑测试和滑点等问题,是否代码改成如下就可以了?同时MyEntryPrice值需要止损用,还是用OPEN取值:
If(close[1]<ema[1] && A_SellPosition()==0)
     {
       MyEntryPrice=Open;
       A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);
      }
If(close[1]>ema[1]  && A_BuyPosition()==0)
  {
       MyEntryPrice=Open;
       A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
   }

总而言之,希望能用A_SendOrder函数达到和原来代码差不多的效果,在实盘中稍微有点价格偏差也没关系。
作者: ample    时间: 2014-3-19 10:53:38

楼主的代码,理论上可以,但是实际执行中,A_SellPosition()、 A_BuyPosition()的值不见得能及时得到,tb程序每个tick都会触发,可能会存在重复开仓的问题
作者: sym9800pro    时间: 2014-3-19 20:10:09

楼主别忘了写平仓操作哦
作者: cantor3383    时间: 2014-5-19 20:56:05

ample 发表于 2014-3-19 10:53
楼主的代码,理论上可以,但是实际执行中,A_SellPosition()、 A_BuyPosition()的值不见得能及时得到,tb程 ...

我也遇到同样的问题,请问AMPLE管理员有办法解决吗?,急,谢谢
作者: ample    时间: 2014-6-5 13:27:46

参考公式开发指南中的例子,可以使用延时的方法,但是延时多久呢?根据交易的实际情况,设置可以接受的时间吧,不一定能完全保证

作者: camedia    时间: 2014-8-25 13:52:47

这个不用全局变量控制会重复发单吧。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2