终极下单函数白话解释 A_SendOrder() - TradeBlazer公式 [开拓者 TB]
作者:
开拓者 TB 来源:
cxh99.com 发布时间:2012年07月02日 点击数:
【
收藏到本网的会员中心】
- 咨询内容:
本帖最后由 zejunl 于 2010-8-31 17:06 编辑
今天发一个贴子,http://www.tradeblazer.net/forum/thread-8232-1-1.html 是关于在实盘程序化交易中怎样下单的问题,得到了管理员同志的帮助(在这里要感谢一下),有一些心得体会,现在将下单A_SendOrder函数通过通俗易懂的方式描述如下,希望对各位有所帮助,如有不足之处,望不吝赐教。
仔细研究了一下Bool A_SendOrder(Integer BuyOrSell,Integer EntryOrExit,Numeric fLot,Numeric fPrice) 函数,有一些心得体会。
首先我们来看一下A_SendOrder()函数的使用说明。
/*---------------------------------------------------A_SendOrder--------------------------------------------------------------
A_SendOrder
说明
针对当前公式应用的帐户、商品发送委托单。
语法
Bool A_SendOrder(Integer BuyOrSell,Integer EntryOrExit,Numeric fLot,Numeric fPrice)
参数
BuyOrSell 发送委托单的买卖类型,取值为Enum_Buy(买入)或Enum_Sell(卖出)之一;
EntryOrExit 发送委托单的开平仓类型,取值为Enum_Entry(开仓),Enum_Exit(平仓),Enum_ExitToday(平今仓)之一;
fLot 委托单的交易数量;
fPrice 委托单的交易价格。
备注
针对当前公式应用的帐户、商品发送委托单,发送成功返回True,发送失败返回False。
该函数可针对叠加商品进行处理,可用Data1.A_SendOrder(...)进行调用。
该函数直接发单,不经过任何确认,并会在每次公式计算时发送,一般需要配合着仓位头寸进行条件处理,在不清楚运行机制的情况下,请慎用。
示例
If (A_BuyPosition()>0 && A_GetOpenOrderCount()==0)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition(),Q_BidPrice());
...
}
---------------------------------------------------A_SendOrder--------------------------------------------------------------*/
在函数参数中我们很清楚的看到了根据条件和修改函数的参数去进行下单。
下面把开仓多单/空单和平仓多单/空单 其中平仓又分为平多单/平空单 的关系组合如下。
A_SendOrder(Integer BuyOrSell,Integer EntryOrExit,Numeric fLot,Numeric fPrice)
下面将参数替换为可以好理解的词语.
A_SendOrder(Buy Or Sell (买入/卖出), Entry(开仓)/Exit(平仓)/ExitToday(平今),fLot(发送委托单量),fPrice(交易价格));
Buy Or Sell (Enum_Buy(买入)或Enum_Sell(卖出))Entry(开仓)/Exit(平仓)/ExitToday(平今)fLot(发送委托单量)fPrice(交易价格)示例1.建多单使用buy 替换为可用参数Enum_Buy开仓使用Entry 替换为Enum_Entry开多仓单5手价格可指定和使用Q函数,如Q_AskPrice()A_SendOrder(Enum_Buy,Enum_Entry,5,Q_AskPrice());2.平多仓使用sell 替换为可用参数Enum_Sell平仓使用Exit /ExitToday(平今)替换为Enum_Exit(平仓),Enum_ExitToday(平今仓)之一平多仓单5手,也可使用A_BuyPosition()获取价格可指定和使用Q函数,如Q_BidPrice()A_SendOrder(Enum_Sell,Enum_Exit,5,Q_BidPrice()3.建空单使用Sell 替换为可用参数Enum_Sell开仓使用Entry,替换为Enum_Entry开空仓单5手价格可指定和使用Q函数,如Q_BidPrice()A_SendOrder(Enum_Sell,Enum_Entry,5,Q_BidPrice());4.平空单使用Buy 替换为可用参数Enum_Buy平仓使用Exit /ExitToday(平今)替换为Enum_Exit(平仓),Enum_ExitToday(平今仓)之一开空仓单5手,也可使用A_SellPosition()获取价格可指定和使用Q函数,如Q_AskPrice()A_SendOrder(Enum_Buy,Enum_Exit,5,Q_AskPrice());Edit by :Zejunl
[ 本帖最后由 zejunl 于 2010-4-26 23:28 编辑 ]
- TB技术人员:
补充:避免重复发单,要配合全局变量使用
该函数全局变量如何写
- TB客服:
请教:该函数的全局变量代码架构如何写?好像开拓者只有序列变量。
- 网友回复:
看看赔子怎么样了。
- 网友回复:
好贴。开拓者是好东西,我也正在努力学习中。 |