Preço Spot: -- USDT
Preço Futuros: -- USDT
Spread Atual: ---%
Spread de Entrada: ---%
<!DOCTYPE html>
<html lang=”pt”>
<head>
<meta charset=”UTF-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
<title>Monitor de Arbitragem</title>
<script>
let interval;
async function fetchPrice(url, corretora) {
try {
let response = await fetch(url);
let data = await response.json();
if (corretora === “Gate.io”) {
return parseFloat(data[0]?.last || data[0]?.close || data.last || data.ticker?.last);
} else if (corretora === “MEXC” && url.includes(“contract”)) {
return parseFloat(data?.data?.lastPrice || data?.data?.price);
} else if (corretora === “MEXC”) {
return parseFloat(data.price || data[0]?.last);
} else {
return parseFloat(data.price);
}
} catch (error) {
console.error(“Erro ao buscar preço:”, error);
return null;
}
}
async function updateSpread() {
const moeda = document.getElementById(“moeda”).value.toUpperCase();
const corretoraCompra = document.getElementById(“corretoraCompra”).value;
const corretoraVenda = document.getElementById(“corretoraVenda”).value;
const precoEntradaCompra = parseFloat(document.getElementById(“precoEntradaCompra”).value);
const precoEntradaVenda = parseFloat(document.getElementById(“precoEntradaVenda”).value);
const spreadMinimo = parseFloat(document.getElementById(“spreadMinimo”).value);
let precoSpotUrl, precoFuturosUrl;
if (corretoraCompra === “Binance”) {
precoSpotUrl = `https://api.binance.com/api/v3/ticker/price?symbol=${moeda}USDT`;
} else if (corretoraCompra === “Gate.io”) {
precoSpotUrl = `https://api.gateio.ws/api/v4/spot/tickers?currency_pair=${moeda}_USDT`;
} else if (corretoraCompra === “MEXC”) {
precoSpotUrl = `https://api.mexc.com/api/v3/ticker/price?symbol=${moeda}USDT`;
}
if (corretoraVenda === “Binance”) {
precoFuturosUrl = `https://fapi.binance.com/fapi/v1/ticker/price?symbol=${moeda}USDT`;
} else if (corretoraVenda === “MEXC”) {
precoFuturosUrl = `https://contract.mexc.com/api/v1/contract_ticker?symbol=${moeda}_USDT`;
}
const precoSpot = await fetchPrice(precoSpotUrl, corretoraCompra);
const precoFuturos = await fetchPrice(precoFuturosUrl, corretoraVenda);
if (precoSpot && precoFuturos) {
document.getElementById(“precoSpot”).innerText = `Preço Spot: ${precoSpot.toFixed(2)} USDT`;
document.getElementById(“precoFuturos”).innerText = `Preço Futuros: ${precoFuturos.toFixed(2)} USDT`;
const spreadAtual = ((precoFuturos – precoSpot) / precoSpot) * 100;
const spreadEntrada = ((precoEntradaVenda – precoEntradaCompra) / precoEntradaCompra) * 100;
document.getElementById(“spreadAtual”).innerText = `Spread Atual: ${spreadAtual.toFixed(2)}%`;
document.getElementById(“spreadEntrada”).innerText = `Spread de Entrada: ${spreadEntrada.toFixed(2)}%`;
if (spreadAtual <= spreadMinimo) {
alert(“O spread atingiu o valor mínimo configurado!”);
}
} else {
console.log(“Erro ao buscar preços, verifique as APIs.”);
}
}
function toggleMonitoramento() {
const botao = document.getElementById(“toggleButton”);
if (botao.innerText === “Iniciar”) {
interval = setInterval(updateSpread, 5000);
botao.innerText = “Pausar”;
botao.style.backgroundColor = “red”;
} else {
clearInterval(interval);
botao.innerText = “Iniciar”;
botao.style.backgroundColor = “green”;
}
}
</script>
</head>
<body>
<h1>Monitor de Arbitragem</h1>
<label>Moeda:
<input type=”text” id=”moeda” placeholder=”Digite o ativo (ex: BTC)”>
</label>
<br><br>
<label>Corretora de Compra: Preço de Entrada na Compra:
<select id=”corretoraCompra”>
<option value=”Binance”>Binance</option>
<option value=”Gate.io”>Gate.io</option>
<option value=”MEXC”>MEXC</option>
</select>
<input type=”number” id=”precoEntradaCompra” value=”0″>
</label>
<br><br>
<label>Corretora de Venda (Mercado de Futuros): Preço de Entrada na Venda:
<select id=”corretoraVenda”>
<option value=”Binance”>Binance</option>
<option value=”MEXC”>MEXC</option>
</select>
<input type=”number” id=”precoEntradaVenda” value=”0″>
</label>
<br><br>
<label>Spread Mínimo para Notificação:
<input type=”number” id=”spreadMinimo” value=”1″>
</label>
<br><br>
<p id=”precoSpot”>Preço Spot: — USDT</p>
<p id=”precoFuturos”>Preço Futuros: — USDT</p>
<p id=”spreadAtual”>Spread Atual: —%</p>
<p id=”spreadEntrada”>Spread de Entrada: —%</p>
<br>
<button id=”toggleButton” onclick=”toggleMonitoramento()” style=”background-color: green; color: white; padding: 10px; border: none; cursor: pointer;”>Iniciar</button>
</body>
</html>