Стратегия RSI BB SMA — это популярный подход к техническому анализу, используемый трейдерами и инвесторами для определения потенциальных возможностей покупки и продажи на финансовых рынках.
Это комбинация трех ключевых индикаторов, а именно индекса относительной силы (RSI), полос Боллинджера (BB) и простой скользящей средней (SMA). В этой статье мы объясним концепции этих индикаторов и покажем вам, как реализовать стратегию RSI BB SMA на Python.
Индекс относительной силы — это осциллятор импульса, который измеряет силу движения цены финансового инструмента.
Полосы Боллинджера — это индикатор волатильности, который строит скользящую среднюю и две линии стандартного отклонения выше и ниже скользящей средней.
Простое скользящее среднее — это широко используемый технический индикатор, который рассчитывает среднюю цену финансового инструмента за определенное количество периодов.
df['RSI']=ta.momentum.rsi(close=df['close'], window=14,fillna= True) df['SMA']=((ta.trend.sma_indicator(close=df['close'], window=11,fillna= True)) df['bol_medium'] = (ta.volatility.bollinger_mavg(df['close'], window=20) ))
Вот код для реализации стратегии RSI BB SMA в Python.
for i in range(0, len(df)): if (df.iloc[i]['SMA2'] < df.iloc[i]['bol_medium']) and (df.iloc[i]['RSI'] < 50): signals.append(-1) elif (df.iloc[i]['SMA2'] > df.iloc[i]['bol_medium']) and (df.iloc[i]['RSI'] > 50): signals.append(1) else: signals.append(0)
После тестирования стратегии ChatGPT в ETHUSDT за все время, в часовом таймфрейме, вложив 1000$, мы заработали за 5 лет 508 662$
Вот код Backtest, используемый в БУДУЩЕМ:
df["signal"] = signals print(signals) investment = 1000 current_investment = 1000 invested_amount = 0 fees = 0 profit = 0 is_invested = 0 best_trade = -99999999 worst_trade = 99999999 largest_loss = 0 largest_gain = 0 total_trades = 0 for i in range(500, len(df)): signal = df.iloc[i]['signal'] close = df.iloc[i]['close'] if signal == 1 and is_invested == 0: # Long signal and no position entry_point = close quantity = (current_investment / close) invested_amount = quantity * close is_invested = 1 elif signal == -1 and is_invested == 0: # Short signal and no position entry_point = close quantity = (current_investment / close) invested_amount = quantity * close is_invested = -1 elif signal == -1 and is_invested == 1 : # Close long position for short signal profit = quantity * (- entry_point + close) current_investment += profit invested_amount = 0 total_trades += 1 if profit > largest_gain: largest_gain = profit if profit < largest_loss: largest_loss = profit if profit > best_trade: best_trade = profit if profit < worst_trade: worst_trade = profit entry_point = close quantity = (current_investment / close) invested_amount = quantity * close is_invested = -1 elif signal == 1 and is_invested == -1: # Close short position for long signal profit = quantity * ( - close + entry_point) current_investment += profit invested_amount = 0 total_trades += 1 if profit > largest_gain: largest_gain = profit if profit < largest_loss: largest_loss = profit if profit > best_trade: best_trade = profit if profit < worst_trade: worst_trade = profit entry_point = close quantity = (current_investment / close) invested_amount = quantity * close is_invested = 1 else: pass final_profit = current_investment - investment print("Final Profit: ", final_profit) print("Best Trade: ", best_trade) print("Worst Trade: ", worst_trade) print("Largest Loss: ", largest_loss) print("Largest Gain: ", largest_gain) print("Total Trades: ", total_trades)
Стратегия RSI BB SMA — это мощный подход к техническому анализу, который сочетает в себе силу трех ключевых индикаторов для определения потенциальных возможностей покупки и продажи на финансовых рынках. Используя библиотеки pandas
и ta
, легко реализовать стратегию RSI BB SMA на Python.
Однако важно помнить, что технический анализ не должен быть единственным подходом, используемым для принятия инвестиционных решений, и что также необходимо глубокое понимание финансовых рынков и базовых активов.