
Эта стратегия основана на классической стратегии Ларри Конноса, используя двойную равномерную систему, чтобы уловить рыночные колебания в средней и короткой линиях и обеспечить безопасность в зонах сверхпокупа и сверхпродажи.
Используйте 2-циклический RSI, чтобы определить, находится ли акция в зоне перепродажи.
Для определения направления большого тренда используйте длинноциклическую среднюю ((200 циклов)). Позиции следует рассматривать только тогда, когда цена выше длинноциклической средней.
Откройте позицию по рыночной цене, когда цена выше среднесрочной, а RSI ниже отметки пробы.
Когда цены поднимаются выше средней короткого цикла (< 5 циклов), они останавливаются на одном уровне с рыночной ценой.
Кроме того, в политике есть следующие параметры:
RSI параметры: длина цикла, местоположение линий перекупа и перепродажи.
Среднелинейный параметр: длинный и короткий среднелинейный цикл.
Фильтр средней линии RSI: добавление средней линии RSI, чтобы избежать чрезмерного колебания RSI.
Параметры сдерживания убытков: можно выбрать, добавлять ли сдерживание убытков.
Использование двойной равнолинейной системы позволяет эффективно отслеживать долголинейные тренды.
Индекс RSI избегает пропускания наилучших входных моментов во время сильных колебаний.
Гибкость в настройках, оптимизация для различных параметров.
Это не так просто, как думать.
Двойная равнолинейная стратегия чувствительна к параметрам и требует оптимизации параметров для достижения оптимального эффекта.
Безлимитная установка сопряжена с риском увеличения убытков. Требуется осторожное управление капиталом, контроль за размером отдельных позиций.
В шокирующих ситуациях возможен риск потери при ложном прорыве. Можно рассмотреть оптимизацию среднелинейного цикла или добавление других условий в качестве фильтров.
Риск повторной совместимости данных. Необходимо проверять устойчивость стратегии на протяжении длительного периода времени на нескольких рынках.
Оптимизируйте комбинацию RSI и средней линии, чтобы найти оптимальные параметры.
Тестирование различных условий фильтрации входа, таких как всплеск объемов торгов, чтобы уменьшить количество ложных сигналов.
Присоединение к отслеживанию стоп-лосса для контроля за отдельными потерями. Необходимо оценить влияние установки стоп-лосса на общую прибыль.
Оценить влияние различных периодов хранения позиций на прибыль и найти оптимальный период хранения позиций.
Проверка устойчивости стратегии на более длительных временных периодах (например, на уровне солнечных лучей).
Эта стратегия объединяет в себе отслеживание двойной равномерной тенденции и особенности RSI, и является типичной системой прорыва. Благодаря оптимизации параметров, строгому управлению капиталом и проверке устойчивости, эта стратегия может стать мощным инструментом для количественной торговли. Однако трейдеру необходимо быть бдительным, чтобы отследить проблемы с совместимостью и продолжать корректировать и совершенствовать стратегию в реальном мире, чтобы адаптироваться к изменяющейся рыночной среде.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("RSI Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
//Starter Parameters
length = input(title="RSI Lenght", defval=2)
overBoughtRSI = input(title="OverBought Level for RSI", defval=10)
shortLength = input(title="Short MA Length", defval=5)
longLength = input(title="Long MA Length", defval=200)
RuleMRSI=input(title="RSI Moving Average Filter", defval= true)
lengthmrsi=input(title="RSI Moving Average Length", defval=4)
overBoughtMRSI=input(title="OverBought Level for the Moving Average of the RSI", defval=30)
Rulestop=input(title="Apply Stop Loss", defval=false)
stop_percentual=input(title="% Stop Loss", defval=10)
//RSI
vrsi = rsi(close, length)
//Moving Averages
longma = sma(close,longLength)
shortma = sma(close,shortLength)
mrsi=sma(vrsi,lengthmrsi)
//Stop Loss
stop_level = strategy.position_avg_price*((100-stop_percentual)/100)
//Backtest Period
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
//Strategy
if testPeriod() and (not na(vrsi))
if (RuleMRSI==false) and (Rulestop==false)
if (vrsi<overBoughtRSI) and (close>longma)
strategy.entry("RsiLE", strategy.long , comment="Open")
if (close>shortma)
strategy.close_all()
if (RuleMRSI==true) and (Rulestop==false)
if (vrsi<overBoughtRSI) and (close>longma) and (mrsi<overBoughtMRSI)
strategy.entry("RsiLE", strategy.long , comment="Open")
if (close>shortma)
strategy.close_all()
if (RuleMRSI==false) and (Rulestop==true)
if (vrsi<overBoughtRSI) and (close>longma)
strategy.entry("RsiLE", strategy.long , comment="Open")
strategy.exit("RsiLE", stop = stop_level)
if (close>shortma)
strategy.close_all()
if (RuleMRSI==true) and (Rulestop==true)
if (vrsi<overBoughtRSI) and (close>longma) and (mrsi<overBoughtMRSI)
strategy.entry("RsiLE", strategy.long , comment="Open")
strategy.exit("RsiLE", stop = stop_level)
if (close>shortma)
strategy.close_all()