Интеллектуальная торговая стратегия Dual Time Period Super Trend RSI

RSI ATR
Дата создания: 2024-11-25 11:18:30 Последнее изменение: 2024-11-25 11:18:30
Копировать: 0 Количество просмотров: 551
1
Подписаться
1617
Подписчики

Интеллектуальная торговая стратегия Dual Time Period Super Trend RSI

Обзор

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

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

Стратегия основана на следующих ключевых логиках:

  1. Используйте индикатор супертенденции ATR с периодом 10, с коэффициентом 3.0, рассчитанный на 5-минутных и 60-минутных периодах соответственно.
  2. На 5-минутных и 60-минутных циклах индикаторы сверхтрендов являются многонаправленными, а когда RSI больше 60, они вызывают многосигнал.
  3. На 5-минутных и 60-минутных циклах, когда индикатор сверхтенденции направлен вверх и RSI меньше 40, он вызывает сигналы об отрыве.
  4. Когда 5-минутный цикл сверх трендового индикатора поворачивает, позиции, находящиеся в противоположном направлении, выпадают.
  5. Не разрешается делать пустые позиции в течение 60 минут, когда индикатор сверх тренда находится на верхнем уровне, и не разрешается делать дополнительные позиции в течение 60 минут, когда индикатор сверх тренда находится на верхнем уровне.
  6. Предоставление функций остановки, потери и мобильной потери на основе баллов или процентов.
  7. В режиме суточной торговли открывать позиции можно только в определенные торговые часы.

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

  1. Многоциклическая синхронность: эффективное снижение ложных сигналов путем объединения сверхтенденционных индикаторов разных временных периодов.
  2. Подтверждение RSI: использование RSI для подтверждения тенденций, повышения надежности торгов.
  3. Идеальное управление ветром: предлагает разнообразные решения для остановки и остановки, включая фиксированную остановку, процентную остановку и подвижную остановку.
  4. Гибкость: в зависимости от потребностей трейдера можно выбрать режим суточного или позиционного хранения, а также настроить время торгов.
  5. Тренд-слежение: автоматическое выравнивание позиций с помощью изменения направления сверхтенденционного индикатора, эффективное удержание трендовых переворотов.

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

  1. Риск шокирующего рынка: возможно частое возникновение торговых сигналов на рынке в условиях поперечного колебания, что приводит к чрезмерной торговле.
  2. Риск проскальзывания: при резких рыночных колебаниях может произойти отклонение от ожиданий в результате проскальзывания.
  3. Задержка сигнала: из-за использования 60-минутного цикла индикатора может возникнуть задержка сигнала в точке перехода тренда.
  4. Риски управления деньгами: неправильная установка стоп-лосса может привести к слишком большим единовременным убыткам

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

  1. Внедрение самостоятельной адаптации к волатильности: можно регулировать фактор сверхтенденции и циклы ATR в зависимости от динамики волатильности рынка.
  2. Повышение показателей трафика: объединение анализа трафика, повышение надежности сигнала.
  3. Оптимизация RSI: можно определить оптимальный RSI-покупка и продажа через отслеживание данных.
  4. Усовершенствование управления позициями: увеличение динамического механизма управления позициями, автоматическая корректировка доли открытых позиций в зависимости от степени риска на рынке.
  5. Увеличение фильтрации силы тренда: введение индикатора силы тренда, фильтрация торговых сигналов в условиях слабой тенденции.

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

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

