设为首页 收藏本站 切换语言

MT4进阶到MT5速成之路下单

| 发表于 2022-11-3 10:50:02 | 显示全部楼层 |复制链接
一、下单函数
  1. uint OrderSends(ENUM_ORDER_TYPE type,double clot,double price)
  2.   {
  3. //--- 准备请求
  4.    MqlTradeRequest request= {};
  5.    request.action=TRADE_ACTION_DEAL;         //
  6.    request.magic=magic;                      // ORDER_MAGIC
  7.    request.symbol=Symbol();                      // 交易品种
  8.    request.volume=clot;                          // 0.1为单位的交易量
  9.    request.sl=0;                                // 没有指定止损价位
  10.    request.tp=0;                                // 没有指定盈利价位
  11.    request.type_filling=ORDER_FILLING_IOC;
  12. //--- 形成订单类型
  13.    request.type=type;                // 订单类型
  14.    request.deviation=5;
  15.    request.comment="1";
  16. //--- 形成挂单价格
  17.    request.price=NormalizeDouble(price,Digits());  // 开盘价
  18. //--- 发送交易请求
  19.    MqlTradeResult result= {0};
  20.    bool res=OrderSend(request,result);
  21.    if(!res)
  22.       msgbox(GetLastError());
  23. //--- 编写服务器回复到日志
  24. //   Print(__FUNCTION__,":",result.comment,"->",clot);
  25.    if(result.retcode==10016)
  26.       Print(result.bid,result.ask,result.price);
  27. //--- 返回交易服务器回复的代码
  28.    return result.retcode;
  29.   }
复制代码


用法:
double ask=SymbolInfoDouble(NULL,SYMBOL_ASK);
double bid=SymbolInfoDouble(NULL,SYMBOL_BID);

OrderSends(ORDER_TYPE_SELL,lot,bid);
OrderSends(ORDER_TYPE_BUY,lot,ask);

二、挂单函数
  1. uint OrderSendp(ENUM_ORDER_TYPE type,double price,double slp)
  2.   {
  3. //--- 准备请求
  4.    MqlTradeRequest request= {};
  5.    request.action=TRADE_ACTION_PENDING;         // 设置挂单
  6.    request.magic=magic;                  // ORDER_MAGIC
  7.    request.symbol=Symbol();                      // 交易品种
  8.    request.volume=lot;                          // 0.1为单位的交易量
  9.    request.sl=slp;                                // 没有指定止损价位
  10.    request.tp=0;                                // 没有指定盈利价位
  11. //--- 形成订单类型
  12.    request.type=type;                // 订单类型
  13.    request.deviation=5;
  14.    request.comment=DoubleToString(price,Digits());
  15. //--- 形成挂单价格
  16.    request.price=NormalizeDouble(price,Digits());  // 开盘价
  17. //--- 发送交易请求
  18.    MqlTradeResult result= {0};
  19.    bool res=OrderSend(request,result);
  20.    if(!res)
  21.       msgbox(GetLastError());
  22. //--- 编写服务器回复到日志
  23. //   Print(__FUNCTION__,":",result.comment,"->",lot);
  24.    if(result.retcode==10016)
  25.       Print(result.bid,result.ask,result.price);
  26. //--- 返回交易服务器回复的代码
  27.    return result.retcode;
  28.   }
复制代码



用法:
double ask=SymbolInfoDouble(NULL,SYMBOL_ASK)+100*Point();
double bid=SymbolInfoDouble(NULL,SYMBOL_BID)-100*Point();
double sl=100*Point();
OrderSendp(ORDER_TYPE_BUY_STOP,ask,ask-sl);
OrderSendp(ORDER_TYPE_SELL_STOP,bid,bid+sl);
如果有帮助,就支持一下我呗
举报

评论 使用道具

热门主题

精彩评论5

qwe11
CCC
| 发表于 2022-11-3 11:33:29 | 显示全部楼层
没整MT5,,,用MT4
举报

点赞 评论 使用道具

daerwushen
DD
| 发表于 2022-11-3 13:01:39 | 显示全部楼层
MT5复杂多了
举报

点赞 评论 使用道具

ken138888
B
| 发表于 2022-11-3 14:06:52 | 显示全部楼层
等我学完c++再来
举报

点赞 评论 使用道具

三哥
DD
| 发表于 2022-11-3 21:54:46 | 显示全部楼层
MT5好用 谁用谁知道
举报

点赞 评论 使用道具

ea12213
C
| 发表于 2022-11-4 19:46:21 | 显示全部楼层
这就能进阶了
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)