Количественная торговая стратегия совместного отслеживания тренда RSI и AO

RSI AO TP SL
Дата создания: 2024-11-12 16:05:28 Последнее изменение: 2024-11-12 16:05:28
Копировать: 1 Количество просмотров: 495
1
Подписаться
1617
Подписчики

Количественная торговая стратегия совместного отслеживания тренда RSI и AO

Обзор

Стратегия является количественной торговой стратегией, основанной на синергетическом взаимодействии относительно сильных и слабых индикаторов (RSI) и динамических колебателей (AO). Стратегия в основном идентифицирует потенциальные возможности для торговли, улавливая сигналы о том, что RSI пробивает 50 горизонтальных линий, а AO находится в отрицательной зоне. Стратегия использует процентный стоп-стоп для управления рисками, по умолчанию используя 10% средств в счете для торговли.

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

Основная логика стратегии основана на взаимодействии двух технических показателей:

  1. RSI-индикатор: использует 14-циклический RSI-индикатор для мониторинга движения цены, который рассматривается как восходящая сила, когда RSI прорывается через 50 по центральной оси.
  2. Показатель АО: расчет движения цены на 5 циклов и 34 циклов с помощью скользящих средних, показывающих, что рынок находится в зоне перепродажи, когда АО отрицательно.
  3. Условия входа: открыть позицию, когда RSI превысит 50 и AO будет отрицательным, что означает поймать обратный сигнал в зоне перепродажи.
  4. Условия выхода: использование 2% стоп-стопа и 1% стоп-лосса, чтобы гарантировать, что риск-прибыль каждой сделки является разумным.

Стратегические преимущества

  1. Высокая надежность сигнала: повышенная надежность торгового сигнала с помощью двойного подтверждения RSI и AO.
  2. Улучшенный контроль риска: установлен фиксированный процент стоп-стоп, эффективно контролирующий риск каждой сделки.
  3. Наука управления капиталом: использование фиксированной доли средств счета для торговли, избегая чрезмерного леверинга.
  4. Логика ясна и проста: правила стратегии интуитивно понятны, их легко понять и применить.
  5. Хороший визуальный эффект: на графике четко обозначены различные сигналы, которые помогают трейдерам распознавать и подтверждать.

Стратегический риск

  1. Риск ложного прорыва: RSI превышает 50 возможные ложные прорывы, подтверждение которых требуется в сочетании с другими техническими показателями.
  2. Слишком маленький стоп: стоп 1% может быть слишком маленьким и подвержен рыночным колебаниям.
  3. Ограничение односторонней торговли: стратегия заключается в том, чтобы делать больше и не делать пробелов, что может привести к упущению возможности в пустой рынок.
  4. Влияние сдвига: при резких колебаниях на рынке может возникнуть риск сдвига.
  5. Чувствительность параметров: эффективность стратегии сильно зависит от параметров RSI и AO.

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

  1. Фильтрация сигнала: рекомендуется добавить механизм подтверждения загрузки, чтобы повысить надежность сигнала.
  2. Динамический стоп: можно изменить фиксированный стоп на следящий стоп, чтобы лучше защитить прибыль.
  3. Параметровая оптимизация: рекомендуется оптимизировать историческую обратную связь для циклов RSI и параметров AO.
  4. Проверка рынка: добавление определения рыночной тенденции, открытие торговли только в случае повышения тенденции.
  5. Управление позицией: может быть изменена пропорция открытия позиции в зависимости от динамики сигнала.

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

Это стратегия отслеживания тенденций в сочетании с показателями RSI и AO, которая позволяет совершать множественные сделки, захватывая обратные сигналы в районах перепродажи. Стратегия разработана разумно, риск контролируется, но все еще есть место для оптимизации.

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

//@version=5
strategy(title="🐂 BUY Only - RSI Crossing 50 + AO Negative", shorttitle="🐂 AO<0 RSI+50 Strategy", overlay=true)

// -----------------------------
// --- User Inputs ---
// -----------------------------

// RSI Settings
rsiPeriod = input.int(title="RSI Period", defval=14, minval=1)

// AO Settings
aoShortPeriod = input.int(title="AO Short Period", defval=5, minval=1)
aoLongPeriod = input.int(title="AO Long Period", defval=34, minval=1)

// Strategy Settings
takeProfitPerc = input.float(title="Take Profit (%)", defval=2.0, minval=0.0, step=0.1)
stopLossPerc = input.float(title="Stop Loss (%)", defval=1.0, minval=0.0, step=0.1)

// -----------------------------
// --- Awesome Oscillator (AO) Calculation ---
// -----------------------------

// Calculate the Awesome Oscillator
ao = ta.sma(hl2, aoShortPeriod) - ta.sma(hl2, aoLongPeriod)

// Detect AO Crossing Zero
aoCrossOverZero = ta.crossover(ao, 0)
aoCrossUnderZero = ta.crossunder(ao, 0)

// -----------------------------
// --- Relative Strength Index (RSI) Calculation ---
// -----------------------------

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

// Detect RSI Crossing 50
rsiCrossOver50 = ta.crossover(rsiValue, 50)
rsiCrossUnder50 = ta.crossunder(rsiValue, 50)

// -----------------------------
// --- Plotting Arrows and Labels ---
// -----------------------------

// Plot AO Cross Over Arrow (AO+)
plotshape(series=aoCrossOverZero,
          location=location.belowbar,
          color=color.green,
          style=shape.labelup,
          title="AO Crosses Above Zero",
          text="AO+",
          textcolor=color.white,
          size=size.small)

// Plot AO Cross Under Arrow (AO-)
plotshape(series=aoCrossUnderZero,
          location=location.abovebar,
          color=color.red,
          style=shape.labeldown,
          title="AO Crosses Below Zero",
          text="AO-",
          textcolor=color.white,
          size=size.small)

// Plot RSI Cross Over Arrow (RSI Up)
plotshape(series=rsiCrossOver50,
          location=location.belowbar,
          color=color.blue,
          style=shape.labelup,
          title="RSI Crosses Above 50",
          text="RSI Up",
          textcolor=color.white,
          size=size.small)

// Plot RSI Cross Under Arrow (RSI Down)
plotshape(series=rsiCrossUnder50,
          location=location.abovebar,
          color=color.orange,
          style=shape.labeldown,
          title="RSI Crosses Below 50",
          text="RSI Down",
          textcolor=color.white,
          size=size.small)

// -----------------------------
// --- Buy Signal Condition ---
// -----------------------------

// Define Buy Signal: AO is negative and previous bar's RSI > 50
buySignal = (ao < 0) and (rsiValue[1] > 50)

// Plot Buy Signal
plotshape(series=buySignal,
          location=location.belowbar,
          color=color.lime,
          style=shape.triangleup,
          title="Buy Signal",
          text="BUY",
          textcolor=color.black,
          size=size.small)

// -----------------------------
// --- Strategy Execution ---
// -----------------------------

// Entry Condition
if buySignal
    strategy.entry("Long", strategy.long)

// Exit Conditions
// Calculate Stop Loss and Take Profit Prices
if strategy.position_size > 0
    // Entry price
    entryPrice = strategy.position_avg_price

    // Stop Loss and Take Profit Levels
    stopLevel = entryPrice * (1 - stopLossPerc / 100)
    takeProfitLevel = entryPrice * (1 + takeProfitPerc / 100)

    // Submit Stop Loss and Take Profit Orders
    strategy.exit("Exit Long", from_entry="Long", stop=stopLevel, limit=takeProfitLevel)