MT4开发(2) - 第一个下单程序
程序员文章站
2022-07-13 15:00:57
...
第一个下单程序
1. 交易权限
按照下图勾选上
* 允许自动交易(第一个选项)
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窗口运行
第一笔交易:订单号 39729030
当前卖价 1.24246
当前买价 1.24263
Script 加载运行OnStart时下单
已当前卖价 1.2423 市价买入 1 手,止损价 1.24236,止盈价 1.24256
结果:
交易止盈平仓,平仓价 1.24259,实际利率亏损 4刀(为啥?)
上一篇: 优化ElasticSearch写入效率
下一篇: Unity对象池应用
推荐阅读
-
百度小程序300天:月活超2亿 开发者超8万
-
[Asp.Net Core] Blazor Server Side 开发教程 - 安装环境与运行第一个程序
-
python基础(2):python的安装、第一个python程序
-
OpenGL开发教程之--第一个OpenGL程序
-
使用ASP.NET Web API和Web API Client Gen使Angular 2应用程序的开发更加高效
-
利用VS Code开发你的第一个AngularJS 2应用程序
-
我的第一个上线小程序,案例实战篇二——LayaAir游戏开始界面开发
-
JavaWeb从开发环境搭建,到第一个servlet程序(图文)
-
第一个Django应用程序_part2
-
Python运行第一个PySide2的窗体程序