В процессе загрузки ресурсов... загрузка...

Супертенд с двойными временными рамками с системой оптимизации RSI

Автор:Чао Чжан, Дата: 2024-11-25 17:27:21
Тэги:РСИATR

img

Обзор

Эта стратегия представляет собой двойную торговую систему временных рамок, основанную на индикаторе SuperTrend и RSI. Она сочетает в себе технические индикаторы анализа из 120-минутных и 15-минутных временных рамок, используя SuperTrend для определения среднесрочного направления тренда при использовании RSI для получения прибыли. Стратегия реализует размещение позиций через процентное распределение и включает в себя процентные условия получения прибыли.

Принципы стратегии

Основная логика основана на нескольких ключевых элементах:

  1. Использует 120-минутный индикатор SuperTrend в качестве основного инструмента определения тренда с периодом ATR 14 и фактором 3,42.
  2. Создает торговые сигналы через ценовые перекрестки с линией SuperTrend - восходящие перекрестки для длинных входов и нисходящие перекрестки для коротких входов
  3. Использует 15-минутный индикатор RSI с периодом 5 в качестве дополнительного инструмента для оценки условий перекупления/перепродажи на рынке
  4. Закрывает длинные позиции, когда RSI достигает зоны перекупа (95) и короткие позиции в зоне перепродажи (5)
  5. Устанавливает уровень прибыли в размере 30%, рассчитанный относительно средней входной цены

Преимущества стратегии

  1. Сочетание нескольких временных рамок повышает надежность сигнала и уменьшает количество ложных сигналов
  2. Оптимизированные параметры SuperTrend сбалансируют чувствительность к тренду при избежании чрезмерной торговли
  3. Строгие экстремальные значения RSI (5 и 95) обеспечивают закрытие позиции только в экстремальных условиях
  4. Размер позиций использует фиксированный процент собственного капитала (35%), эффективно контролируя риск при сохранении потенциала прибыли
  5. Автоматически закрывает обратные позиции перед открытием новых, избегая одновременной длинной и короткой позиции

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

  1. Двойной временной подход может создать задержку на различных рынках, что требует управления снижением
  2. Строгие экстремальные значения РСИ могут привести к упущенным возможностям получения прибыли
  3. Уровень прибыли в 30% является агрессивным, что может привести к раннему выходу на волатильных рынках
  4. Отсутствие условий стоп-лосса может привести к значительным потерям при резком изменении тренда
  5. Размер позиции 35% является относительно агрессивным, создавая высокий риск во время крайней волатильности

Руководство по оптимизации

  1. Рекомендовать добавить динамический механизм остановки потерь, учитывая остановки на основе ATR
  2. Для улучшения адаптивности пороговые значения перекупленности/перепроданности по РСИ могут быть скорректированы до 10 и 90
  3. Для подтверждения сигнала могут быть добавлены показатели объема
  4. Рассматривать динамическое размещение позиций на основе волатильности рынка с использованием ATR или показателей волатильности
  5. Предлагаю добавить фильтры силы тренда, такие как DMI или ADX, чтобы отфильтровать слабые тенденции

Резюме

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


/*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"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © felipemiransan

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Function for Supertrend
supertrend(_factor, _atrPeriod) =>
    [out, _] = ta.supertrend(_factor, _atrPeriod)
    out

// Supertrend Settings
factor = input.float(3.42, title="Supertrend Factor")
atrPeriod = input.int(14, title="ATR Period")
tf2 = input.timeframe("120", title="Supertrend Timeframe")

// RSI Settings
rsi_tf = input.timeframe("15", title="RSI Timeframe")
rsiLength = input.int(5, title="RSI Length")
rsiUpper = input.int(95, title="RSI Upper Limit")  
rsiLower = input.int(5, title="RSI Lower Limit")   

// RSI Timeframe
rsi_tf_value = request.security(syminfo.tickerid, rsi_tf, ta.rsi(close, rsiLength), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Supertrend Timeframe
supertrend_tf2 = request.security(syminfo.tickerid, tf2, supertrend(factor, atrPeriod), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off)

// Take Profit Settings (Percentage in relation to the average price)
takeProfitPercent = input.float(30, title="Take Profit", step=0.1) / 100

// Entry conditions based on price crossover with Supertrend Timeframe
longCondition = ta.crossover(close, supertrend_tf2) and barstate.isconfirmed
shortCondition = ta.crossunder(close, supertrend_tf2) and barstate.isconfirmed

// Execution of reversal orders with closing of previous position
if (longCondition)
    // Close a short position before opening a long position
    if (strategy.position_size < 0)
        strategy.close("Short", comment="Close Short for Long Entry")
    strategy.entry("Long", strategy.long)

if (shortCondition)
    // Close long position before opening short position
    if (strategy.position_size > 0)
        strategy.close("Long", comment="Close Long for Short Entry")
    strategy.entry("Short", strategy.short)

// Calculate take profit levels relative to the average entry price
if (strategy.position_size > 0)
    takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent)
    strategy.exit("Take Profit Long", "Long", limit=takeProfitLong)

if (strategy.position_size > 0 and (rsi_tf_value >= rsiUpper))
    strategy.close("Long", comment="RSI Take Profit Long")

if (strategy.position_size < 0)
    takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent)
    strategy.exit("Take Profit Short", "Short", limit=takeProfitShort)

if (strategy.position_size < 0 and (rsi_tf_value <= rsiLower))
    strategy.close("Short", comment="RSI Take Profit Short")

// Plot Supertrend timeframe with commit check to avoid repainting
plot(barstate.isconfirmed ? supertrend_tf2 : na, color=color.blue, title="Supertrend Timeframe (120 min)", linewidth=1)

// Plot RSI for visualization
plot(rsi_tf_value, "RSI", color=color.purple)
hline(rsiUpper, "RSI Upper", color=color.red)
hline(rsiLower, "RSI Lower", color=color.green)




Связанные

Больше