0

市面上有很多基于MT4做的二元交易。 
这里只简单说下我做的思路。 
主要要处理两个方面的事,一个是在客户端对二元信息的 展示,另一个是在服务端处理二元信息的交互以及对下单逻辑的处理。

1.客户端 
客户端可以自己做一个程序,做个登录界面, 
这里写图片描述 
然后去 服务端验证用户名以及密码,验证成功后,加载MT4本身的客户端程序,使其自动登录,并附加(SetWindowsHookEx)一个自己写的dll文件到该进程上。 
附加dll是 为了拦截一些MT4界面上的消息,当点击二元商品时,弹出一个自己的窗口界面(如下图)并关闭MT4本身的下单界面,在这个界面中进行二元的操作与信息展示 
这里写图片描述
对于二元的下单以及信息获取,这里可以自己维护通讯,直接与服务端通讯,不需要与 MT4客户端发生任何关系。

2.服务端 
服务端主要要处理 这么几个事,首先是客户端的一些数据请求的回应,例如验证用户帐号,获取二元的持仓,二元的下单等。 
这里可以利用MT4插件的扩展事件 
int APIENTRY MtSrvTelnet(const ULONG ip, char *buf, const int maxlen) 
来做,MT4会将收到的数据转发到插件的这个事件中,事件处理后,会将数据返回给客户端。

由于二元业务是根据时间对单据进行结算,所以需要在插件中启动一个 线程,时刻检查单据的情况,在插件的启动事件

int APIENTRY   MtSrvStartup(CServerInterface *server)  
  • 1

启动一个线程即可,在线程里对持仓单据持续检查,发现时间到了的就进行平仓操作,并计算相关的盈亏更新到单据中。 
另外要注意启动的线程要在插件停止事件中关闭

void APIENTRY  MtSrvCleanup(void)
  • 1

,否则可能会造成MT4服务端启时崩溃。

https://blog.csdn.net/MT4Develop/article/details/78464175

关闭 返回顶部
联系我们
Copyright © 2011. 聚财吧. All rights reserved.