错错熊 发表于 2012-7-20 13:54:19

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

A_SendOrder函数调用后提示下单量为0?示例代码:Params         Stringsymbol1("SR301");Vars         Numeric price1;       Beginprice1 = 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;       Beginprice1 = 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问题说明:以上代码同时实现SR301和SR303合约的套利平仓过程中,实际本地有SR301的空仓和SR303的多仓,但指令执行后频繁出现下单量为0的提示。问题原因:G_SendOrder函数是账户交易函数,G_BuyPosition获取的当前帐户合约买仓数量,G_SellPosition获取的当前帐户合约卖仓数量,但在指令的编写中,两个获取持仓的函数没有给定对应需要获取持仓的合约代码参数,导致下单操作过程中交易指令获取的是当前图表对应的合约的持仓量,虽然客户账户实际指定持仓数量并不为0,但策略监控的日志中,一直提示下单量为0,导致交易指令执行失败。在上面代码中,应该把G_SellPosition和G_BuyPosition分别改为G_SellPosition(symbol1)和G_BuyPosition(symbol2)去实现。另外对于这类问题,为了确认获取持仓函数的取值结果,可以将函数的返回值先赋给一个变量并显示,这样便于定位问题。

汪新博2 发表于 2012-7-20 14:08:38

顶,学习了

xmalbb 发表于 2012-7-20 14:11:14

学习学习

F_Phoebe 发表于 2013-5-15 14:07:12

学习学习~~~~楼主辛苦了!
页: [1]
查看完整版本: 两个交易函数在使用中出现的问题说明