Scripts: Comércio aberto

Comércio aberto:

Essa função executa a lógica principal da abertura de uma negociação. Ela calcula o preço de abertura, os níveis de take profit e stop loss com base nas informações do símbolo e nos parâmetros fornecidos pelo usuário. Prepara uma solicitação de negociação (MqlTradeRequest) com as informações necessárias, como símbolo, volume, tipo de ordem, slippage, comentário, número mágico etc. Chame a função OrderSend para enviar a solicitação de negociação e obter o resultado. Função SetTypeFillingBySymbol: determina o tipo de atendimento da ordem (Preencher ou Cancelar, Imediato ou Cancelar ou Retornar) de acordo com a política de atendimento do símbolo. Função GetMinTradeLevel: calcula o nível mínimo de negociação com base no nível de congelamento e no nível de parada do símbolo. Ajusta o nível mínimo para garantir que ele esteja dentro de certos limites e retorna o resultado.

Author: Manuel Gonzales

Como posso adicioná-lo ao MT5?
Luis Gonzalo Mira Pintos #:
Como posso adicioná-lo ao MT5?

Olá, Luis, é um script que pode ser usado como função em Expert Advisors.
Depois de instalado, arraste o ícone do script para a janela do símbolo onde você deseja executá-lo.
Atenciosamente.

Luis Gonzalo Mira Pintos #:
Como posso adicioná-lo ao MT5?
const express = require("express");
const bodyParser = require("body-parser");

const app = express();
app.use(bodyParser.json());

/*
JSON esperado do MT5:
{
"symbol": "EURUSD",
"candles": [
{ "high": 1,0921, "low": 1,0882, "close": 1,0910 },
...
],
"period": 20
}
*/

app.post("/breakout", (req, res) => {
const { candles, period } = req.body;

if (!candles || candles.length < period + 1) {
return res.json({ signal: "NONE" });
}

const lookback = candles.slice(1, period + 1);

const highestHigh = Math.max(...lookback.map(c => c.high));
const lowestLow = Math.min(...lookback.map(c => c.low));

const currentClose = candles[0].close;

let signal = "NONE";

if (currentClose > highestHigh) signal = "BUY";
if (currentClose < lowestLow) signal = "SELL";

res.json({
signal,
highestHigh,
lowestLow
});
});

app.listen(3000, () => {
console.log("API do bot Breakout em execução na porta 3000");
});