Стратегия торговли внутридневными показателями RSI TAM использует перекрестное соединение индикаторов RSI в разные периоды для генерации сигналов входа и выхода внутридневного курса.
Стратегия использует два индикатора RSI для генерации сигналов покупки и продажи. Сигнал покупки использует краткосрочный 2-дневный RSI и среднесрочный 14-дневный RSI, запуская покупку, когда короткий или средний RSI пересекает уровень выше 50. Сигнал продажи использует короткий 7-дневный RSI и среднесрочный 50-дневный RSI, запуская продажу, когда короткий или средний RSI пересекает уровень ниже 50.
Стратегия также требует, чтобы RSI фактически прошел порог 50, а не просто пересек его, что помогает отфильтровать многие ложные сигналы.
Условия продажи схожи:
Такой многоуровневый фильтр гарантирует, что сигналы запускаются только тогда, когда RSI показывает четкие показатели перекупленности/перепроданности, и не будут вводиться в заблуждение незначительными колебаниями.
Стратегия TAM внутридневного RSI имеет следующие преимущества:
Использование двойного РСИ обеспечивает анализ нескольких временных рамок, эффективно фильтруя рыночный шум и входя только в значительные точки переворота тренда.
Требование фактического значения RSI для прорыва ключевого порога позволяет избежать ложных сигналов прорыва.
Принятие RSI различных параметров для входа и выхода может более точно определить время обратного движения.
RSI демонстрирует относительно стабильную динамику в рамках внутридневных торговых окон, что подходит для внутридневных стратегий.
Настраиваемые параметры позволяют корректировать входные данные RSI для различных рынков и получить лучшие результаты.
Простая и ясная логика делает его легким для понимания и реализации для торговли алгоритмами.
Некоторые риски также существуют при стратегии:
Внутренняя торговля имеет риск задержки на ночь, который может превышать настройки стоп-лосса.
Дивергенция ИРС встречается часто и должна быть подтверждена с помощью других индикаторов.
Высокая волатильность внутридневных периодов означает, что стоп-лосс должен быть широким, но не слишком широким.
Оптимизация параметров может привести к чрезмерному приспособлению, что потребует тестирования на разных рынках.
Ограничения обратного тестирования не могут полностью отражать реальную торговлю, что требует настройки для живых выступлений.
Стратегия может быть улучшена в следующих аспектах:
Добавьте подтверждение с другими показателями, такими как KDJ, MACD и т.д.
Используйте фильтр громкости, чтобы учитывать только сигналы увеличения громкости.
Оптимизируйте параметры для еще более коротких внутридневных циклов.
Помощь в принятии решений с помощью моделей машинного обучения для алгоритмического поиска оптимальных параметров.
Художественный тон, сочетающий ключевые уровни S/R, графические шаблоны из технического анализа.
Улучшить стоп-лосс с помощью динамических методов 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)