• 30-06-2025, 03:53:46
    #1
    Dostlar ben botlarla analizi ve işlem alma işini bıraktım, burada da bu ara popüler,
    yok 300$ ver gruba gir
    yok referansımla kaydol 500$ yatır yok bilmem ne
    olmadı herkese bot 100$

    dünya kadar kafa patlattım emek verdim benden yana helaldir.
    satmaya çalışmamanız, insanlara zarar vermemeniz halinde.

    Localhostta kurun sakin sakin analiz yapın yol gösterir iyi kötü işleme siz karar vereceksiniz yine ..
    Hosting'e yüklerseniz güvenlik açığı oluşacaktır bu bakımdan backend dosyasını saklayın veya api anahtarını girmeyin veya güvenlik kodu login vs birşey yapın işte

    scriptin yaptığı yapacağı hatalı analiz yada alacağınız işlemlerden kendiniz sorumlusunuz.

    Kripto çok risklidir paranızı hızla tamamen kaybedebilirsiniz.
    küçük rakamlarla test ediniz 10$ 2x 3x gibi..

    Analiz için sadece dosyaları oluşturup bir dizine atın ekstra ayara gerek yoktur hepsi api üzerinden olduğu için yormaz sizi.

    analiz sonrası işlem açmak için api anahtarına ihtiyacınız olacak, api almayı bile bilmiyorsanız zaten bu işlere kalkışmayın, nasıl alınacağını anlatmayacağım.
    api anahtarınızı ve screet key'inizi backend.php dosyası içerisinden değiştiriniz.

    analizinizi ve işleminizi saniyeler içinde yapabilirsiniz.

    scriptin kurulumu yada kullanımıyla ilgili her hangi bir destek verilmeyecektir.
    konu altına sorarsanız gördükçe yanıtlarım.

    Neyi analiz ediyor bu script derseniz;


    buda bonusu tradingview de benden bedave!




    Geçelim kodlara rar zip vs vermeyeceğim direk apaçık kaynak birinci elden..

    index.php
    <!DOCTYPE html>
    <html lang="tr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Binance Teknik Analiz Sistemi</title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <!-- TradingView Widget Script -->
        <script type="text/javascript" src="https://s3.tradingview.com/tv.js"></script>
        <script src="script.js"></script>
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }
            
            body {
                font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                min-height: 100vh;
                padding: 20px;
            }
            
            .container {
                max-width: 1200px;
                margin: 0 auto;
                background: white;
                border-radius: 15px;
                box-shadow: 0 20px 40px rgba(0,0,0,0.1);
                overflow: hidden;
            }
            
            .header {
                background: linear-gradient(135deg, #2c3e50 0%, #34495e 100%);
                color: white;
                padding: 30px;
                text-align: center;
            }
            
            .header h1 {
                font-size: 2.5em;
                margin-bottom: 10px;
            }
            
            .header p {
                opacity: 0.9;
                font-size: 1.1em;
            }
            
            .form-section {
                padding: 20px;
                background: #f8f9fa;
            }
            
            .form-grid {
                display: flex;
                flex-wrap: wrap;
                gap: 5px;
                margin-bottom: 15px;
            }
            
            .form-group {
                flex: 1 1 150px;
                min-width: 0;
                margin-right: 5px;
                display: flex;
                flex-direction: column;
            }
            
            .form-group label {
                font-weight: 600;
                margin-bottom: 3px;
                color: #2c3e50;
                font-size: 12px;
            }
            
            .form-group input, .form-group select {
                padding: 5px;
                border: 1px solid #e9ecef;
                border-radius: 4px;
                font-size: 13px;
                transition: border-color 0.3s;
            }
            
            .form-group input:focus, .form-group select:focus {
                outline: none;
                border-color: #667eea;
            }
            
            .btn {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: white;
                padding: 15px 30px;
                border: none;
                border-radius: 8px;
                font-size: 16px;
                font-weight: 600;
                cursor: pointer;
                transition: transform 0.2s;
            }
            
            .btn:hover {
                transform: translateY(-2px);
            }
            
            .btn:disabled {
                opacity: 0.6;
                cursor: not-allowed;
                transform: none;
            }
            
            .results {
                padding: 40px;
                display: none;
            }
            
            .score-grid {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 30px;
                margin-bottom: 30px;
            }
            
            .score-card {
                background: white;
                border-radius: 15px;
                padding: 25px;
                box-shadow: 0 10px 30px rgba(0,0,0,0.1);
                text-align: center;
            }
            
            .score-card.long {
                border-left: 5px solid #27ae60;
            }
            
            .score-card.short {
                border-left: 5px solid #e74c3c;
            }
            
            .score-value {
                font-size: 3em;
                font-weight: bold;
                margin: 15px 0;
            }
            
            .score-card.long .score-value {
                color: #27ae60;
            }
            
            .score-card.short .score-value {
                color: #e74c3c;
            }
            
            .indicators-grid {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
                gap: 20px;
                margin-bottom: 30px;
            }
            
            .indicator-card {
                background: white;
                border-radius: 10px;
                padding: 20px;
                box-shadow: 0 5px 15px rgba(0,0,0,0.08);
            }
            
            .indicator-header {
                display: flex;
                justify-content: between;
                align-items: center;
                margin-bottom: 15px;
            }
            
            .indicator-name {
                font-weight: 600;
                color: #2c3e50;
            }
            
            .signal-badge {
                padding: 5px 12px;
                border-radius: 20px;
                font-size: 12px;
                font-weight: 600;
                text-transform: uppercase;
            }
            
            .signal-badge.long {
                background: #d4edda;
                color: #155724;
            }
            
            .signal-badge.short {
                background: #f8d7da;
                color: #721c24;
            }
            
            .signal-badge.neutral {
                background: #e2e3e5;
                color: #383d41;
            }
            
            .tp-sl-grid {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 20px;
            }
            
            .tp-sl-card {
                background: white;
                border-radius: 10px;
                padding: 20px;
                box-shadow: 0 5px 15px rgba(0,0,0,0.08);
            }
            
            .loading {
                text-align: center;
                padding: 40px;
                display: none;
            }
            
            .spinner {
                border: 4px solid #f3f3f3;
                border-top: 4px solid #667eea;
                border-radius: 50%;
                width: 50px;
                height: 50px;
                animation: spin 1s linear infinite;
                margin: 0 auto 20px;
            }
            
            @keyframes spin {
                0% { transform: rotate(0deg); }
                100% { transform: rotate(360deg); }
            }
            
            .error {
                background: #f8d7da;
                color: #721c24;
                padding: 15px;
                border-radius: 8px;
                margin: 20px 0;
                display: none;
            }
            
            .trade-buttons {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 20px;
                margin-top: 30px;
            }
            
            .trade-btn {
                padding: 15px;
                border: none;
                border-radius: 8px;
                font-size: 16px;
                font-weight: 600;
                cursor: pointer;
                transition: all 0.3s;
            }
            
            .trade-btn.long {
                background: #27ae60;
                color: white;
            }
            
            .trade-btn.short {
                background: #e74c3c;
                color: white;
            }
            
            .trade-btn:hover {
                transform: translateY(-2px);
                box-shadow: 0 5px 15px rgba(0,0,0,0.2);
            }
            
            /* TradingView Widget Stilleri */
            .tradingview-widgets {
                
                margin-bottom: 30px;
            }
            
            @media (max-width: 1200px) {
                .tradingview-widgets {
                    grid-template-columns: 1fr;
                }
            }
            
            .widget-container {
                background: white;
                border-radius: 10px;
                padding: 10px;
                box-shadow: 0 5px 15px rgba(0,0,0,0.08);
                overflow: hidden;
            }
            
            #tradingview_price_chart,
            #tradingview_tech_analysis {
                height: 100%;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="header">
                <h1>🚀 Binance Teknik Analiz</h1>
                <p>Canlı verilerle Long/Short pozisyon analizi</p>
            </div>
            
            <div class="form-section">
                <form id="analysisForm">
                    <div class="form-grid">
                        <div class="form-group">
                            <label for="symbol">İşlem Çifti</label>
                            <input type="text" id="symbol" name="symbol" value="" required>
                        </div>
                        <div class="form-group">
                            <label for="timeframe">Zaman Dilimi</label>
                            <select id="timeframe" name="timeframe" required>
                                <option value="1m">1 Dakika</option>
                                <option value="3m"  selected>3 Dakika</option>
                                <option value="5m">5 Dakika</option>
                                <option value="15m">15 Dakika</option>
                                <option value="30m">30 Dakika</option>
                                <option value="1h">1 Saat</option>
                                <option value="4h">4 Saat</option>
                                <option value="8h">8 Saat</option>
                                <option value="12h">12 Saat</option>
                                <option value="1d">1 Gün</option>
                            </select>
                        </div>
                        <div class="form-group">
                            <label for="amount">Miktar (USDT)</label>
                            <input type="number" id="amount" name="amount" min="10" value="" required>
                        </div>
                        <div class="form-group">
                            <label for="tpAmount">TP Miktarı (USDT)</label>
                            <input type="number" id="tpAmount" name="tpAmount" min="0.1" step="0.1" value="">
                        </div>
                        <div class="form-group">
                            <label for="slAmount">SL Miktarı (USDT)</label>
                            <input type="number" id="slAmount" name="slAmount" min="0.1" step="0.1" value="">
                        </div>
                    </div>
                    
                    <button type="submit" class="btn" id="analyzeBtn">
                        📊 Analiz Et
                    </button>
                </form>
            </div>
            
            <div class="loading" id="loading">
                <div class="spinner"></div>
                <p>Binance API'den veriler çekiliyor ve analiz ediliyor...</p>
            </div>
            
            <div class="error" id="error"></div>
            
            <div class="results" id="results">
                <h2 style="text-align: center; margin-bottom: 30px; color: #2c3e50;">📈 Analiz Sonuçları</h2>
                
                <div class="score-grid">
                    <div class="score-card long">
                        <h3>LONG Güven Skoru</h3>
                        <div class="score-value" id="longScore">0</div>
                        <p>/ 100</p>
                    </div>
                    
                    <div class="score-card short">
                        <h3>SHORT Güven Skoru</h3>
                        <div class="score-value" id="shortScore">0</div>
                        <p>/ 100</p>
                    </div>
                </div>
                
                <h3 style="margin-bottom: 20px; color: #2c3e50;">🔍 Teknik İndikatörler</h3>
                <div class="indicators-grid" id="indicators"></div>
                
                <h3 style="margin-bottom: 20px; color: #2c3e50;">🎯 TP/SL Önerileri</h3>
                <div class="tp-sl-grid" id="tpslGrid"></div>
                
                <h3 style="margin: 30px 0 20px; color: #2c3e50;">📈 TradingView Grafikleri</h3>
                <div class="tradingview-widgets">
                    <div class="widget-container" style="width:100%;max-width:100%;">
                        <div class="tradingview-widget-container" id="tradingviewChart">
                            <div id="tradingview_price_chart"></div>
                        </div>
                    </div>
                </div>
                
                <div class="trade-buttons">
                    <button class="trade-btn long" onclick="executeTrade('long')">
                        📈 LONG Pozisyon Aç
                    </button>
                    <button class="trade-btn short" onclick="executeTrade('short')">
                        📉 SHORT Pozisyon Aç
                    </button>
                </div>
            </div>
        </div>
        
        <script src="script.js"></script>
    </body>
    </html>
    api.php
    <?php
    header('Content-Type: application/json');
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST');
    header('Access-Control-Allow-Headers: Content-Type');
    
    if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
        http_response_code(405);
        echo json_encode(['error' => 'Method not allowed']);
        exit;
    }
    
    $input = json_decode(file_get_contents('php://input'), true);
    $symbol = strtoupper($input['symbol'] ?? 'BTCUSDT');
    $timeframe = $input['timeframe'] ?? '15m';
    $amount = floatval($input['amount'] ?? 100);
    
    // Hassas sayı formatı için yardımcı fonksiyon
    function formatNumber($value, $precision = 8) {
        if (is_array($value)) {
            foreach ($value as $key => $val) {
                $value[$key] = formatNumber($val, $precision);
            }
            return $value;
        }
        return is_numeric($value) ? round((float)$value, $precision) : $value;
    }
    
    // Binance Futures API'den veri çekme
    function fetchBinanceData($symbol, $interval, $limit = 200) {
        // Symbol'den USDT kısmını çıkar, API zaten ekliyor
        $cleanSymbol = str_replace('USDT', '', $symbol);
        $url = "https://fapi.binance.com/fapi/v1/klines?symbol={$cleanSymbol}USDT&interval={$interval}&limit={$limit}";
        
        $context = stream_context_create([
            'http' => [
                'timeout' => 10,
                'user_agent' => 'Mozilla/5.0 (compatible; TechnicalAnalysis/1.0)'
            ]
        ]);
        
        $response = file_get_contents($url, false, $context);
        
        if ($response === false) {
            throw new Exception('Binance Futures API bağlantı hatası');
        }
        
        $data = json_decode($response, true);
        
        if (!$data) {
            throw new Exception('Geçersiz API yanıtı');
        }
        
        return $data;
    }
    
    // OHLCV verilerini işleme - PRECISION FIX
    function processOHLCV($rawData) {
        $processed = [];
        
        foreach ($rawData as $candle) {
            $processed[] = [
                'timestamp' => (int)$candle[0],
                'open' => (float)$candle[1],
                'high' => (float)$candle[2],
                'low' => (float)$candle[3],
                'close' => (float)$candle[4],
                'volume' => (float)$candle[5]
            ];
        }
        
        return $processed;
    }
    
    // EMA hesaplama - FIXED
    function calculateEMA($prices, $period) {
        if (count($prices) < $period) {
            return [end($prices)]; // Yetersiz veri durumunda son fiyatı döndür
        }
        
        $ema = [];
        $multiplier = 2 / ($period + 1);
        
        // İlk EMA değeri SMA ile başlar
        $sum = 0;
        for ($i = 0; $i < $period; $i++) {
            $sum += $prices[$i];
        }
        $sma = $sum / $period;
        $ema[] = $sma;
        
        // Doğru EMA hesaplama
        for ($i = 1; $i < count($prices) - $period + 1; $i++) {
            $ema[] = ($prices[$i + $period - 1] * $multiplier) + ($ema[$i - 1] * (1 - $multiplier));
        }
        
        return $ema;
    }
    
    // SMA hesaplama
    function calculateSMA($prices, $period) {
        if (count($prices) < $period) {
            return [end($prices)]; // Yetersiz veri durumunda son fiyatı döndür
        }
        
        $sma = [];
        
        for ($i = $period - 1; $i < count($prices); $i++) {
            $sum = 0;
            for ($j = $i - $period + 1; $j <= $i; $j++) {
                $sum += $prices[$j];
            }
            $sma[] = $sum / $period;
        }
        
        return $sma;
    }
    
    // MACD hesaplama - FIXED
    function calculateMACD($prices, $fastPeriod = 12, $slowPeriod = 26, $signalPeriod = 9) {
        if (count($prices) < $slowPeriod + $signalPeriod) {
            return [
                'macd' => 0,
                'signal' => 0,
                'histogram' => 0
            ];
        }
        
        $fastEMA = calculateEMA($prices, $fastPeriod);
        $slowEMA = calculateEMA($prices, $slowPeriod);
        
        // Dizi uzunluklarını eşitle
        $macdLine = [];
        $minLength = min(count($fastEMA), count($slowEMA));
        
        for ($i = 0; $i < $minLength; $i++) {
            $macdLine[] = $fastEMA[$i] - $slowEMA[$i];
        }
        
        $signalLine = calculateEMA($macdLine, $signalPeriod);
        $histogram = [];
        
        $signalStart = count($macdLine) - count($signalLine);
        for ($i = 0; $i < count($signalLine); $i++) {
            $histogram[] = $macdLine[$signalStart + $i] - $signalLine[$i];
        }
        
        return [
            'macd' => end($macdLine),
            'signal' => end($signalLine),
            'histogram' => end($histogram)
        ];
    }
    
    // VWAP hesaplama
    function calculateVWAP($data) {
        $totalVolume = 0;
        $totalVolumePrice = 0;
        
        foreach ($data as $candle) {
            $typicalPrice = ($candle['high'] + $candle['low'] + $candle['close']) / 3;
            $totalVolumePrice += $typicalPrice * $candle['volume'];
            $totalVolume += $candle['volume'];
        }
        
        return $totalVolume > 0 ? $totalVolumePrice / $totalVolume : 0;
    }
    
    // ATR hesaplama - FIXED Wilder's smoothing
    function calculateATR($data, $period = 14) {
        if (count($data) < $period + 1) {
            return 0;
        }
        
        $trueRanges = [];
        
        for ($i = 1; $i < count($data); $i++) {
            $high = $data[$i]['high'];
            $low = $data[$i]['low'];
            $prevClose = $data[$i-1]['close'];
            
            $tr1 = $high - $low;
            $tr2 = abs($high - $prevClose);
            $tr3 = abs($low - $prevClose);
            
            $trueRanges[] = max($tr1, $tr2, $tr3);
        }
        
        // Wilder's smoothing method
        $atr = [];
        $firstATR = array_sum(array_slice($trueRanges, 0, $period)) / $period;
        $atr[] = $firstATR;
        
        for ($i = $period; $i < count($trueRanges); $i++) {
            $atr[] = (($atr[count($atr) - 1] * ($period - 1)) + $trueRanges[$i]) / $period;
        }
        
        return end($atr);
    }
    
    // ADX hesaplama - FIXED
    function calculateADX($data, $period = 14) {
        if (count($data) < $period * 2) {
            return 25; // Fallback değer
        }
        
        $plusDM = [];
        $minusDM = [];
        $trueRanges = [];
        
        // Calculate DM and TR
        for ($i = 1; $i < count($data); $i++) {
            $highDiff = $data[$i]['high'] - $data[$i-1]['high'];
            $lowDiff = $data[$i-1]['low'] - $data[$i]['low'];
            
            // +DM and -DM
            if ($highDiff > $lowDiff && $highDiff > 0) {
                $plusDM[] = $highDiff;
            } else {
                $plusDM[] = 0;
            }
            
            if ($lowDiff > $highDiff && $lowDiff > 0) {
                $minusDM[] = $lowDiff;
            } else {
                $minusDM[] = 0;
            }
            
            // True Range
            $high = $data[$i]['high'];
            $low = $data[$i]['low'];
            $prevClose = $data[$i-1]['close'];
            
            $tr1 = $high - $low;
            $tr2 = abs($high - $prevClose);
            $tr3 = abs($low - $prevClose);
            
            $trueRanges[] = max($tr1, $tr2, $tr3);
        }
        
        // Calculate smoothed values using Wilder's method
        $smoothedTR = array_sum(array_slice($trueRanges, 0, $period));
        $smoothedPlusDM = array_sum(array_slice($plusDM, 0, $period));
        $smoothedMinusDM = array_sum(array_slice($minusDM, 0, $period));
        
        $dx = [];
        
        // Continue smoothing and calculate DX
        for ($i = $period; $i < count($trueRanges); $i++) {
            // Wilder's smoothing
            $smoothedTR = $smoothedTR - ($smoothedTR / $period) + $trueRanges[$i];
            $smoothedPlusDM = $smoothedPlusDM - ($smoothedPlusDM / $period) + $plusDM[$i];
            $smoothedMinusDM = $smoothedMinusDM - ($smoothedMinusDM / $period) + $minusDM[$i];
            
            // Calculate +DI and -DI
            $plusDI = ($smoothedTR != 0) ? 100 * ($smoothedPlusDM / $smoothedTR) : 0;
            $minusDI = ($smoothedTR != 0) ? 100 * ($smoothedMinusDM / $smoothedTR) : 0;
            
            // Calculate DX
            $sum = $plusDI + $minusDI;
            if ($sum != 0) {
                $dx[] = 100 * (abs($plusDI - $minusDI) / $sum);
            } else {
                $dx[] = 0;
            }
        }
        
        // Calculate ADX (smoothed DX)
        if (count($dx) >= $period) {
            $adx = array_sum(array_slice($dx, 0, $period)) / $period;
            
            // Continue smoothing ADX
            for ($i = $period; $i < count($dx); $i++) {
                $adx = (($adx * ($period - 1)) + $dx[$i]) / $period;
            }
            
            return $adx;
        }
        
        return 25;
    }
    
    // Pivot Points hesaplama
    function calculatePivotPoints($data) {
        $lastCandle = end($data);
        $high = $lastCandle['high'];
        $low = $lastCandle['low'];
        $close = $lastCandle['close'];
        
        $pivot = ($high + $low + $close) / 3;
        $r1 = (2 * $pivot) - $low;
        $s1 = (2 * $pivot) - $high;
        
        return [
            'pivot' => $pivot,
            'r1' => $r1,
            's1' => $s1
        ];
    }
    
    // Supertrend hesaplama - FIXED
    function calculateSupertrend($data, $period = 10, $multiplier = 3) {
        if (count($data) < $period + 5) {
            return ['signal' => 'neutral', 'value' => 0];
        }
        
        $atr = calculateATR($data, $period);
        if ($atr == 0) {
            return ['signal' => 'neutral', 'value' => 0];
        }
        
        $lastCandle = end($data);
        $hl2 = ($lastCandle['high'] + $lastCandle['low']) / 2;
        
        $upperBand = $hl2 + ($multiplier * $atr);
        $lowerBand = $hl2 - ($multiplier * $atr);
        
        // Simple but correct Supertrend signal
        $signal = $lastCandle['close'] > $lowerBand ? 'buy' : 'sell';
        
        return [
            'signal' => $signal,
            'value' => $signal === 'buy' ? $lowerBand : $upperBand
        ];
    }
    
    // Order Flow hesaplama - IMPROVED
    function calculateOrderFlow($data) {
        $recentCandles = array_slice($data, -20); // Son 20 mum
        $buyVolume = 0;
        $sellVolume = 0;
        
        foreach ($recentCandles as $candle) {
            $bodySize = abs($candle['close'] - $candle['open']);
            $totalRange = max(0.00001, $candle['high'] - $candle['low']); // Sıfıra bölme hatasını önle
            
            if ($candle['close'] > $candle['open']) {
                // Yükselen mum
                $buyRatio = $bodySize / $totalRange;
                $buyVolume += $candle['volume'] * $buyRatio;
                $sellVolume += $candle['volume'] * (1 - $buyRatio);
            } else {
                // Düşen mum
                $sellRatio = $bodySize / $totalRange;
                $sellVolume += $candle['volume'] * $sellRatio;
                $buyVolume += $candle['volume'] * (1 - $sellRatio);
            }
        }
        
        $totalVolume = $buyVolume + $sellVolume;
        $flow = $totalVolume > 0 ? ($buyVolume - $sellVolume) / $totalVolume : 0;
        
        return $flow;
    }
    
    try {
        // Binance'den veri çek
        $rawData = fetchBinanceData($symbol, $timeframe);
        $data = processOHLCV($rawData);
        
        if (count($data) < 50) {
            throw new Exception('Yeterli veri yok');
        }
        
        // Fiyat dizilerini hazırla
        $closes = array_column($data, 'close');
        $highs = array_column($data, 'high');
        $lows = array_column($data, 'low');
        $opens = array_column($data, 'open');
        
        $currentPrice = end($closes);
        
        // Zaman dilimine göre optimize edilmiş parametreler
        $timeframeParams = [
            '1m' => ['ema' => 8, 'macd' => [8, 21, 5]],
            '3m' => ['ema' => 10, 'macd' => [10, 24, 7]],
            '5m' => ['ema' => 12, 'macd' => [12, 26, 9]],
            '15m' => ['ema' => 14, 'macd' => [12, 26, 9]],
            '30m' => ['ema' => 16, 'macd' => [14, 28, 9]],
            '1h' => ['ema' => 20, 'macd' => [16, 30, 9]],
            '4h' => ['ema' => 24, 'macd' => [18, 32, 9]],
            '8h' => ['ema' => 26, 'macd' => [20, 34, 9]],
            '12h' => ['ema' => 28, 'macd' => [22, 36, 9]],
            '1d' => ['ema' => 30, 'macd' => [24, 38, 9]],
            '2d' => ['ema' => 32, 'macd' => [26, 40, 9]],
            '3d' => ['ema' => 32, 'macd' => [26, 40, 9]],
            '1w' => ['ema' => 32, 'macd' => [26, 40, 9]]
        ];
        
        $params = $timeframeParams[$timeframe] ?? $timeframeParams['15m'];
        
        // İndikatörleri hesapla
        $ema = calculateEMA($closes, $params['ema']);
        $currentEMA = end($ema);
        
        $macd = calculateMACD($closes, $params['macd'][0], $params['macd'][1], $params['macd'][2]);
        
        $vwap = calculateVWAP($data);
        
        $orderFlow = calculateOrderFlow($data);
        
        $adx = calculateADX($data);
        
        $pivots = calculatePivotPoints($data);
        
        $atr = calculateATR($data);
        
        $basis = calculateSMA($closes, 20);
        $currentBasis = end($basis);
        
        $supertrend = calculateSupertrend($data);
        
        // Sinyal hesaplama
        $longScore = 0;
        $shortScore = 0;
        $indicators = [];
        
        // EMA Sinyali
        if ($currentPrice > $currentEMA) {
            $longScore += 10;
            $indicators['EMA'] = ['signal' => 'long', 'value' => $currentEMA, 'score' => 10];
        } else {
            $shortScore += 10;
            $indicators['EMA'] = ['signal' => 'short', 'value' => $currentEMA, 'score' => 10];
        }
        
        // MACD Sinyali
        if ($macd['macd'] > 0 && $macd['histogram'] > 0) {
            $longScore += 15;
            $indicators['MACD'] = ['signal' => 'long', 'value' => $macd, 'score' => 15];
        } elseif ($macd['macd'] < 0 && $macd['histogram'] < 0) {
            $shortScore += 15;
            $indicators['MACD'] = ['signal' => 'short', 'value' => $macd, 'score' => 15];
        } else {
            $indicators['MACD'] = ['signal' => 'neutral', 'value' => $macd, 'score' => 0];
        }
        
        // VWAP Sinyali
        if ($currentPrice > $vwap) {
            $longScore += 20;
            $indicators['VWAP'] = ['signal' => 'long', 'value' => $vwap, 'score' => 20];
        } else {
            $shortScore += 20;
            $indicators['VWAP'] = ['signal' => 'short', 'value' => $vwap, 'score' => 20];
        }
        
        // Order Flow Sinyali
        if ($orderFlow > 0.1) {
            $longScore += 10;
            $indicators['Order Flow'] = ['signal' => 'long', 'value' => $orderFlow, 'score' => 10];
        } elseif ($orderFlow < -0.1) {
            $shortScore += 10;
            $indicators['Order Flow'] = ['signal' => 'short', 'value' => $orderFlow, 'score' => 10];
        } else {
            $indicators['Order Flow'] = ['signal' => 'neutral', 'value' => $orderFlow, 'score' => 0];
        }
        
        // ADX Sinyali (trend gücü)
        if ($adx > 25) {
            $longScore += 15;
            $shortScore += 15; // Güçlü trend her iki yönde de önemli
            $indicators['ADX'] = ['signal' => 'strong', 'value' => $adx, 'score' => 15];
        } else {
            $indicators['ADX'] = ['signal' => 'weak', 'value' => $adx, 'score' => 0];
        }
        
        // Pivot Sinyali
        if ($currentPrice > $pivots['pivot']) {
            $longScore += 5;
            $indicators['Pivot'] = ['signal' => 'long', 'value' => $pivots, 'score' => 5];
        } else {
            $shortScore += 5;
            $indicators['Pivot'] = ['signal' => 'short', 'value' => $pivots, 'score' => 5];
        }
        
        // Basis (Bollinger Bands merkezi) Sinyali
        if ($currentPrice > $currentBasis) {
            $longScore += 10;
            $indicators['Basis'] = ['signal' => 'long', 'value' => $currentBasis, 'score' => 10];
        } else {
            $shortScore += 10;
            $indicators['Basis'] = ['signal' => 'short', 'value' => $currentBasis, 'score' => 10];
        }
        
        // Supertrend Sinyali
        if ($supertrend['signal'] === 'buy') {
            $longScore += 15;
            $indicators['Supertrend'] = ['signal' => 'long', 'value' => $supertrend, 'score' => 15];
        } else {
            $shortScore += 15;
            $indicators['Supertrend'] = ['signal' => 'short', 'value' => $supertrend, 'score' => 15];
        }
        
        // ATR Sinyali (volatilite)
        $indicators['ATR'] = ['signal' => 'info', 'value' => $atr, 'score' => 0];
        
        // TP/SL hesaplama
        // Kullanıcının girdiği miktar değerlerini al, yoksa varsayılan değerleri kullan
        $tpAmount = isset($_POST['tpAmount']) ? floatval($_POST['tpAmount']) : 0.25;
        $slAmount = isset($_POST['slAmount']) ? floatval($_POST['slAmount']) : 0.15;
        
        // TP/SL değerlerini kullanıcının girdiği miktar değerlerine göre hesapla
        $longTP = $currentPrice + $tpAmount;
        $longSL = $currentPrice - $slAmount;
        $shortTP = $currentPrice - $tpAmount;
        $shortSL = $currentPrice + $slAmount;
        
        // Tüm değerleri formatla
        $response = [
            'success' => true,
            'symbol' => $symbol,
            'timeframe' => $timeframe,
            'currentPrice' => formatNumber($currentPrice),
            'longScore' => min($longScore, 100),
            'shortScore' => min($shortScore, 100),
            'indicators' => formatNumber($indicators),
            'tpsl' => [
                'long' => ['tp' => formatNumber($longTP), 'sl' => formatNumber($longSL)],
                'short' => ['tp' => formatNumber($shortTP), 'sl' => formatNumber($shortSL)]
            ],
            'atr' => formatNumber($atr),
            'timestamp' => time()
        ];
        
        // JSON_PRESERVE_ZERO_FRACTION: Ondalık sıfırları koru
        echo json_encode($response, JSON_PRESERVE_ZERO_FRACTION);
        
    } catch (Exception $e) {
        http_response_code(500);
        echo json_encode([
            'success' => false,
            'error' => $e->getMessage()
        ]);
    }
    ?>
    backend.php

    <?php
    header('Content-Type: application/json');
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST');
    header('Access-Control-Allow-Headers: Content-Type');
    
    if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
        http_response_code(405);
        echo json_encode(['error' => 'Method not allowed']);
        exit;
    }
    
    $input = json_decode(file_get_contents('php://input'), true);
    
    $symbol = strtoupper($input['symbol'] ?? '');
    $side = strtolower($input['side'] ?? ''); // 'long' or 'short'
    $amount = floatval($input['amount'] ?? 0);
    $tp = floatval($input['tp'] ?? 0);
    $sl = floatval($input['sl'] ?? 0);
    $currentPrice = floatval($input['currentPrice'] ?? 0);
    
    // Giriş validasyonu
    if (empty($symbol) || !in_array($side, ['long', 'short']) || $amount <= 0) {
        http_response_code(400);
        echo json_encode([
            'success' => false,
            'error' => 'Geçersiz parametreler'
        ]);
        exit;
    }
    
    // Binance API anahtarları 
    $API_KEY = 'apikeyburaya'; // Binance API anahtarınız
    $SECRET_KEY = 'scretkeyburaya'; // Binance API sırrınız
    
    // Demo mod kontrolü
    $DEMO_MODE = false; // Gerçek işlem için false yapın
    
    function logTrade($data) {
        $logFile = 'trades.log';
        $timestamp = date('Y-m-d H:i:s');
        $logEntry = "[{$timestamp}] " . json_encode($data) . "\n";
        file_put_contents($logFile, $logEntry, FILE_APPEND | LOCK_EX);
    }
    
    function generateOrderId() {
        return 'ORDER_' . time() . '_' . rand(1000, 9999);
    }
    
    // Sembol bilgilerinden hassasiyet ve minimum miktar bilgilerini al
    function getSymbolInfo($symbol, $exchangeInfo) {
        if (!isset($exchangeInfo['symbols'])) {
            return ['quantityPrecision' => 3, 'minQty' => 0.001];
        }
        
        foreach ($exchangeInfo['symbols'] as $symbolInfo) {
            if ($symbolInfo['symbol'] === $symbol) {
                return [
                    'quantityPrecision' => $symbolInfo['quantityPrecision'] ?? 3,
                    'minQty' => 0.001 // Varsayılan minimum miktar
                ];
            }
        }
        
        // Sembol bulunamadıysa varsayılan değerleri döndür
        return ['quantityPrecision' => 3, 'minQty' => 0.001];
    }
    
    function calculateQuantity($amount, $price, $quantityPrecision = 3) {
        // USDT miktarını coin miktarına çevir ve doğru hassasiyette yuvarla
        $rawQuantity = $amount / $price;
        
        // Binance için doğru hassasiyette yuvarla
        $precision = pow(10, $quantityPrecision);
        return floor($rawQuantity * $precision) / $precision;
    }
    
    // Binance API için imza oluşturma
    function generateSignature($query_string, $secret) {
        return hash_hmac('sha256', $query_string, $secret);
    }
    
    // Binance API'ye istek gönderme
    function sendBinanceRequest($endpoint, $params = [], $method = 'GET', $apiKey = '', $secretKey = '') {
        // Futures API için farklı base URL kullan
        $baseUrl = 'https://api.binance.com';
        if (strpos($endpoint, 'fapi/') === 0) {
            $baseUrl = 'https://fapi.binance.com';
        }
        
        $url = $baseUrl . '/' . $endpoint;
        
        // Timestamp ekle
        $params['timestamp'] = round(microtime(true) * 1000);
        
        // Query string oluştur
        $query_string = http_build_query($params);
        
        // İmza oluştur
        $signature = generateSignature($query_string, $secretKey);
        
        // İmzayı query string'e ekle
        $query_string .= '&signature=' . $signature;
        
        // URL'yi oluştur
        $url = $url . '?' . $query_string;
        
        // cURL ile istek gönder
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        
        // Header'ları ayarla
        $headers = ['X-MBX-APIKEY: ' . $apiKey];
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        
        // HTTP metodunu ayarla
        if ($method === 'POST') {
            curl_setopt($ch, CURLOPT_POST, true);
        } elseif ($method === 'DELETE') {
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
        }
        
        // İsteği gönder
        $response = curl_exec($ch);
        
        // Hata kontrolü
        if (curl_errno($ch)) {
            throw new Exception('Binance API isteği başarısız: ' . curl_error($ch));
        }
        
        // cURL bağlantısını kapat
        curl_close($ch);
        
        // JSON yanıtını çöz
        $result = json_decode($response, true);
        
        // Hata kontrolü
        if (isset($result['code']) && $result['code'] !== 200) {
            throw new Exception('Binance API hatası: ' . ($result['msg'] ?? 'Bilinmeyen hata'));
        }
        
        return $result;
    }
    
    // Kaldıraç ayarını değiştirme
    function setLeverage($symbol, $leverage, $apiKey, $secretKey) {
        $params = [
            'symbol' => $symbol,
            'leverage' => $leverage
        ];
        
        return sendBinanceRequest('fapi/v1/leverage', $params, 'POST', $apiKey, $secretKey);
    }
    
    // Pozisyon modunu ayarlama (HEDGE veya ONE_WAY)
    function setPositionMode($hedgeMode, $apiKey, $secretKey) {
        $params = [
            'dualSidePosition' => $hedgeMode ? 'true' : 'false'
        ];
        
        return sendBinanceRequest('fapi/v1/positionSide/dual', $params, 'POST', $apiKey, $secretKey);
    }
    
    // Piyasa emri gönderme (Futures için)
    function sendMarketOrder($symbol, $side, $quantity, $apiKey, $secretKey) {
        $params = [
            'symbol' => $symbol,
            'side' => $side === 'long' ? 'BUY' : 'SELL',
            'type' => 'MARKET',
            'quantity' => $quantity,
            'reduceOnly' => 'false',
            'newOrderRespType' => 'RESULT'
        ];
        
        return sendBinanceRequest('fapi/v1/order', $params, 'POST', $apiKey, $secretKey);
    }
    
    // Take Profit emri gönderme (Futures için)
    function sendTakeProfitOrder($symbol, $side, $quantity, $price, $apiKey, $secretKey) {
        $params = [
            'symbol' => $symbol,
            'side' => $side === 'long' ? 'SELL' : 'BUY', // TP için ters yön
            'type' => 'LIMIT',
            'timeInForce' => 'GTC',
            'quantity' => $quantity,
            'price' => $price,
            'reduceOnly' => 'true',
            'newOrderRespType' => 'RESULT'
        ];
        
        return sendBinanceRequest('fapi/v1/order', $params, 'POST', $apiKey, $secretKey);
    }
    
    // Stop Loss emri gönderme (Futures için)
    function sendStopLossOrder($symbol, $side, $quantity, $stopPrice, $apiKey, $secretKey) {
        $params = [
            'symbol' => $symbol,
            'side' => $side === 'long' ? 'SELL' : 'BUY', // SL için ters yön
            'type' => 'STOP_MARKET',
            'quantity' => $quantity,
            'stopPrice' => $stopPrice,
            'reduceOnly' => 'true',
            'newOrderRespType' => 'RESULT'
        ];
        
        return sendBinanceRequest('fapi/v1/order', $params, 'POST', $apiKey, $secretKey);
    }
    
    // Hesap bilgilerini alma (Futures için)
    function getAccountInfo($apiKey, $secretKey) {
        return sendBinanceRequest('fapi/v2/account', [], 'GET', $apiKey, $secretKey);
    }
    
    // Sembol bilgilerini alma (Futures için)
    function getExchangeInfo($symbol, $apiKey, $secretKey) {
        $params = [];
        if (!empty($symbol)) {
            $params['symbol'] = $symbol;
        }
        
        return sendBinanceRequest('fapi/v1/exchangeInfo', $params, 'GET', $apiKey, $secretKey);
    }
    
    try {
        // Demo mod için basit miktar hesaplama
        $quantity = $DEMO_MODE ? calculateQuantity($amount, $currentPrice) : 0;
        
        if ($DEMO_MODE) {
            // Demo işlem
            $orderId = generateOrderId();
            
            $tradeData = [
                'orderId' => $orderId,
                'symbol' => $symbol,
                'side' => $side,
                'amount' => $amount,
                'quantity' => $quantity,
                'price' => $currentPrice,
                'tp' => $tp,
                'sl' => $sl,
                'status' => 'DEMO_FILLED',
                'timestamp' => time(),
                'mode' => 'DEMO'
            ];
            
            // İşlemi logla
            logTrade($tradeData);
            
            // TP/SL emirlerini de simüle et
            $tpOrderId = generateOrderId();
            $slOrderId = generateOrderId();
            
            $tpData = [
                'orderId' => $tpOrderId,
                'parentOrder' => $orderId,
                'symbol' => $symbol,
                'side' => $side === 'long' ? 'short' : 'long',
                'type' => 'TAKE_PROFIT',
                'quantity' => $quantity,
                'price' => $tp,
                'status' => 'PENDING',
                'timestamp' => time(),
                'mode' => 'DEMO'
            ];
            
            $slData = [
                'orderId' => $slOrderId,
                'parentOrder' => $orderId,
                'symbol' => $symbol,
                'side' => $side === 'long' ? 'short' : 'long',
                'type' => 'STOP_LOSS',
                'quantity' => $quantity,
                'price' => $sl,
                'status' => 'PENDING',
                'timestamp' => time(),
                'mode' => 'DEMO'
            ];
            
            logTrade($tpData);
            logTrade($slData);
            
            $response = [
                'success' => true,
                'mode' => 'DEMO',
                'message' => 'Demo işlem başarıyla gerçekleştirildi',
                'mainOrder' => $tradeData,
                'tpOrder' => $tpData,
                'slOrder' => $slData,
                'totalOrders' => 3
            ];
            
        } else {
            // Gerçek işlem (API anahtarları gerekli)
            if (empty($API_KEY) || empty($SECRET_KEY)) {
                throw new Exception('API anahtarları tanımlanmamış');
            }
            
            // Sembol formatını düzelt (BTC -> BTCUSDT)
            if (strpos($symbol, 'USDT') === false) {
                $symbol .= 'USDT';
            }
            
            // Sembol bilgilerini al
            $exchangeInfo = getExchangeInfo($symbol, $API_KEY, $SECRET_KEY);
            
            // Sembol hassasiyet bilgilerini al
            $symbolInfo = getSymbolInfo($symbol, $exchangeInfo);
            $quantityPrecision = $symbolInfo['quantityPrecision'];
            
            // Miktar hesaplama (doğru hassasiyette)
            $quantity = calculateQuantity($amount, $currentPrice, $quantityPrecision);
            
            // Hesap bilgilerini kontrol et
            $accountInfo = getAccountInfo($API_KEY, $SECRET_KEY);
            
            // Kaldıraç ayarını 10x olarak ayarla
            try {
                $leverageResult = setLeverage($symbol, 10, $API_KEY, $SECRET_KEY);
                logTrade(['action' => 'setLeverage', 'symbol' => $symbol, 'leverage' => 10, 'result' => $leverageResult]);
            } catch (Exception $leverageEx) {
                // Kaldıraç ayarı başarısız olsa bile devam et
                logTrade(['action' => 'setLeverage', 'symbol' => $symbol, 'leverage' => 10, 'error' => $leverageEx->getMessage()]);
            }
            
            // Pozisyon modunu ayarla (ONE_WAY)
            try {
                $positionModeResult = setPositionMode(false, $API_KEY, $SECRET_KEY);
                logTrade(['action' => 'setPositionMode', 'mode' => 'ONE_WAY', 'result' => $positionModeResult]);
            } catch (Exception $positionEx) {
                // Pozisyon modu ayarı başarısız olsa bile devam et
                logTrade(['action' => 'setPositionMode', 'mode' => 'ONE_WAY', 'error' => $positionEx->getMessage()]);
            }
            
            // Miktar bilgisini logla
            logTrade([
                'action' => 'calculateQuantity',
                'symbol' => $symbol,
                'amount' => $amount,
                'price' => $currentPrice,
                'quantityPrecision' => $quantityPrecision,
                'calculatedQuantity' => $quantity
            ]);
            
            // Ana emir (MARKET)
            $orderSide = $side === 'long' ? 'BUY' : 'SELL';
            $mainOrder = sendMarketOrder($symbol, $side, $quantity, $API_KEY, $SECRET_KEY);
            
            if (!isset($mainOrder['orderId'])) {
                throw new Exception('Ana emir gerçekleştirilemedi: ' . json_encode($mainOrder));
            }
            
            // Emir durumunu logla
            $tradeData = [
                'orderId' => $mainOrder['orderId'],
                'symbol' => $symbol,
                'side' => $side,
                'amount' => $amount,
                'quantity' => $mainOrder['executedQty'] ?? $quantity,
                'price' => $mainOrder['price'] ?? $currentPrice,
                'tp' => $tp,
                'sl' => $sl,
                'status' => $mainOrder['status'] ?? 'UNKNOWN',
                'timestamp' => time(),
                'mode' => 'LIVE'
            ];
            
            logTrade($tradeData);
            
            // TP/SL emirleri (Futures için ayrı ayrı gönder)
            $tpslSide = $side === 'long' ? 'SELL' : 'BUY'; // TP/SL için ters yön
            $tpslQuantity = $mainOrder['executedQty'] ?? $quantity;
            
            try {
                // Take Profit emri
                $tpOrder = sendTakeProfitOrder(
                    $symbol, 
                    $side, 
                    $tpslQuantity, 
                    $tp, // Limit Price
                    $API_KEY, 
                    $SECRET_KEY
                );
                
                // Take Profit emrini logla
                logTrade([
                    'orderId' => $tpOrder['orderId'] ?? 'UNKNOWN',
                    'parentOrder' => $mainOrder['orderId'],
                    'symbol' => $symbol,
                    'side' => $tpslSide,
                    'type' => 'TAKE_PROFIT',
                    'quantity' => $tpslQuantity,
                    'price' => $tp,
                    'status' => $tpOrder['status'] ?? 'UNKNOWN',
                    'timestamp' => time(),
                    'mode' => 'LIVE'
                ]);
                
                // Stop Loss emri
                $slOrder = sendStopLossOrder(
                    $symbol, 
                    $side, 
                    $tpslQuantity, 
                    $sl, // Stop Price
                    $API_KEY, 
                    $SECRET_KEY
                );
                
                // Stop Loss emrini logla
                logTrade([
                    'orderId' => $slOrder['orderId'] ?? 'UNKNOWN',
                    'parentOrder' => $mainOrder['orderId'],
                    'symbol' => $symbol,
                    'side' => $tpslSide,
                    'type' => 'STOP_LOSS',
                    'quantity' => $tpslQuantity,
                    'stopPrice' => $sl,
                    'status' => $slOrder['status'] ?? 'UNKNOWN',
                    'timestamp' => time(),
                    'mode' => 'LIVE'
                ]);
                
                $response = [
                    'success' => true,
                    'mode' => 'LIVE',
                    'message' => 'İşlem başarıyla gerçekleştirildi',
                    'mainOrder' => $tradeData,
                    'tpOrder' => $tpOrder,
                    'slOrder' => $slOrder,
                    'totalOrders' => 3
                ];
            } catch (Exception $ocoEx) {
                // OCO emri başarısız olsa bile ana emir gerçekleşti
                $response = [
                    'success' => true,
                    'mode' => 'LIVE',
                    'message' => 'Ana emir gerçekleştirildi fakat TP/SL emirleri başarısız oldu',
                    'mainOrder' => $tradeData,
                    'ocoError' => $ocoEx->getMessage(),
                    'totalOrders' => 1
                ];
            }
        }
        
        echo json_encode($response);
        
    } catch (Exception $e) {
        http_response_code(500);
        echo json_encode([
            'success' => false,
            'error' => $e->getMessage()
        ]);
    }
    ?>
    script.js
    // TradingView Widget'ları için fonksiyonlar
    function loadTradingViewWidgets(symbol, interval) {
        // Sembol formatını ayarla ("BTC" -> "BINANCE:BTCUSDT")
        const formattedSymbol = `BINANCE:${symbol}USDT`;
        
        // Zaman dilimini ayarla
        const formattedInterval = convertTimeframeToTradingView(interval);
        
        console.log(`TradingView grafikleri yükleniyor: ${formattedSymbol}, ${formattedInterval}`);
        
        // Fiyat grafiği widget'ı
        loadPriceChart(formattedSymbol, formattedInterval);
        
        // Teknik analiz widget'ı
        loadTechnicalAnalysis(formattedSymbol, formattedInterval);
    }
    
    // Zaman dilimini TradingView formatına çevir
    function convertTimeframeToTradingView(interval) {
        // Binance -> TradingView formatı çevirisi
        const conversions = {
            '1m': '1',
            '3m': '3',
            '5m': '5',
            '15m': '15',
            '30m': '30',
            '1h': '60',
            '2h': '120',
            '4h': '240',
            '6h': '360',
            '8h': '480',
            '12h': '720',
            '1d': 'D',
            '3d': '3D',
            '1w': 'W',
            '1M': 'M'
        };
        
        return conversions[interval] || 'D'; // Varsayılan olarak günlük
    }
    
    // Fiyat grafiği widget'ını yükle
    function loadPriceChart(symbol, interval) {
        const container = document.getElementById('tradingview_price_chart');
        if (!container) return;
        
        // Önceki widget'i temizle
        container.innerHTML = '';
        
        new TradingView.widget({
           width: "100%",
            height: 400,
            "symbol": symbol,
            "interval": interval,
            "timezone": "Etc/UTC",
            "theme": "dark",
            "style": "1",
            "locale": "tr",
            "toolbar_bg": "#f1f3f6",
            "enable_publishing": false,
            "hide_side_toolbar": false,
            "allow_symbol_change": true,
            "container_id": "tradingview_price_chart",
            "studies": [
             "ZigZag@tv-basicstudies",
              "StochasticRSI@tv-basicstudies"
            ]
        });
    }
    
    // Teknik analiz widget'ını yükle
    function loadTechnicalAnalysis(symbol, interval) {
        const container = document.getElementById('tradingview_tech_analysis');
        if (!container) return;
    
        // Önceki widget'i temizle
        container.innerHTML = '';
    
        // Sembolü TradingView formatına uygun hale getir
        const symbolWithoutPrefix = symbol.replace('BINANCE:', '');
        const tvInterval = getTimeframeForTechnicalAnalysis(interval);
    
        // Widget HTML'ini oluştur
        container.innerHTML = `
            <div class="tradingview-widget-container">
                <div id="tradingview_tech_analysis_inner"></div>
                <div class="tradingview-widget-copyright">
                    
                        <span class="blue-text">Teknik Analiz</span>
                    </a> TradingView tarafından
                </div>
                <script type="text/javascript" src="https://s3.tradingview.com/external-embedding/embed-widget-technical-analysis.js" async>
                {
                    "interval": "${tvInterval}",
                    "width": "100%",
                    "isTransparent": false,
                    "height": 400,
                    "symbol": "${symbolWithoutPrefix}",
                    "showIntervalTabs": true,
                    "locale": "en",
                      "displayMode": "single",
                    "colorTheme": "dark"
                }
                </script>
            </div>
        `;
    }
    
    // TradingView Technical Analysis Widget için zaman dilimini dönüştür
    function getTimeframeForTechnicalAnalysis(interval) {
        // Binance -> TradingView Technical Analysis formatı çevirisi
        const conversions = {
            '1m': '1m',
            '3m': '5m',  // 3m desteklenmediği için en yakın değer
            '5m': '5m',
            '15m': '15m',
            '30m': '30m',
            '1h': '1h',
            '4h': '4h',
            '8h': '4h',  // 8h desteklenmediği için en yakın değer
            '12h': '1D',  // 12h desteklenmediği için en yakın değer
            '1d': '1D',
        };
        
        return conversions[interval] || '1D'; // Varsayılan olarak günlük
    }
    
    $(document).ready(function() {
        let currentAnalysis = null;
        let binanceSocket = null;
        
        // Sayfa kapatıldığında WebSocket bağlantısını kapat
        $(window).on('beforeunload', function() {
            if (binanceSocket) {
                console.log('Sayfa kapatılıyor, WebSocket bağlantısı kesiliyor...');
                binanceSocket.disconnect();
            }
        });
        
        // WebSocket bağlantısını başlatma fonksiyonu
        function initWebSocket(symbol) {
            // Eğer önceki bir bağlantı varsa kapat
            if (binanceSocket) {
                binanceSocket.disconnect();
            }
            
            console.log(`${symbol} için WebSocket bağlantısı başlatılıyor...`);
            
            // Yeni WebSocket bağlantısı oluştur
            binanceSocket = new BinanceWebSocket(symbol, {
                onOpen: () => {
                    console.log(`${symbol} için WebSocket bağlantısı açıldı`);
                },
                onDepthUpdate: (data) => {
                    console.log('Depth güncellemesi alındı');
                    const result = processDepthData(data);
                    if (result) {
                        console.log('Depth verileri işlendi:', result);
                    }
                },
                onError: (error) => {
                    console.error('WebSocket hatası:', error);
                },
                onClose: () => {
                    console.log(`${symbol} için WebSocket bağlantısı kapandı`);
                }
            });
            
            // Bağlantıyı başlat
            binanceSocket.connect();
        }
        
        // Form submit
        $('#analysisForm').on('submit', function(e) {
            e.preventDefault();
            
            const formData = {
                symbol: $('#symbol').val().toUpperCase(),
                amount: parseFloat($('#amount').val()),
                timeframe: $('#timeframe').val(),
                tpAmount: parseFloat($('#tpAmount').val()),
                slAmount: parseFloat($('#slAmount').val())
            };
            
            // Validasyon
            if (!formData.symbol || formData.amount < 10) {
                showError('Lütfen geçerli değerler girin');
                return;
            }
            
            // TradingView widget'larını yükle
            loadTradingViewWidgets(formData.symbol, formData.timeframe);
            
            analyzeMarket(formData);
        });
        
        function analyzeMarket(data) {
            showLoading(true);
            hideError();
            hideResults();
            
            $.ajax({
                url: 'api.php',
                method: 'POST',
                contentType: 'application/json',
                data: JSON.stringify(data),
                timeout: 30000,
                success: function(response) {
                    showLoading(false);
                    
                    if (response.success) {
                        currentAnalysis = response;
                        displayResults(response);
                    } else {
                        showError(response.error || 'Analiz hatası');
                    }
                },
                error: function(xhr, status, error) {
                    showLoading(false);
                    
                    let errorMessage = 'Bağlantı hatası';
                    
                    if (xhr.responseJSON && xhr.responseJSON.error) {
                        errorMessage = xhr.responseJSON.error;
                    } else if (status === 'timeout') {
                        errorMessage = 'İstek zaman aşımına uğradı';
                    } else if (status === 'parsererror') {
                        errorMessage = 'Veri işleme hatası';
                    }
                    
                    showError(errorMessage);
                }
            });
        }
        
        function displayResults(data) {
            // Skorları göster
            $('#longScore').text(data.longScore);
            $('#shortScore').text(data.shortScore);
            
            // İndikatörleri göster
            displayIndicators(data.indicators, data.currentPrice);
            
            // TP/SL göster
            displayTPSL(data.tpsl, data.currentPrice);
            
            // Sonuçları göster
            showResults();
        }
        
        function displayIndicators(indicators, currentPrice) {
            const container = $('#indicators');
            container.empty();
            
            Object.keys(indicators).forEach(name => {
                const indicator = indicators[name];
                const card = createIndicatorCard(name, indicator, currentPrice);
                container.append(card);
            });
        }
        
        function createIndicatorCard(name, indicator, currentPrice) {
            const signalClass = indicator.signal === 'long' ? 'long' : 
                               indicator.signal === 'short' ? 'short' : 'neutral';
            
            const signalText = indicator.signal === 'long' ? 'LONG' :
                              indicator.signal === 'short' ? 'SHORT' :
                              indicator.signal === 'strong' ? 'GÜÇLÜ' :
                              indicator.signal === 'weak' ? 'ZAYIF' :
                              indicator.signal === 'info' ? 'BİLGİ' : 'NÖTR';
            
            let valueText = '';
            
            if (name === 'MACD') {
                valueText = `MACD: ${indicator.value.macd.toFixed(4)}<br>
                            Signal: ${indicator.value.signal.toFixed(4)}<br>
                            Histogram: ${indicator.value.histogram.toFixed(4)}`;
            } else if (name === 'Pivot') {
                valueText = `Pivot: ${indicator.value.pivot.toFixed(2)}<br>
                            R1: ${indicator.value.r1.toFixed(2)}<br>
                            S1: ${indicator.value.s1.toFixed(2)}`;
            } else if (name === 'Supertrend') {
                valueText = `Signal: ${indicator.value.signal.toUpperCase()}<br>
                            Value: ${indicator.value.value.toFixed(2)}`;
            } else if (name === 'Order Flow') {
                valueText = `Flow: ${(indicator.value * 100).toFixed(2)}%`;
            } else if (typeof indicator.value === 'number') {
                valueText = `Value: ${indicator.value.toFixed(2)}`;
            }
            
            return `
                <div class="indicator-card">
                    <div class="indicator-header">
                        <span class="indicator-name">${name}</span>
                        <span class="signal-badge ${signalClass}">${signalText}</span>
                    </div>
                    <div class="indicator-details">
                        <p>${valueText}</p>
                        <p><strong>Skor: ${indicator.score}</strong></p>
                    </div>
                </div>
            `;
        }
        
        function displayTPSL(tpsl, currentPrice) {
            const container = $('#tpslGrid');
            container.empty();
            
            // Long TP/SL
            const longCard = `
                <div class="tp-sl-card">
                    <h4 style="color: #27ae60; margin-bottom: 15px;">📈 LONG Pozisyon</h4>
                    <p><strong>Mevcut Fiyat:</strong> ${currentPrice.toFixed(2)} USDT</p>
                    <p><strong>Take Profit:</strong> ${tpsl.long.tp.toFixed(2)} USDT</p>
                    <p><strong>Stop Loss:</strong> ${tpsl.long.sl.toFixed(2)} USDT</p>
                    <p><strong>Risk/Reward:</strong> ${((tpsl.long.tp - currentPrice) / (currentPrice - tpsl.long.sl)).toFixed(2)}</p>
                </div>
            `;
            
            // Short TP/SL
            const shortCard = `
                <div class="tp-sl-card">
                    <h4 style="color: #e74c3c; margin-bottom: 15px;">📉 SHORT Pozisyon</h4>
                    <p><strong>Mevcut Fiyat:</strong> ${currentPrice.toFixed(2)} USDT</p>
                    <p><strong>Take Profit:</strong> ${tpsl.short.tp.toFixed(2)} USDT</p>
                    <p><strong>Stop Loss:</strong> ${tpsl.short.sl.toFixed(2)} USDT</p>
                    <p><strong>Risk/Reward:</strong> ${((currentPrice - tpsl.short.tp) / (tpsl.short.sl - currentPrice)).toFixed(2)}</p>
                </div>
            `;
            
            container.append(longCard + shortCard);
        }
        
        function showLoading(show) {
            if (show) {
                $('#loading').show();
                $('#analyzeBtn').prop('disabled', true).text('Analiz Ediliyor...');
            } else {
                $('#loading').hide();
                $('#analyzeBtn').prop('disabled', false).text('📊 Analiz Et');
            }
        }
        
        function showError(message) {
            $('#error').text(message).show();
        }
        
        function hideError() {
            $('#error').hide();
        }
        
        function showResults() {
            $('#results').show();
        }
        
        function hideResults() {
            $('#results').hide();
        }
        
        // Global fonksiyon - emir gönderme
        window.executeTrade = function(side) {
            if (!currentAnalysis) {
                alert('Önce analiz yapmalısınız');
                return;
            }
            
            const confirmation = confirm(
                `${side.toUpperCase()} pozisyon açmak istediğinizden emin misiniz?\n\n` +
                `Sembol: ${currentAnalysis.symbol}\n` +
                `Miktar: ${$('#amount').val()} USDT\n` +
                `Mevcut Fiyat: ${currentAnalysis.currentPrice.toFixed(2)}\n` +
                `TP: ${currentAnalysis.tpsl[side].tp.toFixed(2)}\n` +
                `SL: ${currentAnalysis.tpsl[side].sl.toFixed(2)}`
            );
            
            if (!confirmation) return;
            
            const tradeData = {
                symbol: currentAnalysis.symbol,
                side: side,
                amount: parseFloat($('#amount').val()),
                tp: currentAnalysis.tpsl[side].tp,
                sl: currentAnalysis.tpsl[side].sl,
                currentPrice: currentAnalysis.currentPrice
            };
            
            // Emir gönder
            $.ajax({
                url: 'backend.php',
                method: 'POST',
                contentType: 'application/json',
                data: JSON.stringify(tradeData),
                success: function(response) {
                    if (response.success) {
                        alert(
                            `✅ ${response.message}\n\n` +
                            `Emir ID: ${response.mainOrder ? response.mainOrder.orderId : response.order.orderId}\n` +
                            `Mod: ${response.mode}\n` +
                            `${response.totalOrders ? `Toplam Emir: ${response.totalOrders}` : ''}`
                        );
                    } else {
                        alert(`❌ Hata: ${response.error}`);
                    }
                },
                error: function(xhr) {
                    const error = xhr.responseJSON ? xhr.responseJSON.error : 'Bağlantı hatası';
                    alert(`❌ Emir gönderilemedi: ${error}`);
                }
            });
        };
        
        // Otomatik yenileme (isteğe bağlı)
        let autoRefreshInterval;
        
        function startAutoRefresh() {
            if (currentAnalysis) {
                autoRefreshInterval = setInterval(() => {
                    const formData = {
                        symbol: currentAnalysis.symbol,
                        amount: parseFloat($('#amount').val()),
                        timeframe: $('#timeframe').val()
                    };
                    analyzeMarket(formData);
                }, 30000); // 30 saniyede bir yenile
            }
        }
        
        function stopAutoRefresh() {
            if (autoRefreshInterval) {
                clearInterval(autoRefreshInterval);
                autoRefreshInterval = null;
            }
        }
        
        // WebSocket bağlantısını başlatma
        function initWebSocket(symbol) {
            // Önceki bağlantıyı kapat
            if (binanceSocket) {
                binanceSocket.disconnect();
            }
            
            // Yeni bağlantı oluştur
            binanceSocket = new BinanceWebSocket(symbol, {
                onOpen: () => {
                    console.log('WebSocket bağlantısı başarılı');
                },
                onDepthUpdate: (data) => {
                    const depthInfo = processDepthData(data);
                    
                    // UI güncelleme
                    document.getElementById('bidPercentage').style.width = `${depthInfo.bidPercentage}%`;
                    document.getElementById('bidPercentage').textContent = `${depthInfo.bidPercentage.toFixed(2)}%`;
                    
                    document.getElementById('askPercentage').style.width = `${depthInfo.askPercentage}%`;
                    document.getElementById('askPercentage').textContent = `${depthInfo.askPercentage.toFixed(2)}%`;
                    
                    document.getElementById('bidVolume').textContent = depthInfo.totalBidVolume.toFixed(2);
                    document.getElementById('askVolume').textContent = depthInfo.totalAskVolume.toFixed(2);
                    
                    // Baskınlık durumu
                    let dominanceText = 'Dengeli';
                    if (depthInfo.bidPercentage >= 70) {
                        dominanceText = 'Güçlü Alıcı Baskınlığı';
                    } else if (depthInfo.askPercentage >= 70) {
                        dominanceText = 'Güçlü Satıcı Baskınlığı';
                    } else if (depthInfo.bidPercentage >= 60) {
                        dominanceText = 'Alıcı Eğilimi';
                    } else if (depthInfo.askPercentage >= 60) {
                        dominanceText = 'Satıcı Eğilimi';
                    }
                    
                    document.getElementById('dominance').textContent = dominanceText;
                },
                onError: (error) => {
                    console.error('WebSocket hatası:', error);
                },
                onClose: () => {
                    console.log('WebSocket bağlantısı kapandı');
                }
            });
            
            binanceSocket.connect();
        }
        
        // Sayfa kapatılırken WebSocket bağlantısını ve otomatik yenilemeyi kapat
        $(window).on('beforeunload', function() {
            if (binanceSocket) {
                binanceSocket.disconnect();
            }
            stopAutoRefresh();
        });
    });
    trades.log
    Boş bir txt dosyası yeterli işlem yaptıkça loglayacak hata vs varsa orada görebilirsiniz
    örnek log dosyası

    [2025-06-02 13:16:58] {"action":"setLeverage","symbol":"XRPUSDT","leverage":10,"result":{"symbol":"XRPUSDT","leverage":10,"maxNotionalValue":"10000000"}}
    [2025-06-02 13:16:59] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 13:47:35] {"action":"setLeverage","symbol":"ETHUSDT","leverage":10,"result":{"symbol":"ETHUSDT","leverage":10,"maxNotionalValue":"150000000"}}
    [2025-06-02 13:47:36] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 13:47:36] {"action":"calculateQuantity","symbol":"ETHUSDT","amount":100,"price":2503.79,"quantityPrecision":3,"calculatedQuantity":0.039}
    [2025-06-02 13:47:37] {"orderId":8389765899255901361,"symbol":"ETHUSDT","side":"long","amount":100,"quantity":"0.039","price":"0.00","tp":2504.04,"sl":2503.64,"status":"FILLED","timestamp":1748872057,"mode":"LIVE"}
    [2025-06-02 13:47:38] {"orderId":8389765899255907754,"parentOrder":8389765899255901361,"symbol":"ETHUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"0.039","price":2504.04,"status":"NEW","timestamp":1748872058,"mode":"LIVE"}
    [2025-06-02 13:48:34] {"action":"setLeverage","symbol":"ETHUSDT","leverage":10,"result":{"symbol":"ETHUSDT","leverage":10,"maxNotionalValue":"150000000"}}
    [2025-06-02 13:48:35] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 13:48:35] {"action":"calculateQuantity","symbol":"ETHUSDT","amount":100,"price":2502.09,"quantityPrecision":3,"calculatedQuantity":0.039}
    [2025-06-02 13:48:36] {"orderId":8389765899256328102,"symbol":"ETHUSDT","side":"long","amount":100,"quantity":"0.039","price":"0.00","tp":2502.34,"sl":2501.94,"status":"FILLED","timestamp":1748872116,"mode":"LIVE"}
    [2025-06-02 13:48:37] {"orderId":8389765899256336100,"parentOrder":8389765899256328102,"symbol":"ETHUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"0.039","price":2502.34,"status":"NEW","timestamp":1748872117,"mode":"LIVE"}
    [2025-06-02 13:49:14] {"action":"setLeverage","symbol":"ETHUSDT","leverage":10,"result":{"symbol":"ETHUSDT","leverage":10,"maxNotionalValue":"150000000"}}
    [2025-06-02 13:49:15] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 13:49:15] {"action":"calculateQuantity","symbol":"ETHUSDT","amount":100,"price":2503.02,"quantityPrecision":3,"calculatedQuantity":0.039}
    [2025-06-02 13:49:16] {"orderId":8389765899256620907,"symbol":"ETHUSDT","side":"long","amount":100,"quantity":"0.039","price":"0.00","tp":2503.27,"sl":2502.87,"status":"FILLED","timestamp":1748872156,"mode":"LIVE"}
    [2025-06-02 13:49:17] {"orderId":8389765899256623827,"parentOrder":8389765899256620907,"symbol":"ETHUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"0.039","price":2503.27,"status":"NEW","timestamp":1748872157,"mode":"LIVE"}
    [2025-06-02 13:50:42] {"action":"setLeverage","symbol":"BTCUSDT","leverage":10,"result":{"symbol":"BTCUSDT","leverage":10,"maxNotionalValue":"230000000"}}
    [2025-06-02 13:50:43] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 13:50:43] {"action":"calculateQuantity","symbol":"BTCUSDT","amount":100,"price":103852.3,"quantityPrecision":3,"calculatedQuantity":0}
    [2025-06-02 13:51:13] {"action":"setLeverage","symbol":"BTCUSDT","leverage":10,"result":{"symbol":"BTCUSDT","leverage":10,"maxNotionalValue":"230000000"}}
    [2025-06-02 13:51:14] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 13:51:14] {"action":"calculateQuantity","symbol":"BTCUSDT","amount":200,"price":103785.7,"quantityPrecision":3,"calculatedQuantity":0.001}
    [2025-06-02 13:51:14] {"orderId":696885537986,"symbol":"BTCUSDT","side":"long","amount":200,"quantity":"0.001","price":"0.00","tp":103785.95,"sl":103785.55,"status":"FILLED","timestamp":1748872274,"mode":"LIVE"}
    [2025-06-02 13:53:54] {"action":"setLeverage","symbol":"XRPUSDT","leverage":10,"result":{"symbol":"XRPUSDT","leverage":10,"maxNotionalValue":"10000000"}}
    [2025-06-02 13:53:54] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 13:53:54] {"action":"calculateQuantity","symbol":"XRPUSDT","amount":200,"price":2.1407,"quantityPrecision":1,"calculatedQuantity":93.4}
    [2025-06-02 13:53:55] {"orderId":105732539869,"symbol":"XRPUSDT","side":"short","amount":200,"quantity":"93.4","price":"0.0000","tp":1.8907,"sl":2.2907,"status":"FILLED","timestamp":1748872435,"mode":"LIVE"}
    [2025-06-02 13:53:56] {"orderId":105732540086,"parentOrder":105732539869,"symbol":"XRPUSDT","side":"BUY","type":"TAKE_PROFIT","quantity":"93.4","price":1.8907,"status":"NEW","timestamp":1748872436,"mode":"LIVE"}
    [2025-06-02 13:53:57] {"orderId":105732541564,"parentOrder":105732539869,"symbol":"XRPUSDT","side":"BUY","type":"STOP_LOSS","quantity":"93.4","stopPrice":2.2907,"status":"NEW","timestamp":1748872437,"mode":"LIVE"}
    [2025-06-02 14:24:08] {"action":"setLeverage","symbol":"BNTUSDT","leverage":10,"result":{"symbol":"BNTUSDT","leverage":10,"maxNotionalValue":"104166"}}
    [2025-06-02 14:24:09] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 14:24:09] {"action":"calculateQuantity","symbol":"BNTUSDT","amount":50,"price":0.65226,"quantityPrecision":0,"calculatedQuantity":76}
    [2025-06-02 14:24:10] {"orderId":2547648102,"symbol":"BNTUSDT","side":"long","amount":50,"quantity":"76","price":"0.0000000","tp":0.90226,"sl":0.50226,"status":"FILLED","timestamp":1748874250,"mode":"LIVE"}
    [2025-06-02 14:24:11] {"orderId":2547648160,"parentOrder":2547648102,"symbol":"BNTUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"76","price":0.90226,"status":"NEW","timestamp":1748874251,"mode":"LIVE"}
    [2025-06-02 14:24:11] {"orderId":2547648179,"parentOrder":2547648102,"symbol":"BNTUSDT","side":"SELL","type":"STOP_LOSS","quantity":"76","stopPrice":0.50226,"status":"NEW","timestamp":1748874251,"mode":"LIVE"}
    [2025-06-02 14:28:11] {"action":"setLeverage","symbol":"AVAXUSDT","leverage":10,"result":{"symbol":"AVAXUSDT","leverage":10,"maxNotionalValue":"8000000"}}
    [2025-06-02 14:28:13] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 14:28:13] {"action":"calculateQuantity","symbol":"AVAXUSDT","amount":50,"price":20.61,"quantityPrecision":0,"calculatedQuantity":2}
    [2025-06-02 14:28:14] {"orderId":30017244551,"symbol":"AVAXUSDT","side":"short","amount":50,"quantity":"2","price":"0.0000","tp":20.36,"sl":20.76,"status":"FILLED","timestamp":1748874494,"mode":"LIVE"}
    [2025-06-02 14:28:15] {"orderId":30017245022,"parentOrder":30017244551,"symbol":"AVAXUSDT","side":"BUY","type":"TAKE_PROFIT","quantity":"2","price":20.36,"status":"NEW","timestamp":1748874495,"mode":"LIVE"}
    [2025-06-02 14:28:16] {"orderId":30017245341,"parentOrder":30017244551,"symbol":"AVAXUSDT","side":"BUY","type":"STOP_LOSS","quantity":"2","stopPrice":20.76,"status":"NEW","timestamp":1748874496,"mode":"LIVE"}
    [2025-06-02 14:34:27] {"action":"setLeverage","symbol":"BNTUSDT","leverage":10,"result":{"symbol":"BNTUSDT","leverage":10,"maxNotionalValue":"104166"}}
    [2025-06-02 14:34:28] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 14:34:28] {"action":"calculateQuantity","symbol":"BNTUSDT","amount":50,"price":0.65298,"quantityPrecision":0,"calculatedQuantity":76}
    [2025-06-02 14:34:28] {"orderId":2547673844,"symbol":"BNTUSDT","side":"long","amount":50,"quantity":"76","price":"0.0000000","tp":0.90298,"sl":0.50298,"status":"FILLED","timestamp":1748874868,"mode":"LIVE"}
    [2025-06-02 14:34:29] {"orderId":2547673905,"parentOrder":2547673844,"symbol":"BNTUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"76","price":0.90298,"status":"NEW","timestamp":1748874869,"mode":"LIVE"}
    [2025-06-02 14:34:30] {"orderId":2547673916,"parentOrder":2547673844,"symbol":"BNTUSDT","side":"SELL","type":"STOP_LOSS","quantity":"76","stopPrice":0.50298,"status":"NEW","timestamp":1748874870,"mode":"LIVE"}
    [2025-06-02 15:03:58] {"action":"setLeverage","symbol":"AVAXUSDT","leverage":10,"result":{"symbol":"AVAXUSDT","leverage":10,"maxNotionalValue":"8000000"}}
    [2025-06-02 15:03:59] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 15:03:59] {"action":"calculateQuantity","symbol":"AVAXUSDT","amount":50,"price":20.462,"quantityPrecision":0,"calculatedQuantity":2}
    [2025-06-02 15:04:00] {"orderId":30017902154,"symbol":"AVAXUSDT","side":"short","amount":50,"quantity":"2","price":"0.0000","tp":20.212,"sl":20.612,"status":"FILLED","timestamp":1748876640,"mode":"LIVE"}
    [2025-06-02 15:04:00] {"orderId":30017902683,"parentOrder":30017902154,"symbol":"AVAXUSDT","side":"BUY","type":"TAKE_PROFIT","quantity":"2","price":20.212,"status":"NEW","timestamp":1748876640,"mode":"LIVE"}
    [2025-06-02 15:04:01] {"orderId":30017903188,"parentOrder":30017902154,"symbol":"AVAXUSDT","side":"BUY","type":"STOP_LOSS","quantity":"2","stopPrice":20.612,"status":"NEW","timestamp":1748876641,"mode":"LIVE"}
    [2025-06-02 15:08:26] {"action":"setLeverage","symbol":"XRPUSDT","leverage":10,"result":{"symbol":"XRPUSDT","leverage":10,"maxNotionalValue":"10000000"}}
    [2025-06-02 15:08:27] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 15:08:27] {"action":"calculateQuantity","symbol":"XRPUSDT","amount":50,"price":2.1436,"quantityPrecision":1,"calculatedQuantity":23.3}
    [2025-06-02 15:08:27] {"orderId":105738399925,"symbol":"XRPUSDT","side":"short","amount":50,"quantity":"23.3","price":"0.0000","tp":1.8936,"sl":2.2936,"status":"FILLED","timestamp":1748876907,"mode":"LIVE"}
    [2025-06-02 15:08:28] {"orderId":105738400854,"parentOrder":105738399925,"symbol":"XRPUSDT","side":"BUY","type":"TAKE_PROFIT","quantity":"23.3","price":1.8936,"status":"NEW","timestamp":1748876908,"mode":"LIVE"}
    [2025-06-02 15:08:29] {"orderId":105738401715,"parentOrder":105738399925,"symbol":"XRPUSDT","side":"BUY","type":"STOP_LOSS","quantity":"23.3","stopPrice":2.2936,"status":"NEW","timestamp":1748876909,"mode":"LIVE"}
    [2025-06-02 15:08:54] {"action":"setLeverage","symbol":"PNUTUSDT","leverage":10,"result":{"symbol":"PNUTUSDT","leverage":10,"maxNotionalValue":"125000"}}
    [2025-06-02 15:08:56] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 15:08:56] {"action":"calculateQuantity","symbol":"PNUTUSDT","amount":50,"price":0.25182,"quantityPrecision":0,"calculatedQuantity":198}
    [2025-06-02 15:08:57] {"orderId":7268371413,"symbol":"PNUTUSDT","side":"short","amount":50,"quantity":"198","price":"0.0000000","tp":0.00182,"sl":0.40182,"status":"FILLED","timestamp":1748876937,"mode":"LIVE"}
    [2025-06-02 15:08:58] {"orderId":7268371602,"parentOrder":7268371413,"symbol":"PNUTUSDT","side":"BUY","type":"TAKE_PROFIT","quantity":"198","price":0.00182,"status":"NEW","timestamp":1748876938,"mode":"LIVE"}
    [2025-06-02 15:08:59] {"orderId":7268372039,"parentOrder":7268371413,"symbol":"PNUTUSDT","side":"BUY","type":"STOP_LOSS","quantity":"198","stopPrice":0.40182,"status":"NEW","timestamp":1748876939,"mode":"LIVE"}
    [2025-06-02 18:52:45] {"action":"setLeverage","symbol":"XRPUSDT","leverage":10,"result":{"symbol":"XRPUSDT","leverage":10,"maxNotionalValue":"10000000"}}
    [2025-06-02 18:52:45] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 18:52:45] {"action":"calculateQuantity","symbol":"XRPUSDT","amount":50,"price":2.1668,"quantityPrecision":1,"calculatedQuantity":23}
    [2025-06-02 18:52:46] {"orderId":105755074327,"symbol":"XRPUSDT","side":"long","amount":50,"quantity":"23.0","price":"0.0000","tp":2.4168,"sl":2.0168,"status":"FILLED","timestamp":1748890366,"mode":"LIVE"}
    [2025-06-02 18:52:47] {"orderId":105755074510,"parentOrder":105755074327,"symbol":"XRPUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"23.0","price":2.4168,"status":"NEW","timestamp":1748890367,"mode":"LIVE"}
    [2025-06-02 18:52:48] {"orderId":105755074584,"parentOrder":105755074327,"symbol":"XRPUSDT","side":"SELL","type":"STOP_LOSS","quantity":"23.0","stopPrice":2.0168,"status":"NEW","timestamp":1748890368,"mode":"LIVE"}
    [2025-06-02 18:53:29] {"action":"setLeverage","symbol":"ETHUSDT","leverage":10,"result":{"symbol":"ETHUSDT","leverage":10,"maxNotionalValue":"150000000"}}
    [2025-06-02 18:53:30] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 18:53:30] {"action":"calculateQuantity","symbol":"ETHUSDT","amount":50,"price":2540.87,"quantityPrecision":3,"calculatedQuantity":0.019}
    [2025-06-02 18:53:31] {"orderId":8389765899372177269,"symbol":"ETHUSDT","side":"long","amount":50,"quantity":"0.019","price":"0.00","tp":2541.12,"sl":2540.72,"status":"FILLED","timestamp":1748890411,"mode":"LIVE"}
    [2025-06-02 18:53:32] {"orderId":8389765899372177751,"parentOrder":8389765899372177269,"symbol":"ETHUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"0.019","price":2541.12,"status":"NEW","timestamp":1748890412,"mode":"LIVE"}
    [2025-06-02 18:53:33] {"orderId":8389765899372178090,"parentOrder":8389765899372177269,"symbol":"ETHUSDT","side":"SELL","type":"STOP_LOSS","quantity":"0.019","stopPrice":2540.72,"status":"NEW","timestamp":1748890413,"mode":"LIVE"}
    [2025-06-02 18:54:25] {"action":"setLeverage","symbol":"ETHUSDT","leverage":10,"result":{"symbol":"ETHUSDT","leverage":10,"maxNotionalValue":"150000000"}}
    [2025-06-02 18:54:26] {"action":"setPositionMode","mode":"ONE_WAY","error":"Binance API hatas\u0131: No need to change position side."}
    [2025-06-02 18:54:26] {"action":"calculateQuantity","symbol":"ETHUSDT","amount":50,"price":2540.46,"quantityPrecision":3,"calculatedQuantity":0.019}
    [2025-06-02 18:54:27] {"orderId":8389765899372332415,"symbol":"ETHUSDT","side":"long","amount":50,"quantity":"0.019","price":"0.00","tp":2540.71,"sl":2540.31,"status":"FILLED","timestamp":1748890467,"mode":"LIVE"}
    [2025-06-02 18:54:28] {"orderId":8389765899372344592,"parentOrder":8389765899372332415,"symbol":"ETHUSDT","side":"SELL","type":"TAKE_PROFIT","quantity":"0.019","price":2540.71,"status":"NEW","timestamp":1748890468,"mode":"LIVE"}
    • wisex
    • özkanuzun
    • Nicollin
    wisex, özkanuzun, Nicollin ve 1 kişi bunu beğendi.
    4 kişi bunu beğendi.
  • 30-06-2025, 04:06:05
    #2
    teşekkürler
  • 30-06-2025, 04:15:15
    #3
    Rica ederim

    konu yeterince ilgi görürse şöyle de bir okx bot yazmıştım zamanında yapay zeka destekli..

    • josef
    • FoRgEd
    • d1c3m4n.ai
    josef, FoRgEd ve d1c3m4n.ai bunu beğendi.
    3 kişi bunu beğendi.
  • 30-06-2025, 04:57:08
    #4
    Üyeliği durduruldu
    Tşkler hocam emeğinize sağlık.
  • 30-06-2025, 05:10:03
    #5
    Emeğinize sağlık hocam
  • 30-06-2025, 22:28:26
    #6
    Teşekkürler emeğinize sağlık.