import requests import numpy as np from datetime import datetime def kNN_strategy(indicator, short_window, long_window, base_k, filter, bars_threshold): # Veri hazırlığı feature1 = np.array([]) # feature1 verilerini saklamak için boş bir dizi feature2 = np.array([]) # feature2 verilerini saklamak için boş bir dizi directions = np.array([]) # yön verilerini saklamak için boş bir dizi predictions = np.array([]) # tahminleri saklamak için boş bir dizi bars = 0 # işlem süresini takip etmek için bir sayaç dates = [] # İşlem tarihlerini saklamak için bir liste # Binance REST API isteği url = 'https://api.binance.com/api/v3/klines' params = { 'symbol': 'AVAXUSDT', 'interval': '15m', 'limit': bars_threshold + long_window # Gerekli çubuk sayısı + uzun pencere boyutu } response = requests.get(url, params=params) data = response.json() # Fiyatları alma ve işlemler close_prices = np.array([float(d[4]) for d in data]) dates = [datetime.utcfromtimestamp(d[0] / 1000).strftime('%Y-%m-%d %H:%M:%S') for d in data[:-long_window]] feature1 = close_prices[:-long_window] # feature1: Son uzun pencere boyutundaki kapanış fiyatları feature2 = np.array([float(d[7]) for d in data[:-long_window]]) # feature2: Son uzun pencere boyutundaki hacimler # Algoritma lojikleri for i in range(long_window, len(feature1)): # feature1 ve feature2 üzerinde gerekli hesaplamaları yapın # Örnek bir alım sinyali üretimi if feature1[i] > feature1[i-1] and feature1[i-1] < feature1[i-2]: predictions = np.append(predictions, 1) # 1: Alım sinyali print("Alım Tarihi (GMT):", dates[i]) print("Alım Fiyatı:", close_prices[i]) else: predictions = np.append(predictions, 0) # 0: Satım sinyali print("Satım Tarihi (GMT):", dates[i]) print("Satım Fiyatı:", close_prices[i]) # İşlemleri gerçekleştir ve sonuçları döndür... return predictions # Örnek kullanım indicator = 'RSI' short_window = 14 long_window = 28 base_k = 252 filter = False bars_threshold = 300 predictions = kNN_strategy(indicator, short_window, long_window, base_k, filter, bars_threshold)