Торговые стратегии на основе индикаторов RSI и MACD


Дата создания: 2024-01-31 16:07:31 Последнее изменение: 2024-01-31 16:07:31
Копировать: 0 Количество просмотров: 919
1
Подписаться
1617
Подписчики

Торговые стратегии на основе индикаторов RSI и MACD

Обзор

Эта стратегия объединяет относительно сильный слабый индекс ((RSI) и скопленный средний скопленный индикатор ((MACD) для идентификации возможностей торговли BTC. Выполните прибыль, когда RSI ниже 30, а MACD ниже сигнальной линии, а MACD гистограмма меньше 100; сделайте пустоту, когда RSI выше 80 и MACD ниже сигнальной линии, а MACD гистограмма больше 250.

Стратегический принцип

  1. Используйте RSI, чтобы определить, является ли рынок перепроданным или перекупленным. RSI ниже 30 считается сигналом о перепродаже, а выше 80 считается сигналом о перекупе.

  2. Для определения времени покупки и продажи используйте MACD-линию и золотую вилку на сигнальной линии MACD-индикатора.

  3. Сигналы RSI и MACD в сочетании формируют входные условия для этой стратегии.

  4. Использование отслеживания остановок для блокировки прибыли, отслеживание остановок для обновления в режиме реального времени в зависимости от убытков и убытков по хранению позиций позволяет эффективно контролировать риск.

Анализ преимуществ

  1. Стратегия, которая сочетает в себе два показателя RSI и MACD, эффективно отфильтровывает ложные сигналы.

  2. Индекс RSI может эффективно оценивать перекуп и перепродажу на рынке. Индекс MACD может улавливать изменения в тренде.

  3. Использование отслеживаемого стопа позволяет остановить убытки в зависимости от рыночных действий в реальном времени, максимально блокировать прибыль и контролировать риск.

  4. Политические параметры меньше, их легче реализовать.

Анализ рисков

  1. Однородные стратегии, системные риски, существующие в самих породах.

  2. RSI может давать ложные сигналы при отклонениях в диапазоне и на дне. MACD может также давать ошибочные сигналы в шокирующих ситуациях.

  3. Следующие стоп-лосы могут быть пробиты в крупных сделках, и риск не поддается контролю.

  4. Неправильная настройка параметров может привести к частым транзакциям или пропущенным счетам.

Направление оптимизации

  1. Можно рассматривать возможность использования других индикаторов, таких как линия Бринга, KD и т. д., для создания торговых сигналов.

  2. Можно изучить взаимосвязи между разными породами, создать многородовую арбитражную стратегию.

  3. Можно оптимизировать стратегию остановки убытков, например, своевременное или среднее остановка убытков.

  4. Параметры могут быть оптимизированы с помощью машинного обучения.

Подвести итог

Эта стратегия является набором стратегий для отслеживания тенденций, основанных на RSI и MACD, которые определяют перекуп и перепродажу. Она эффективно сочетает преимущества технических индикаторов, которые позволяют уловить изменения тенденций на рынке. При этом стратегия проста, проста и проста в реализации.

Исходный код стратегии
/*backtest
start: 2023-01-24 00:00:00
end: 2024-01-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BTC/USDT RSI and MACD Strategy", overlay = true)

// Define the RSI period
rsiPeriod = input(14, "RSI Period")

// Calculate the RSI
rsi = ta.rsi(close, rsiPeriod)

// Define the MACD parameters
macdShort = input(12, "MACD Short Period")
macdLong = input(26, "MACD Long Period")
macdSignal = input(9, "MACD Signal Period")

// Calculate the MACD
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)

// Define the trailing stop level
trailing_stop_loss_factor = input.float(2.50, "Trailing Stop Loss Factor", step = 0.01)

// Define the entry and exit conditions
enterLong = ta.crossover(rsi, 30) and macdLine < signalLine and macdLine < -100
enterShort = ta.crossunder(rsi, 83) and macdLine > signalLine and macdLine > 250

// Submit the orders
if (enterLong)
    strategy.entry("Long", strategy.long)
if (enterShort)
    strategy.entry("Short", strategy.short)

// Trailing Stop Loss
longTrailingStopLoss = strategy.position_avg_price * (1 - trailing_stop_loss_factor / 100)
shortTrailingStopLoss = strategy.position_avg_price * (1 + trailing_stop_loss_factor / 100)
if strategy.position_size > 0 
    strategy.exit("Exit Long", "Long", stop  = longTrailingStopLoss)
if strategy.position_size < 0 
    strategy.exit("Exit Short", "Short", stop = shortTrailingStopLoss)

// Plot the indicators
plot(rsi, "RSI", color=color.blue)
hline(20, "RSI Lower Level", color=color.green)
hline(80, "RSI Upper Level", color=color.red)
plot(macdLine - signalLine, "MACD Histogram", color=color.red, style=plot.style_histogram)
hline(0, "Zero", color=color.gray)