
Торговая стратегия RSI, основанная на фильтре RSI, разработанном Джоном Элерсом. Стратегия RSI, основанная на фильтре John EHLERS, основанном на фильтре RSI, основанном на фильтре EHLERS, основанном на фильтре EHLERS, основанном на фильтре EHLERS.
Центральным показателем стратегии является RSI Рагеля. Его расчетная формула такова:
L0 = (1-γ)*Src + γ*L0[1]
L1 = -γ*L0 + L0[1] + γ*L1[1]
L2 = -γ*L1 + L1[1] + γ*L2[1]
L3 = -γ*L2 + L2[1] + γ*L3[1]
Здесь γ = 1-α, α является корректируемым коэффициентом, Src представляет собой цену. L0 до L3 - это 4 показателя, содержащие прогрессивные отношения. На этой основе можно рассчитать текущий восходящий коэффициент cu и нисходящий коэффициент cd:
cu = (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0) cd = (L0
Затем можно вычислить RSI Рагеля с помощью cu и cd:
LaRSI = cu / (cu + cd)
Здесь, с помощью структуры регрессивного фильтра, индикатор RSI Рагеля фильтрует большое количество случайного шума, что позволяет создать более четкий и гладкий торговый сигнал, сохраняя при этом способность распознавать тенденции RSI.
Конкретные правила: Дополнительно, когда Рагаэль наносит 20 на RSI; пустота, когда Рагаэль наносит 80 на RSI.
Основные преимущества стратегии RSI Рагеля:
Эффективная фильтрация шума RSI-индикатора через структуру фильтра Рагеля, что делает торговые сигналы более четкими и надежными
Корректировка коэффициента α позволяет гибко оптимизировать параметры стратегии для более широких рыночных условий
Сохраняет долгосрочную эффективность RSI, одновременно используя фильтры для идентификации динамики, интеграции трендов и перекупа и перепродажи
Правила стратегии просты, интуитивно понятны, легко применяются и хорошо работают в различных рыночных условиях
Основные риски этой стратегии:
Неправильная настройка коэффициента α может привести к чрезмерной задержке или чрезмерной фильтрации, пропуская изменения цены.
Частые убытки могут возникнуть в условиях резкого колебания рынка.
Продолжающийся бычий рынок может пропустить некоторые шансы на прибыль
Эта стратегия может быть оптимизирована в следующих аспектах:
Настройка для оптимизации коэффициента α с использованием алгоритмов машинного обучения
Увеличение механизма сдерживания убытков и снижение риска потерь
Фильтрация в сочетании с другими показателями
Увеличение количественного смягчения, блокирование прибыли на определенном этапе
Стратегия RSI Рагеля эффективно идентифицирует перекуп и перепродажу с помощью механизма фильтрации, избегая помех от шума при выпуске торговых сигналов. Эта стратегия проста в использовании, имеет большое пространство для оптимизации параметров и может адаптироваться к различным рыночным условиям. Это рекомендуемая стратегия торговли.
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
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/
// © mertriver1
// Developer: John EHLERS
//@version=3
// Author:Kıvanç Özbilgiç
strategy("Laguerre RSI", shorttitle="LaRSI", overlay=false)
src = input(title="Source", defval=close)
alpha = input(title="Alpha", type=float, minval=0, maxval=1, step=0.1, defval=0.2)
colorchange = input(title="Change Color ?", type=bool, defval=false)
Date1 = input(true, title = "=== Date Backtesting ===")
FromDay1 = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth1 = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear1 = input(defval = 2020, title = "From Year", minval = 2017)
ToDay1 = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth1 = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear1 = input(defval = 9999, title = "To Year", minval = 2017)
start1 = timestamp(FromYear1, FromMonth1, FromDay1, 00, 00)
finish1 = timestamp(ToYear1, ToMonth1, ToDay1, 23, 59)
window1() => time >= start1 and time <= finish1 ? true : false
gamma=1-alpha
L0 = 0.0
L0 := (1-gamma) * src + gamma * nz(L0[1])
L1 = 0.0
L1 := -gamma * L0 + nz(L0[1]) + gamma * nz(L1[1])
L2 = 0.0
L2 := -gamma * L1 + nz(L1[1]) + gamma * nz(L2[1])
L3 = 0.0
L3 := -gamma * L2 + nz(L2[1]) + gamma * nz(L3[1])
cu= (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0)
cd= (L0<L1 ? L1-L0 : 0) + (L1<L2 ? L2-L1 : 0) + (L2<L3 ? L3-L2 : 0)
temp= cu+cd==0 ? -1 : cu+cd
LaRSI=temp==-1 ? 0 : cu/temp
Color = colorchange ? (LaRSI > LaRSI[1] ? green : red) : blue
plot(100*LaRSI, title="LaRSI", linewidth=2, color=Color, transp=0)
plot(20,linewidth=1, color=maroon, transp=0)
plot(80,linewidth=1, color=maroon, transp=0)
strategy.entry("Long", true, when = window1() and crossover(cu, cd))
strategy.entry("Short", false, when = window1() and crossunder(cu, cd))