peymanchart
@t_peymanchart
Ne tavsiye etmek istersiniz?
önceki makale
پیام های تریدر
filtre
sinyal türü

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 ()
Sorumluluk Reddi
Sahmeto'nun web sitesinde ve resmi iletişim kanallarında yer alan herhangi bir içerik ve materyal, kişisel görüşlerin ve analizlerin bir derlemesidir ve bağlayıcı değildir. Borsa ve kripto para piyasasına alım, satım, giriş veya çıkış için herhangi bir tavsiye oluşturmazlar. Ayrıca, web sitesinde ve kanallarda yer alan tüm haberler ve analizler, yalnızca resmi ve gayri resmi yerli ve yabancı kaynaklardan yeniden yayınlanan bilgilerdir ve söz konusu içeriğin kullanıcılarının materyallerin orijinalliğini ve doğruluğunu takip etmekten ve sağlamaktan sorumlu olduğu açıktır. Bu nedenle, sorumluluk reddedilirken, sermaye piyasası ve kripto para piyasasındaki herhangi bir karar verme, eylem ve olası kar ve zarar sorumluluğunun yatırımcıya ait olduğu beyan edilir.