1. OrderSend()函数语法,参数说明
OrderSend()函数主要功能用于开仓和挂单交易。语法如下:
int OrderSend(string Symbol, int Type, double Lots, double Price, int Slippage, double Stoploss, double TakeProfit, string Comment=NULL, int Magic=0, datetime Expiration=0, color arrow_color=CLR_NONE )
参数:
Symbol: 交易货币对代码。一个字符串,表示该商品的交易,例如 GBPJPY ,XAUUSD。也可以直接使用Symbol()代表当前图表的商品。
-
Type:类型;购买方式。可以是任意的购买方式的枚举值(整数)。订单类型为买入或者卖出,市场单、停损或限价单。包括以下常量:
- OP_BUY (0)
- OP_SELL (1)
- OPBUYSTOP (2)
- OPSELLSTOP (3)
- OP_BUYLIMIT (4)
- OPSELLLIMIT (5)
Lots:购买手数。迷你手(0.1),微型手(0.01)。
Price:交易首选价。开单的时候,买入市价为市场卖价(ASK),卖出市价为市场买价(BID)。对于预挂单来说,开仓价必须和现价有价差,选择低于或高于当前的价格。
Slippage:滑点。买卖订单的最大允许滑点数。当设定最大滑点后经济商不支持,会自动忽略这个参数。
Stoploss:止损水平;止损价。多单之下/空单之上。交易止损单时,可以在开新仓时进行,也可以在开新仓之后进行。如果设置为0交易不会存在。
TakeProfit:盈利水平;停利价。多单之上/空单之下。可以计算出预计的获利,预先挂单。可以在开新仓时进行,也可以在开新仓之后进行。设置为0,没有获利时就被使用了。
Comment:注释文本。注释的最后部分可以由服务器修改。
Magic:自定义数字;订单的指定号码。可以当作用户定义的识别码使用。
Expiration:到期时间,订单过期时间。(只限挂单使用,预挂单可以设定到期时间)。市场订单没有到期一说,所以参数设置为“0”就行。
arrow_color:图表上开仓箭头标记的颜色。如果没有参数或者设置为CLR_NONE,开仓箭头就不在图表上绘制了。
2. 举栗
int ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, Ask-25*Point, Ask+25*Point, "My order #2", 16308, 0, Green);
if(ticket < 0)
{
Print("OrderSend Error Code = #", GetLastError());
return(0);
}
发出订单后,由交易服务器返回订单号码,如果失败就返回-1;获取额外错误信息使用GetLastError()函数。