Script: Commercio aperto

Commercio aperto:

Questa funzione esegue la logica principale dell'apertura di un'operazione. Calcola il prezzo di apertura, i livelli di take profit e di stop loss in base alle informazioni sul simbolo e ai parametri forniti dall'utente. Prepara una richiesta di negoziazione (MqlTradeRequest) con le informazioni necessarie come simbolo, volume, tipo di ordine, slippage, commento, numero magico, ecc. Richiamare la funzione OrderSend per inviare la richiesta di negoziazione e ottenere il risultato. Funzione SetTypeFillingBySymbol: determina il tipo di esecuzione dell'ordine (riempimento o annullamento, immediato o annullamento o restituzione) in base alla politica di esecuzione del simbolo. Funzione GetMinTradeLevel: calcola il livello minimo di negoziazione in base al livello di blocco e al livello di stop del simbolo. Regola il livello minimo per garantire che sia entro certi limiti e restituisce il risultato.

Author: Manuel Gonzales

Come posso aggiungerlo a MT5?
Luis Gonzalo Mira Pintos #:
Come posso aggiungerlo a MT5?

Ciao Luis, è uno script che può essere utilizzato come funzione negli Expert Advisor.
Una volta installato, trascina l'icona dalla sezione "Script" alla finestra del simbolo in cui desideri eseguirlo.
Saluti.

Luis Gonzalo Mira Pintos #:
Come posso aggiungerlo a MT5?
const express = require("express");
const bodyParser = require("body-parser");

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

/*
JSON previsto da 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 del bot Breakout in esecuzione sulla porta 3000");
});