MT5에 어떻게 추가할 수 있나요?
Luis Gonzalo Mira Pintos #:
MT5에 어떻게 추가할 수 있나요?
MT5에 어떻게 추가할 수 있나요?
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.json());
/*
MT5에서 예상되는 JSON:
{
"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("포트 3000에서 Breakout bot API가 실행 중");
});
오픈 트레이드:
이 기능은 거래를 개시하는 주요 로직을 수행합니다. 사용자가 제공한 심볼 정보와 매개변수를 기반으로 개시 가격, 이익실현가, 손절가를 계산합니다. 심볼, 거래량, 주문 유형, 슬리피지, 코멘트, 매직넘버 등 필요한 정보가 포함된 거래 요청(MqlTradeRequest)을 준비합니다. OrderSend 함수를 호출하여 거래 요청을 전송하고 결과를 받습니다. 심볼별 주문 유형 설정: 심볼의 주문 체결 정책에 따라 주문 체결 유형(체결 또는 취소, 즉시 또는 취소 또는 반환)을 결정합니다. GetMinTradeLevel 함수: 심볼의 동결 레벨과 스톱 레벨을 기준으로 최소 거래 레벨을 계산합니다. 최소 레벨이 특정 한도 이내가 되도록 조정하고 결과를 반환합니다.
Author: Manuel Gonzales