查看: 1687|回复: 3
打印 上一主题 下一主题

[公式] 两个交易函数在使用中出现的问题说明

[复制链接]
跳转到指定楼层
1
发表于 2012-7-20 13:54:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
A_SendOrder函数调用后提示下单量为0
示例代码:
Params  
         Stringsymbol1("SR301");  
Vars
         Numeric price1;      
Begin
price1 = Q_AskPrice(Symbol1);
         A_SendOrder(Enum_Sell,Enum_Exit,G_BuyPosition,price1,Symbol1);
End
问题说明:
以上代码在执行对当前SR301平仓过程中,实际本地有SR301的多仓,但报单后频繁出现下单量为0或持仓量不足平的提示。
问题原因:
A_SendOrder函数是策略交易函数,G_BuyPosition获取的却是当前帐户合约买仓数量,所以在指令的执行过程中,会出现获取持仓数量不准确的情况,导致下单操作执行失败。在上面代码中,应该把A_SendOrder改为G_SendOrder去实现下单操作。
G_SendOrder函数调用后下单量不正确?
示例代码:
Params  
         Stringsymbol1("SR301");  
Stringsymbol1("SR303");  
Vars
         Numeric price1;
         Numeric price2;      
Begin
price1 = Q_AskPrice(Symbol1);
price2 = Q_BidPrice(Symbol2);
         G_SendOrder(Enum_Buy,Enum_Exit,G_SellPosition,price1,symbol1);G_SendOrder(Enum_Sell,Enum_Exit,G_BuyPosition,price2,symbol2);
End
问题说明:
以上代码同时实现SR301SR303合约的套利平仓过程中,实际本地有SR301的空仓和SR303的多仓,但指令执行后频繁出现下单量为0的提示。
问题原因:
G_SendOrder函数是账户交易函数,G_BuyPosition获取的当前帐户合约买仓数量,G_SellPosition获取的当前帐户合约卖仓数量,但在指令的编写中,两个获取持仓的函数没有给定对应需要获取持仓的合约代码参数,导致下单操作过程中交易指令获取的是当前图表对应的合约的持仓量,虽然客户账户实际指定持仓数量并不为0,但策略监控的日志中,一直提示下单量为0,导致交易指令执行失败。
在上面代码中,应该把G_SellPositionG_BuyPosition分别改为G_SellPosition(symbol1)G_BuyPosition(symbol2)去实现。
另外对于这类问题,为了确认获取持仓函数的取值结果,可以将函数的返回值先赋给一个变量并显示,这样便于定位问题。





2
发表于 2012-7-20 14:08:38 | 只看该作者
顶,学习了
3
发表于 2012-7-20 14:11:14 | 只看该作者
学习学习
4
发表于 2013-5-15 14:07:12 | 只看该作者
学习学习~~~~楼主辛苦了!
您需要登录后才可以回帖 登录 | 注册入住  

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号