11.08.2025 tarihinde sembol BTC hakkında Teknik peymanchart analizi

YF olarak yfinance'i içe aktarın Pand olarak pandaları içe aktarın Talib ithal Matplotlib.pyplot'u PLT olarak içe aktarın # Verileri Son 6 ay Bitcoin 1 saat indir data = yf.download ("btc-usd", periyodu = "6mo", aralık = "1H") # İşlem için günlük EMA50 ve EMA200'ü hesaplayın Daily = < Günlük ['EMA50'] = Talib.ema (günlük ['Close'], Timeperiod = 50) Günlük ['EMA200'] = Talib.ema (günlük ['Close'], TimperioD = 200) # Günlük Trend Fonksiyonu Def get_trend (tarih): Her gün değilse. Dönüş 0 Row = Daily.loc [tarih] Eğer satır ['EMA50']> Satır ['' EMA200 ']: Dönüş 1 ELF ROW ['EMA50'] data ['Tarih'] = data .index.floor ('D') data ['Trend'] = data ['Tarih']. Uygula (get_trend) # EMA50 ve RSI saatini hesaplayın data ['EMA50'] = Talib.ema (data ['Close'], Timeperiod = 50) data ['RSI'] = Talib.rsi (data ['Close'], Timeperiod = 14) Denge = 10000 Pozisyon = 0 # 1 = Satın Al, -1 = Satış, 0 = Boş Entry_price = 0 Stop_loss_pct = 0.01 Risk_reward = 2 Esnaf = [] Aralıkta I için (1, len (data)): satır = data .iloc Önceki = data .iloc [I-1] Konum == 0 ise: Eğer satır ['Trend'] == 1: # yükseliş trend Önceki ['RSI'] <50 ve satır ['RSI' '> = 35 ve ABS (satır ['Kapat'] - satır ['EMA50'])/satır ['EMA50'] <0.01: Pozisyon = 1 Entry_price = satır ['Kapalı'] Stop_loss = entry_price * (1 - stop_loss_pct) Take_profit = entry_price + (entry_price - stop_loss)*Risk_reward Trades.Append (('satın al', row.name, entry_price)) ELF ROW ['Trend'] == -1: # Aşağı eğilim Önceki ['RSI']> 50 ve satır ['RSI'] <= 65 ve abs (satır ['Kapat'] - satır ['EMA50'])/satır ['EMA50'] <0.01: Pozisyon = -1 Entry_price = satır ['Kapalı'] Stop_loss = entry_price * (1 + stop_loss_pct) Take_profit = entry_price - (stop_loss - entry_price)*Risk_reward Trades.Append (('Sat', Row.Name, Entry_Price)) BAŞKA: Konum == 1: Eğer satır ['Düşük'] <= stop_loss: Bakiye - = (entry_price - stop_loss) Trades.append (('stop_loss', row.name, stop_loss))) Pozisyon = 0 ELF ROW ['Yüksek']> = Take_profit: Bakiye += (Take_profit - entry_price) Trades.Append (('Take_profit', Row.Name, Take_profit) Pozisyon = 0 ELIF pozisyonu == -1: Eğer satır ['Yüksek']> = stop_loss: Bakiye - = (stop_loss - entry_price) Trades.append (('stop_loss', row.name, stop_loss))) Pozisyon = 0 ELF ROW ['Düşük'] <= Take_profit: Bakiye += (entry_price - Take_profit) Trades.Append (('Take_profit', Row.Name, Take_profit) Pozisyon = 0 Yazdır (f "son bakiye: {bakiye}") Baskı ("Ticaret:") Ticarette t için: Yazdır (t) # Basit grafik Plt.Figure (şekle = (15,7)) plt.plot (data .index, data ['Kapat'], etiket = 'fiyat') t için esnafta: t ise [0] == 'Satın': plt.scatter (data [1], t [2], işaretleyici = '^', renk = 'yeşil') ELIF t [0] == 'Sat': plt.scatter (t [1], t [2], marker = 'v', color = 'kırmızı') plt.legive () plt.show ()