Исходный код стратегии
/*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
// Author: Debabrata Saha
strategy("Supertrend Dual Timeframe with RSI", overlay=true)

// Input for System Mode (Positional/Intraday)
systemMode = input.string("Intraday", title="System Mode", options=["Intraday", "Positional"])

// Input for Intraday Session Times
startSession = input(timestamp("2023-10-01 09:15"), title="Intraday Start Session (Time From)")
endSession = input(timestamp("2023-10-01 15:30"), title="Intraday End Session (Time To)")

// Input for Target Settings (Off/Points/%)
targetMode = input.string("Off", title="Target Mode", options=["Off", "Points", "%"])
target1Value = input.float(10, title="Target 1 Value", step=0.1)
target2Value = input.float(20, title="Target 2 Value", step=0.1)

// Input for Stoploss Settings (Off/Points/%)
stoplossMode = input.string("Off", title="Stoploss Mode", options=["Off", "Points", "%"])
stoplossValue = input.float(10, title="Stoploss Value", step=0.1)

// Input for Trailing Stop Loss (Off/Points/%)
trailStoplossMode = input.string("Off", title="Trailing Stoploss Mode", options=["Off", "Points", "%"])
trailStoplossValue = input.float(5, title="Trailing Stoploss Value", step=0.1)

// Supertrend settings
atrPeriod = input(10, title="ATR Period")
factor = input(3.0, title="Supertrend Factor")

// Timeframe definitions
timeframe5min = "5"
timeframe60min = "60"

// Supertrend 5-min and 60-min (ta.supertrend returns two values: [Supertrend line, Buy/Sell direction])
[st5minLine, st5minDirection] = ta.supertrend(factor, atrPeriod)
[st60minLine, st60minDirection] = request.security(syminfo.tickerid, timeframe60min, ta.supertrend(factor, atrPeriod))

// RSI 5-min
rsi5min = ta.rsi(close, 14)

// Conditions for Buy and Sell signals
isSupertrendBuy = (st5minDirection == 1) and (st60minDirection == 1)
isSupertrendSell = (st5minDirection == -1) and (st60minDirection == -1)

buyCondition = isSupertrendBuy and (rsi5min > 60)
sellCondition = isSupertrendSell and (rsi5min < 40)

// Exit conditions
exitBuyCondition = st5minDirection == -1
exitSellCondition = st5minDirection == 1

// Intraday session check
inSession = true

// Strategy Logic (Trades only during the intraday session if systemMode is Intraday)
if (buyCondition and inSession)
    strategy.entry("Buy", strategy.long)

if (sellCondition and inSession)
    strategy.entry("Sell", strategy.short)

// Exit logic using strategy.close() to close the position at market price
if (exitBuyCondition)
    strategy.close("Buy")

if (exitSellCondition)
    strategy.close("Sell")

// No Sell when 60-min Supertrend is green and no Buy when 60-min Supertrend is red
if isSupertrendSell and (st60minDirection == 1)
    strategy.close("Sell")

if isSupertrendBuy and (st60minDirection == -1)
    strategy.close("Buy")

// Target Management
if (targetMode == "Points")
    strategy.exit("Target 1", "Buy", limit=close + target1Value)
    strategy.exit("Target 2", "Sell", limit=close - target2Value)
if (targetMode == "%")
    strategy.exit("Target 1", "Buy", limit=close * (1 + target1Value / 100))
    strategy.exit("Target 2", "Sell", limit=close * (1 - target2Value / 100))

// Stoploss Management
if (stoplossMode == "Points")
    strategy.exit("Stoploss", "Buy", stop=close - stoplossValue)
    strategy.exit("Stoploss", "Sell", stop=close + stoplossValue)
if (stoplossMode == "%")
    strategy.exit("Stoploss", "Buy", stop=close * (1 - stoplossValue / 100))
    strategy.exit("Stoploss", "Sell", stop=close * (1 + stoplossValue / 100))

// Trailing Stop Loss
if (trailStoplossMode == "Points")
    strategy.exit("Trail SL", "Buy", trail_price=na, trail_offset=trailStoplossValue)
    strategy.exit("Trail SL", "Sell", trail_price=na, trail_offset=trailStoplossValue)
if (trailStoplossMode == "%")
    strategy.exit("Trail SL", "Buy", trail_price=na, trail_offset=trailStoplossValue / 100 * close)
    strategy.exit("Trail SL", "Sell", trail_price=na, trail_offset=trailStoplossValue / 100 * close)