MT4插件开发简介(开发思路)

提示:如果您对本文有疑问可以在下方留言,博主会每天抽空回复一下


前言

MT4开发官方提供的有managerAPI和serverAPI,本文将介绍一下二者的区别,以及什么情况下是使用mannagerAPI什么情况使用serverAPI,希望对你开发有所帮助,如有疑问可在下方留言


一、managerAPI是什么?

如下图,
在这里插入图片描述

MT4的管理软件你应该用过, 我们用managerAPI可以开发出像这种软件的功能。
managerAPI需要服务器的IP:端口 以及manager的用户名密码才能有权限去调用manager接口
使用managerAPI开发需要连接服务器 代码如下:

   if((res=manager->Connect("IP:端口"))!=RET_OK || (res=manager->Login(用户ID,"密码"))!=RET_OK)
     {
      printf("%d (%s)\n",res,manager->ErrorDescription(res));
      return ;
     }

managerAPI所使用的函数都包含在一个动态库中,所以开发出来的程序会带有一个DLL文件
这种方式开发难度较低,一般我们没有服务器权限,有manager权限的情况下 比如白标 可以通过这种方式去开发相关的功能,比如市面上很多CRM就是通过managerAPI去开发的,基本常用功能都能找得到具体方法可以看我另一篇博文
[https://blog.csdn.net/asplh/article/details/127154191?spm=1001.2014.3001.5501]
需要c++DEMO的话可在下方留言索取

二、serverAPI

serverAPI需要有服务器的权限,因为这种方式开发出来的是一个dll插件,插件需要我们放入到服务器MT4主目录的plugin目录中。这样MT4在重启后就可以加在刚刚我们的插件了。
加在后我们可以再管理软件中看到我们刚刚的插件
在这里插入图片描述
MT4serverAPI不需要像managerAPI那样知道管理用户名和密码,而是只要放入服务器中就自动加在调用,serverAPI部分功能是managerAPI也能实现的,不过serverAPI核心功能managerAPI无法做到的。
serverAPI的核心是HOOK。也就是说他可以拦截用户的一些操作比如连接服务器,登录,下单等等功能 这里就不一一列举了,后面会挑一些常用的讲一下。
举例来说:
如果我们在插件中有MtSrvUserLogin,当用户有登录操作的时候,MtSrvUserLogin就会拦截到此操作,
并且获取到用户信息

struct UserInfo
  {
   //--- common settings
   int               login;                      // login
   char              group[16];                  // group
   char              password[16];               // password
   char              name[128];                  // name
   char              ip[16];                     // IP address
   //--- access flags
   int               enable;                     // enable
   int               enable_change_password;     // allow to change password
   int               enable_read_only;           // allow to open/positions (TRUE-may not trade)
   int               flags;                      // internal data
   //--- trade parameters
   int               leverage;                   // leverage
   int               agent_account;              // agent account
   //--- trade data
   double            balance;                    // balance
   double            credit;                     // credit
   double            prevbalance;                // previous day balance
   ConGroup          grp;                        // client group
  };


在比如比较火的跟单系统,我们可以拦截MtSrvTradesAdd,当有下单操作的时候服务端会第一时间拦截到此操作。我们可以根据需求编写后续代码


总结

不管使用哪种方式去开发适合自己需求的是最好的,并不是serverAPI一定比managerAPI要好,反之也一样,得根据自己需求去选择。后续会陆续更新一些MT4相关技术,想了解更多可以关注一下,有任何疑问可在下方留言交流

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值