2.4 OrderSend ( )订单传送函数

2.4 OrderSend ( )订单传送函数


OrderSend( )函数用于MQL 下单语法如下:

● 代码( Symhol) 。一个字符串,表示该货币对的交易,例如JPYUSD。符号()函数用于当前图表的货币对。

● 类型(Type) 。订单类型为买入或卖出,市场单、停损或限价单。这是一个整数值,代表以下常量:

OP_BUY - Buy market order (integer value 0)

OP_SELL - Sell market order (integer value 1)

OPBUYSTOP - Buy stop order (integer value 2)

OPSELLTOP - Sell stop order (integer value 3)

OP_BUYLIMIT - Buy limit order (integer value 4 )

OPSELLLIMIT 一Sell limit order (integer value 5)

● 交易手量( Lots) 。如果经纪商支持, 则可以指定迷你手(0.1 )或微型手(0.01) 。

● 价格。当你要开单时,买入市价为市场卖价(ASK) ,卖出市价为市场买价( BID) 。对于挂单交易,该价格即会高于或低于目前的价格。

● 滑点( Slippage) 。当自动交易设定最大滑点时,如经纪商不使用该设定,即会忽略此参数。

● 止损( StopLoss) 。止损价。止损价格会在多单之下或空单之上。如果设置为"0" ,将不会有此交易。

● 停利( TakeProfit) 。和止损单为相反模式。如果设置为"0" ,没有获利将被使用。

● 注释( Comment) 。一个可选的字符串,将作为命令注释。注释显示在终端窗口中,根据窗口商品标签。下单注释也可以用命令标识符。

● 自定义数字( MagicNumber) 。一个可选的整数,该数字用于EA 中可进行订单辨识。强烈建议你使用此值。

● 到期( Expiration) 。预挂单可设定到期l时间& 并非所有的经纪商都采用这种类型下单。

● 指标( Arrow) 。图表上的指标可以变换颜色来表示开仓价和时间。如果没有指定颜色,指标将无法绘制。

OrderSend ( )订单的函数返回。如果没有下订单,则是错误条件,返回值为" -1" 。我们可以保存订单或全局变量或静态变量供以后使用。如果订单没有放在应有的地方,则会出现设定条件错误,我们可以分析错误,并根据返回的错误代码进行更正。

2.4.1 市价单交易

下面是一个市价下单的例子。

我们假设变量LotSize 、Slippage 、BuyStopLoss 、BuyTakeProfit 和MagicNumber 已被运算。

Symbol( )函数返回当前图表符号。我们几乎只会在当前图表货币对上下单。OP_BUY 以市价下多单。ASK 是在MQL 存储最近卖价的预定义变数。请记住:买进多单时用市场卖出价(ASK) 。

滑点是通过一个外部变量。滑点参数是整数,表示允许价格滑动的点差。如果你的经纪商使用4 位数的报价, 1 点等于1 个点(此处的点为Pip ,为报价位数最后一位)。如果你的经纪商提供3 位数和5 位数的报价, 1 点则等于0.1 点。在这种情况下,在设定滑点时必须在最后加一个"0" 。

我们添加了通用注释至"买单",因为市场订单没有到期,所以到期参数为"0" 。在图表上显示的指标为绿色。

下面是使用市场价卖出的一个例子(使用上述参数) :

使用OP_SELL 的为空单。我们用市场买价来当开仓价格,这说明了卖单卖出价格为市场买进价格。"空单"是订单注释,我们用红色箭头来区别多单。

2.4.2 挂止损(利)单

预挂单和市价单的区别: 市价单为目前市价开仓;预挂单在下单前止损,并且利润必须先计算。未确定的预挂价格,我们可以通过交易模型计算出来,或将其设为一个外部参数。买入止损单, PendingPrice 必须大于目前的卖出价。我们假设BuyStopLoss 和BuyTakeProfit 相对于PendingPrice 已被计算出。以下为范例:

我们用OP_BUYSTOP 表示买入止损单, PendingPrice 则表示订单开仓价。没有时限表示该订单到期,平仓。卖出止损订单, PendingPrice 必须低于当时的买入价。在这个例子中,我们将添加订单的到期时间,使用可变的期限。到期时间必须大于当前服务器时间。以下为范例:

2.4.3 限价单交易

限价单相似于止损单的模式,相对于目前的价格和订单该预挂单价得为相反呈现。买入限价单,挂单价格必须低于当时的买入价。以下为范例:

我们用OP_BUYUMIT表示购买限价单。否则参数是相同于止损单。对于卖出限价单,挂单价格必须高于目前的卖出价。以下是卖出限价单范例: