Untitled

 avatar
unknown
plain_text
2 years ago
4.7 kB
7
Indexable
<script>
  document.addEventListener('DOMContentLoaded', function () {
    fetch('https://api.binance.com/api/v3/exchangeInfo')
      .then(response => response.json())
      .then(data => {
        const symbols = data.symbols.filter(item => item.symbol.endsWith('USDT')).map(item => item.symbol);
        const selectElement = document.getElementById('symbol');
        symbols.forEach(symbol => {
          const option = document.createElement('option');
          option.value = symbol;
          option.textContent = symbol;
          selectElement.appendChild(option);
        });
      })
      .catch(error => {
        console.error('An error occurred:', error);
      });
  });

  function startSocket() {
    var symbol = document.getElementById("symbol").value;
    var interval = document.getElementById("interval").value;

    fetch(`https://api.binance.com/api/v1/klines?symbol=${symbol.toUpperCase()}&interval=${interval}`)
      .then(response => response.json())
      .then(data => {
        var chartData = data.map(item => [
          item[0],
          parseFloat(item[1]),
          parseFloat(item[2]),
          parseFloat(item[3]),
          parseFloat(item[4])
        ]);

        // Fibonacci seviyelerini hesapla
        var fibonacciLevels = calculateFibonacciLevels(chartData);

        // Grafik oluştur ve Fibonacci seviyelerini ekle
        Highcharts.stockChart('chart', {
          rangeSelector: {
            selected: 1
          },
          title: {
            text: `${symbol} Candlestick Chart with Fibonacci Levels`
          },
          series: [{
            type: 'candlestick',
            name: 'Candlestick',
            data: chartData
          }, {
            type: 'line',
            name: 'Fibonacci Level 0',
            data: [[chartData[0][0], fibonacciLevels.level0], [chartData[chartData.length - 1][0], fibonacciLevels.level0]],
            color: 'red',
            lineWidth: 2
          }, {
            type: 'line',
            name: 'Fibonacci Level 0.236',
            data: [[chartData[0][0], fibonacciLevels.level236], [chartData[chartData.length - 1][0], fibonacciLevels.level236]],
            color: 'green',
            lineWidth: 2
          }, {
            type: 'line',
            name: 'Fibonacci Level 0.382',
            data: [[chartData[0][0], fibonacciLevels.level382], [chartData[chartData.length - 1][0], fibonacciLevels.level382]],
            color: 'blue',
            lineWidth: 2
          }, {
            type: 'line',
            name: 'Fibonacci Level 0.618',
            data: [[chartData[0][0], fibonacciLevels.level618], [chartData[chartData.length - 1][0], fibonacciLevels.level618]],
            color: 'purple',
            lineWidth: 2
          }, {
            type: 'line',
            name: 'Fibonacci Level 1',
            data: [[chartData[0][0], fibonacciLevels.level1], [chartData[chartData.length - 1][0], fibonacciLevels.level1]],
            color: 'orange',
            lineWidth: 2
          }]
        });

        var timeDiv = document.getElementById('time');
        var now = new Date();
        var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZone: 'Europe/Istanbul' };
        timeDiv.innerHTML = 'Zaman: ' + now.toLocaleDateString('tr-TR', options);

        // WebSocket bağlantısı
        var socket = new WebSocket(`wss://stream.binance.com:9443/ws/${symbol.toLowerCase()}@trade`);

        socket.onopen = function (event) {
          console.log(`Connected to Binance WebSocket for ${symbol}`);
        };

        socket.onmessage = function (event) {
          var liveData = JSON.parse(event.data);
          console.log(`Received live data for ${symbol}: `, liveData);
          // Grafik üzerinde canlı veriyi güncelleyin
          // Grafikteki son mum çubuğunu canlı veriyle güncellemek için gerekli işlemleri yapın
        };

        socket.onclose = function (event) {
          console.log(`Connection closed for ${symbol}`);
        };
      })
      .catch(error => console.error('Error:', error));
  }

  function calculateFibonacciLevels(data) {
    const highPrices = data.map(item => item[2]);
    const lowPrices = data.map(item => item[3]);
    const maxPrice = Math.max(...highPrices);
    const minPrice = Math.min(...lowPrices);
    const diff = maxPrice - minPrice;

    return {
      level0: maxPrice,
      level236: maxPrice - (0.236 * diff),
      level382: maxPrice - (0.382 * diff),
      level618: maxPrice - (0.618 * diff),
      level1: minPrice
    };
  }
</script>
</body>
</html>
Editor is loading...
Leave a Comment