You are on page 1of 4

<!

DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Spreads</title>
<style>
body {
font-family: Arial, sans-serif;
}

.button-container {
display: flex;
justify-content: center;
margin-bottom: 20px;
}

.button {
border: none;
background-color: #f0f0f0;
padding: 10px 20px;
cursor: pointer;
font-size: 16px;
margin-right: 10px;
}

.button.active {
background-color: #ccc;
}

.content {
display: none;
}

.content.active {
display: block;
}

table {
width: 100%;
border-collapse: collapse;
}

th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

th {
background-color: #f2f2f2;
font-weight: bold;
}
</style>
</head>
<body>
<div class="button-container">
<button class="button active" id="fxBtn" onclick="changeContent('fx')">FX
Spreads</button>
<button class="button" id="kriptoBtn"
onclick="changeContent('kripto')">Crypto Spreads</button>
</div>

<div id="fx" class="content active">


<!-- FX içeriği burada yer alacak -->
</div>
<div id="kripto" class="content">
<!-- Kripto içeriği burada yer alacak -->
<select id="pairSelect">
<option value="BTCUSDT">BTC-USD</option>
<option value="ETHUSDT">ETH-USD</option>
<option value="XRPUSDT">XRP-USD</option>
</select>
<table>
<thead>
<tr>
<th>Pair</th>
<th>Spread</th>
<th>Exchange</th>
</tr>
</thead>
<tbody>
<tr>
<td id="pairCell">BTC-USD</td>
<td id="binance-spread">Loading...</td>
<td>Binance</td>
</tr>
<tr>
<td id="pairCell2">BTC-USD</td>
<td id="coinbase-spread">Loading...</td>
<td>Coinbase</td>
</tr>
<tr>
<td id="pairCell3">BTC-USD</td>
<td id="kucoin-spread">Loading...</td>
<td>Kucoin</td>
</tr>
<tr>
<td id="pairCell4">BTC-USD</td>
<td id="kraken-spread">Loading...</td>
<td>Kraken</td>
</tr>
</tbody>
</table>
</div>

<script>
function changeContent(contentId) {
const contentElements = document.querySelectorAll(".content");
const buttonElements = document.querySelectorAll(".button");
contentElements.forEach(content => content
.classList.remove("active"));
buttonElements.forEach(button => button.classList.remove("active"));

document.getElementById(contentId).classList.add("active");
if (contentId === "fx") {
document.getElementById("fxBtn").classList.add("active");
} else if (contentId === "kripto") {
document.getElementById("kriptoBtn").classList.add("active");
}
}

const pairSelect = document.getElementById("pairSelect");


pairSelect.addEventListener("change", () => {
const selectedPair = pairSelect.value;
const displayedPair = selectedPair.slice(0, 3) + '-' +
selectedPair.slice(3);
document.getElementById("pairCell").innerText = displayedPair;
document.getElementById("pairCell2").innerText = displayedPair;
document.getElementById("pairCell3").innerText = displayedPair;
document.getElementById("pairCell4").innerText = displayedPair;
getSpreadData(selectedPair);
});

async function getSpreadData(pair) {


try {
// Binance spread verilerini al
const binanceResponse = await
fetch(`${binanceAPIUrl}/api/v3/ticker/24hr?symbol=${pair}`);
if (!binanceResponse.ok) {
throw new Error(`Binance API error: $
{binanceResponse.status}`);
}
const binanceData = await binanceResponse.json();
const binanceSpread = parseFloat(binanceData.askPrice) -
parseFloat(binanceData.bidPrice);
document.getElementById("binance-spread").innerText =
binanceSpread.toFixed(2);

// Coinbase spread verilerini al


const coinbasePair = pair.slice(0, 3) + '-' + pair.slice(3);
const coinbaseResponse = await fetch(`${coinbaseAPIUrl}/products/$
{coinbasePair}/ticker`);
if (!coinbaseResponse.ok) {
throw new Error(`Coinbase API error: $
{coinbaseResponse.status}`);
}
const coinbaseData = await coinbaseResponse.json();
const coinbaseSpread = parseFloat(coinbaseData.ask) -
parseFloat(coinbaseData.bid);
document.getElementById("coinbase-spread").innerText =
coinbaseSpread.toFixed(2);

// Kucoin spread verilerini al


const kucoinResponse = await
fetch(`${kucoinAPIUrl}/api/v1/market/orderbook/level1?symbol=${pair}`);
if (!kucoinResponse.ok) {
throw new Error(`Kucoin API error: ${kucoinResponse.status}`);
}
const kucoinData = await kucoinResponse.json();
const kucoinSpread = parseFloat(kucoinData.data.askPrice) -
parseFloat(kucoinData.data.bidPrice);
document.getElementById("kucoin-spread").innerText =
kucoinSpread.toFixed(2);

// Kraken spread verilerini al


const krakenPair = pair.slice(0, 3) + '_' + pair.slice(3);
const krakenResponse = await
fetch(`${krakenAPIUrl}/0/public/Ticker?pair=${krakenPair}`);
if (!krakenResponse.ok) {
throw new Error(`Kraken API error: ${krakenResponse.status}`);
}
const krakenData = await krakenResponse.json();
const krakenSpread = parseFloat(krakenData.result[krakenPair].a[0])
- parseFloat(krakenData.result[krakenPair].b[0]);
document.getElementById("kraken-spread").innerText =
krakenSpread.toFixed(2);

} catch (error) {
console.error(error);
}
}

getSpreadData(pairSelect.value
// Verileri belirli aralıklarla güncelle
setInterval(() => {
getSpreadData(pairSelect.value);
}, 3000); // 3 saniye

// API URL'lerini tanımla


const binanceAPIUrl = "https://api.binance.com";
const coinbaseAPIUrl = "https://api.pro.coinbase.com";
const kucoinAPIUrl = "https://api.kucoin.com";
const krakenAPIUrl = "https://api.kraken.com";
</script>
</body>
</html>

You might also like