欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MT4开发(2) - 第一个下单程序

程序员文章站 2022-07-13 15:00:57
...

第一个下单程序

1. 交易权限

按照下图勾选上
* 允许自动交易(第一个选项)

MT4开发(2) - 第一个下单程序

2. 交易函数

int  OrderSend( 
   string   symbol,              // 货币对 
   int      cmd,                 // 交易指令 
   double   volume,              // 交易手数
   double   price,               // 交易价格 
   int      slippage,            // 滑点 
   double   stoploss,            // 止损价 
   double   takeprofit,          // 止盈价 
   string   comment=NULL,        // 交易备注 
   int      magic=0,             // 魔法数字 
   datetime expiration=0,        // 挂单有效期
   color    arrow_color=clrNONE  // 颜色 
);

3. 一个交易程序的例子

void OnStart()
  {
//---   
   // 获取市场中约定的最小的止损/止盈价格与买卖现价的点数
   double minstoplevel = MarketInfo(Symbol(), MODE_STOPLEVEL); 
   Print("Minimum Stop Level=", minstoplevel, " points"); 

   // 获取当前卖价
   double price = Ask;

   // 设置止损价为当前买入价减去最小StopLevel
   double stopLoss = NormalizeDouble(Bid - minstoplevel * Point, Digits);
   // 设置止盈价为当前卖出价减去最小StopLevel
   double takeProfit = NormalizeDouble(Bid + minstoplevel * Point, Digits);

   // symbol      按当前货币对下单 - Symbol()
   // cmd         交易指令为买入 - 市价买入 OP_BUY
   // volume      交易手数 - 1个标准手
   // price       交易金额 - 当前卖价 Ask
   // slippage    交易滑点 - 允许滑点3个点
   // stopLoss    止损价
   // takeProfit  止盈价
   // comment     备注
   // magicNumber 魔法数字
   // expiration  挂单有效期 - 0 市价买入忽略有效期
   // color       颜色 - 在图表窗口中显示
   int ticket = OrderSend(Symbol(), OP_BUY, 1, price, 3, stopLoss, takeProfit, "My order", 16384, 0, clrGreen);

   // 下单失败,ticket = -1, 通过 GetLastError() 获取更多错误信息
   if (ticket < 0)
     {
      Print("OrderSend failed with error #", GetLastError());
     }
   // 下单成功 ticket >= 0,等于0是什么情况 ?
   else
     {
      Print("OrderSend placed successfully"); 
     }
  }
//+------------------------------------------------------------------+

4. 运行

将上面的逻辑放到MyFirstScript.mq4中,拖到EUR/USD窗口运行

MT4开发(2) - 第一个下单程序

第一笔交易:订单号 39729030
当前卖价 1.24246
当前买价 1.24263

Script 加载运行OnStart时下单
已当前卖价 1.2423 市价买入 1 手,止损价 1.24236,止盈价 1.24256

结果:
交易止盈平仓,平仓价 1.24259,实际利率亏损 4刀(为啥?)

相关标签: 量化交易