首先前往github下载
https://github.com/mikha-dev/mt4-websockets
项目
把里面的项目复制到mt4软件目录里。
操作如下:
点开文件->打开数据文件夹
复制进去。
记得点击工具->选项
勾选这些选项。
我们会在
mt4里看到websockets这个文件,右键修改
#property version "1.00"
#property strict
#include <lib_websockets.mqh>
input string Host = "http://xxx.xxx.xxx:8080";//这里是websocket服务器地址
input int HeatBeatPeriod = 45;
int commandPingMilliseconds = 1000;//这里是1秒发送一次
WebSocketsProcessor *ws;
int OnInit() {
ws = new WebSocketsProcessor(Host, 30, 45);
ws.SetHeader( "account", AccountNumber() );
ws.Init();
//ws.Send( "test" + GetTickCount() );
EventSetMillisecondTimer(commandPingMilliseconds);
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason) {
EventKillTimer();
Deinit();
}
void OnTick() {
}
void OnTimer() {
//Close[0] 是实时卖价
//_Symbol 是当前行情价格
string syt = _Symbol+"_"+Close[0];
//这里是发送到websocket服务器里的数据
ws.Send(syt);
}
修改后记得点 上面的
接着在mt4软件里
拖一个行情窗口出来
双击
websockets这个文件
正常会运行成功的。
如果不行
可以看下日志和EA
接着这websockets服务器上就可以看到行情的实时数据了。
nodejs 事例
var ws = require("nodejs-websocket")
// Scream server example: "hi" -> "HI!!!"
var server = ws.createServer(function (conn) {
try{
conn.on("text", function (str) {
let data_ts = [];
let dts = str.split("_");
if(dts[0] && dts[1]){
console.log(dts[0])
console.log(dts[1])
}
})
}catch(e){
console.log(e)
}
conn.on("close", function (code, reason) {
console.log(code)
console.log(reason)
})
}).listen(8080)