تحليل التحليل الفني peymanchart حول BTC في رمز في 15 منذ ساعة

استیراد yfinance کما yf استیراد الباندا کـ PD استیراد طالب استیراد matplotlib.pyplot کما plt # تنزیل البیانات الماضی 6 أشهر Bitcoin 1 ساعة data = yf.download ("BTC-USD" ، الفترة = "6MO" ، stiptal = "1H") # حساب EMA50 و EMA200 یومیا لهذه العملیة یومیا = < یومیًا ['ema50'] = talib.ema (یومیًا ['Close'] ، timeperiod = 50) یومیًا ['EMA200'] = talib.ema (یومیًا ['Close'] ، timperiod = 200) # وظیفة الاتجاه الیومی def get_trend (التاریخ): إذا لم یکن التاریخ فی الیومیة. إرجاع 0 صف = DAYLAY.LOC [تاریخ] إذا کان الصف ['ema50']> صف ['' ema200 ']: العودة 1 صف ألیف ['ema50'] data ['date'] = data .index.floor ('D') data ["الاتجاه"] = data ['تاریخ']. تطبیق (get_trend) # حساب EMA50 و RSI ساعة data ['ema50'] = talib.ema (data ['Close'] ، timeperiod = 50) data ['rsi'] = talib.rsi (data ['Close'] ، timeperiod = 14) التوازن = 10000 الموضع = 0 # 1 = شراء ، -1 = بیع ، 0 = فارغ intrad_price = 0 STOP_LOSS_PCT = 0.01 Risk_Reward = 2 تداول = [] لأنی فی المدى (1 ، لین (data)): الصف = data .iloc PRED = data .iloc [I-1] إذا کان الموضع == 0: إذا کان الصف ["الاتجاه"] == 1: # الاتجاه الأعلى إذا کان السابق ['rsi'] <50 و row ['rsi' '> = 35 و ABS (الصف ["إغلاق"] - صف ['EMA50'])/صف ['ema50'] <0.01: الموقف = 1 endring_price = صف ['یغلق'] stop_loss = intern_price * (1 - stop_loss_pct) take_profit = intpling_price + (interprice_price - stop_loss)*Risk_Reward Trades.Append (('buy' ، row.name ، intpling_price)) صف ألیف ['الاتجاه'] == -1: # الاتجاه الهبوطی إذا کان السابق ['rsi']> 50 و row ['rsi'] <= 65 و ABS (الصف ["إغلاق"] - صف ['EMA50'])/صف ['ema50'] <0.01: الموضع = -1 endring_price = صف ['یغلق'] stop_loss = enter_price * (1 + stop_loss_pct) take_profit = intern_price - (stop_loss - intern_price)*Risk_Reward Trades.Append (('Sell' ، row.name ، intpling_price)) آخر: إذا کان الموضع == 1: إذا کان الصف ['low'] <= stop_loss: الرصید - = (enter_price - stop_loss) Trades.Append (('stop_loss' ، row.name ، stop_loss))))) الموضع = 0 صف ألیف ['high']> = take_profit: الرصید += (take_profit - enter_price) Trades.Append (('take_profit' ، row.name ، take_profit) الموضع = 0 موقف ULIF == -1: إذا کان الصف ['' High ']> = stop_loss: الرصید - = (stop_loss - enter_price) Trades.Append (('stop_loss' ، row.name ، stop_loss))))) الموضع = 0 صف ألیف ['low'] <= take_profit: الرصید += (enter_price - take_profit) Trades.Append (('take_profit' ، row.name ، take_profit) الموضع = 0 طباعة (F "الرصید النهائی: {الرصید}") طباعة ("المهن:") لـ data فی التداولات: طباعة (data) # مخطط بسیط plt.Figure (Figsize = (15،7)) plt.plot (data .index ، data ['Close'] ، label = 'price') لـ t فی التداولات: إذا t [0] == "شراء": plt.Scatter (t [1] ، t [2] ، marker = '^' ، color = 'green') ألیف t [0] == "بیع": plt.pcatter (t [1] ، <33> [2] ، marker = 'v' ، color = 'Red') plt.legive () plt.show ()