系统交易论坛 - 开拓者期货自动交易平台's Archiver

zejunl 发表于 2010-4-26 23:23

终极下单函数白话解释 A_SendOrder()

[i=s] 本帖最后由 zejunl 于 2010-8-31 17:06 编辑 [/i]

今天发一个贴子,[url=http://www.tradeblazer.net/forum/thread-8232-1-1.html][color=#0000ff]http://www.tradeblazer.net/forum/thread-8232-1-1.html[/color][/url] 是关于在实盘程序化交易中怎样下单的问题,得到了管理员同志的帮助(在这里要感谢一下),有一些心得体会,现在将下单A_SendOrder函数通过通俗易懂的方式描述如下,希望对各位有所帮助,[color=red]如有不足之处,望不吝赐教[/color]。
仔细研究了一下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)
下面将参数替换为可以好理解的词语.
[color=red]A_SendOrder(Buy Or Sell (买入/卖出), Entry(开仓)/Exit(平仓)/ExitToday(平今),fLot(发送委托单量),fPrice(交易价格));
[/color]

[table=98%][tr][td]Buy Or Sell (Enum_Buy(买入)或Enum_Sell(卖出))[/td][td]Entry(开仓)/Exit(平仓)/ExitToday(平今)[/td][td]fLot(发送委托单量)[/td][td]fPrice(交易价格)[/td][td]示例[/td][td][/td][/tr][tr][td]1.建多单使用buy  替换为可用参数Enum_Buy[/td][td]开仓使用Entry 替换为Enum_Entry[/td][td]开多仓单5手[/td][td]价格可指定和使用Q函数,如Q_AskPrice()[/td][td]A_SendOrder(Enum_Buy,Enum_Entry,5,Q_AskPrice());[/td][td][/td][/tr][tr][td]2.平多仓使用sell  替换为可用参数Enum_Sell[/td][td]平仓使用Exit /ExitToday(平今)替换为Enum_Exit(平仓),Enum_ExitToday(平今仓)之一[/td][td]平多仓单5手,也可使用A_BuyPosition()获取[/td][td]价格可指定和使用Q函数,如Q_BidPrice()[/td][td]A_SendOrder(Enum_Sell,Enum_Exit,5,Q_BidPrice()[/td][td][/td][/tr][tr][td]3.建空单使用Sell 替换为可用参数Enum_Sell[/td][td]开仓使用Entry,替换为Enum_Entry[/td][td]开空仓单5手[/td][td]价格可指定和使用Q函数,如Q_BidPrice()[/td][td]A_SendOrder(Enum_Sell,Enum_Entry,5,Q_BidPrice());[/td][td][/td][/tr][tr][td]4.平空单使用Buy 替换为可用参数Enum_Buy[/td][td]平仓使用Exit /ExitToday(平今)替换为Enum_Exit(平仓),Enum_ExitToday(平今仓)之一[/td][td]开空仓单5手,也可使用A_SellPosition()获取[/td][td]价格可指定和使用Q函数,如Q_AskPrice()[/td][td]A_SendOrder(Enum_Buy,Enum_Exit,5,Q_AskPrice());[/td][td][/td][/tr][/table]Edit by :Zejunl

[[i] 本帖最后由 zejunl 于 2010-4-26 23:28 编辑 [/i]]

lh948 发表于 2010-4-27 09:04

补充:避免重复发单,要配合全局变量使用

欲速不达 发表于 2010-5-14 21:09

该函数全局变量如何写

请教:该函数的全局变量代码架构如何写?好像开拓者只有序列变量。

zejunl 发表于 2010-7-20 15:21

看看赔子怎么样了。

leevolvo 发表于 2010-7-27 08:25

好贴。开拓者是好东西,我也正在努力学习中。

newtimes 发表于 2010-7-29 16:12

[quote]补充:避免重复发单,要配合全局变量使用
[size=2][color=#999999]lh948 发表于 2010-4-27 09:04[/color] [url=http://www.tradeblazer.net/forum/redirect.php?goto=findpost&pid=47979&ptid=8250][img]http://www.tradeblazer.net/forum/images/common/back.gif[/img][/url][/size][/quote]
我也遇到这个问题,请管理员老大给个使用全局变量控制罚单的例子好吗?多谢!

speed_fj 发表于 2010-7-30 17:45

A_SendOrder() 如何发市价单?

zejunl 发表于 2010-8-18 17:13

[i=s] 本帖最后由 zejunl 于 2010-8-18 17:14 编辑 [/i]

回7#
Q_AskPrice()    Q_BidPrice()

[color=Red]Q_BidPrice[/color]
说明        当前公式应用商品的最新买盘价格。
语法        Numeric Q_BidPrice(Integer nIndex=0)
参数        nIndex 买卖盘数组的索引值,以0为基值递增,默认值为0。
备注        当前公式应用商品的最新最新买盘价格,返回值为浮点数。如果Index小于0或者大于等于BidAskSize,则返回无效值。
示例        无


[color=Red]Q_AskPrice[/color]
说明        当前公式应用商品的最新卖盘价格。
语法        Numeric Q_AskPrice(Integer nIndex=0)
参数        nIndex 买卖盘数组的索引值,以0为基值递增,默认值为0。
备注        当前公式应用商品的最新卖盘价格,返回值为浮点数。如果Index小于0或者大于等于BidAskSize,则返回无效值。
示例        无

zejunl 发表于 2010-8-18 17:15

[b] [url=http://www.tradeblazer.net/forum/redirect.php?goto=findpost&pid=52751&ptid=8250]7#[/url] [i]speed_fj[/i] [/b]
回7#
Q_AskPrice()    Q_BidPrice()

[color=Red]Q_BidPrice[/color]
说明        当前公式应用商品的最新买盘价格。
语法        Numeric Q_BidPrice(Integer nIndex=0)
参数        nIndex 买卖盘数组的索引值,以0为基值递增,默认值为0。
备注        当前公式应用商品的最新最新买盘价格,返回值为浮点数。如果Index小于0或者大于等于BidAskSize,则返回无效值。
示例        无


[color=Red]Q_AskPrice[/color]
说明        当前公式应用商品的最新卖盘价格。
语法        Numeric Q_AskPrice(Integer nIndex=0)
参数        nIndex 买卖盘数组的索引值,以0为基值递增,默认值为0。
备注        当前公式应用商品的最新卖盘价格,返回值为浮点数。如果Index小于0或者大于等于BidAskSize,则返回无效值。
示例        无

kings425 发表于 2011-7-25 12:12

记号,留名

yangrc 发表于 2011-10-21 10:31

不错,谢谢

Amymylove 发表于 2011-10-24 08:54

好东西,学习了

slarkmonk 发表于 2011-10-27 13:04

好贴留名学习

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.