По сути, я хочу, чтобы мой локальный терминал MetaTrader 5 выполнял POST-запросы каждый раз, когда меняется курс BID пары EUR/USD.
И я собираюсь console.log
сделать это на своем сервере nodejs:
const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const path = require('path');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
let env = process.env.NODE_ENV || 'development';
const port = 443;
const connection = 'mongodb://localhost:27017/db';
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
mongoose.connect(connection)
.then((db) => {
console.log('MongoDB up and running!');
app.post('/fxrates', (req, res) => {
console.log(req);
});
// MY ROUTES for the client
})
.catch(console.log);
http.listen(port, () => {
console.log(`listening on ${port}`);
});
Вот мой скрипт MQ5, который скомпилирован без ошибок. Но когда я запускаю его, я не вижу ничего зарегистрированного в моем терминале сервера nodejs.
И я вижу, как Print("Test:",b);
скрипт печатается внутри Meta Trader Experts Tab
Я также добавил в Терминал MetaTrader 5 -> Инструменты -> Параметры -> Советники
http://localhost:443/fxrates
а также
http://localhost/fxrates
http://localhost
MQ5-скрипт
//+------------------------------------------------------------------+
//| fxrates.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//- string headers;
string headers;
char data[], result[];
string str = "data=value"; // post data variables to send
StringToCharArray(str,data);
string b = CharArrayToString(data);
Print("Test:",b); // just test if good ... it is.
WebRequest("POST","http://localhost:443/fxrates",NULL,NULL,3000,data,ArraySize(data),result,headers);
}
//+------------------------------------------------------------------+