Стратегия торговли внутридневными RSI TAM

Автор:Чао Чжан, Дата: 2023-10-17 16:58:46
Тэги:

img

Обзор

Стратегия торговли внутридневными показателями RSI TAM использует перекрестное соединение индикаторов RSI в разные периоды для генерации сигналов входа и выхода внутридневного курса.

Логика стратегии

Стратегия использует два индикатора RSI для генерации сигналов покупки и продажи. Сигнал покупки использует краткосрочный 2-дневный RSI и среднесрочный 14-дневный RSI, запуская покупку, когда короткий или средний RSI пересекает уровень выше 50. Сигнал продажи использует короткий 7-дневный RSI и среднесрочный 50-дневный RSI, запуская продажу, когда короткий или средний RSI пересекает уровень ниже 50.

Стратегия также требует, чтобы RSI фактически прошел порог 50, а не просто пересек его, что помогает отфильтровать многие ложные сигналы.

  • 2-дневный RSI пересекает 50
  • 2-дневный RSI больше 50
  • 14-дневный RSI превышает 50
  • 14-дневный RSI больше 50

Условия продажи схожи:

  • 7-дневный RSI пересекается ниже 50
  • 7-дневный RSI меньше 50
  • 50-дневный RSI превышает 50
  • 50-дневный RSI меньше 50

Такой многоуровневый фильтр гарантирует, что сигналы запускаются только тогда, когда RSI показывает четкие показатели перекупленности/перепроданности, и не будут вводиться в заблуждение незначительными колебаниями.

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

Стратегия TAM внутридневного RSI имеет следующие преимущества:

  1. Использование двойного РСИ обеспечивает анализ нескольких временных рамок, эффективно фильтруя рыночный шум и входя только в значительные точки переворота тренда.

  2. Требование фактического значения RSI для прорыва ключевого порога позволяет избежать ложных сигналов прорыва.

  3. Принятие RSI различных параметров для входа и выхода может более точно определить время обратного движения.

  4. RSI демонстрирует относительно стабильную динамику в рамках внутридневных торговых окон, что подходит для внутридневных стратегий.

  5. Настраиваемые параметры позволяют корректировать входные данные RSI для различных рынков и получить лучшие результаты.

  6. Простая и ясная логика делает его легким для понимания и реализации для торговли алгоритмами.

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

Некоторые риски также существуют при стратегии:

  1. Внутренняя торговля имеет риск задержки на ночь, который может превышать настройки стоп-лосса.

  2. Дивергенция ИРС встречается часто и должна быть подтверждена с помощью других индикаторов.

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

  4. Оптимизация параметров может привести к чрезмерному приспособлению, что потребует тестирования на разных рынках.

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

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

Стратегия может быть улучшена в следующих аспектах:

  1. Добавьте подтверждение с другими показателями, такими как KDJ, MACD и т.д.

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

  3. Оптимизируйте параметры для еще более коротких внутридневных циклов.

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

  5. Художественный тон, сочетающий ключевые уровни S/R, графические шаблоны из технического анализа.

  6. Улучшить стоп-лосс с помощью динамических методов ATR на основе волатильности.

Заключение

В целом, стратегия TAM внутридневного RSI является очень практичной квантовой стратегией. Она эффективно оценивает условия перекупления и перепродажи с использованием оценки RSI на несколько временных рамок и генерирует надежные сигналы в сочетании со строгими правилами входа / выхода, чтобы отфильтровать ложные сигналы. При надлежащей оптимизации и управлении рисками стратегия может производить стабильные торговые сигналы и достигать хороших результатов. Ее четкая и простая логика позволяет легко внедрять и тестировать для трейдеров algo.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © DvKel

//@version=5
strategy("TAM - RSI Strategy", overlay = true)

// Input parameters
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",  group="Backtest Time Period")
startDate = input(timestamp("2020-01-01"), title = "Start date", group = "Backtest Time Period")
buyRsiLength1 = input(2, title = "RSI Buy Length 1 (default 2)", group="Buy configuration")
buyRsiLength2 = input(14, title = "RSI Buy Length 2 (default 14)", group="Buy configuration")
buyRsiValue = input(50, title = "RSI Buy Value Signal (default 50)", group="Buy configuration")
closeRsiLength1 = input(7, title = "RSI Close Length 1 (default 7)", group="Close configuration")
closeRsiLength2 = input(50, title = "RSI Close Length 2 (default 50)", group="Close configuration")
closeRsiValue = input(50, title = "RSI Close Value Signal (default 50)", group="Close configuration")

// Check timeframe
inTradeWindow = true

// Calculate RSI
rsiBuy1Value =  ta.rsi(close, buyRsiLength1)
rsiBuy2Value = ta.rsi(close, buyRsiLength2)
rsiClose1Value =  ta.rsi(close, closeRsiLength1)
rsiClose2Value = ta.rsi(close, closeRsiLength2)

// Strategy conditions
//(ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and 
//8ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and
buyCondition = (ta.crossover(rsiBuy1Value, buyRsiValue) or ta.crossover(rsiBuy2Value, buyRsiValue)) and rsiBuy1Value > buyRsiValue and rsiBuy2Value > buyRsiValue
closeCondition = (ta.crossunder(rsiClose1Value, closeRsiValue) or ta.crossunder(rsiClose2Value, closeRsiValue)) and rsiClose1Value < closeRsiValue and rsiClose2Value < closeRsiValue


// Strategy actions
if (inTradeWindow  and buyCondition) 
    strategy.entry("Buy", strategy.long)


if (inTradeWindow and closeCondition) 
    strategy.close("Buy")

// Plot RSI and overbought/oversold levels
plotchar(rsiBuy1Value, title = "RSI-Buy1", color = color.green)
plotchar(rsiBuy2Value, title = "RSI-Buy2", color = color.lime)
plotchar(rsiClose1Value, title = "RSI-Close1", color = color.red)
plotchar(rsiClose2Value, title = "RSI-Close2", color = color.fuchsia)




Больше