
Эта стратегия реализует простую стратегию торговли по понижению на основе относительно сильного индикатора RSI. Купить, когда RSI ниже 30 и продавать, когда RSI выше 40. Время удержания позиции фиксируется на 10 дней.
Эта стратегия основана на создании торговых сигналов в зоне перепродажи и зоне перекупа RSI. RSI отражает замедление падения внутрициклических колебаний. RSI ниже 30 означает, что он превышает зону продажи, и цена может отскочить.
В частности, эта стратегия сначала рассчитывает 10-дневный RSI, а затем устанавливает порог 30 и 40. Когда 10-дневный RSI ниже 30, он создает сигнал покупки, когда 10-дневный RSI выше 40, он создает сигнал продажи. После получения сигнала покупки, открытие позиции. После получения сигнала продажи, если число дней, проведенных на позиции, превышает 10 дней, то сразу же продается нижняя позиция; если число дней, проведенных на позиции, меньше 10 дней, то продолжается до 10-го дня продажи.
Стратегия проста и понятна, используя RSI, чтобы определить зоны перепродажи и перекупа, чтобы реализовать стратегию торговли на убыль, основанную на показателях.
Стратегия использует широко используемые RSI-индикаторы. Параметры RSI могут быть скорректированы и оптимизированы для различных циклов и рыночных условий.
RSI может отражать тенденции изменения цены. Стратегия определяет движение цены на основе показателя RSI, что позволяет легко отслеживать тенденции.
Стратегия использует фиксированный срок удержания позиции, что позволяет эффективно контролировать одиночные потери. При этом параметры RSI могут быть скорректированы, чтобы снизить вероятность ошибочной сделки.
Параметры RSI могут быть настроены гибко, но чрезмерная оптимизация и отклонение от отсчета могут привести к риску реального риска.
RSI относится к трендовым индикаторам, медленно реагирует на внезапные события, имеет определенную отсталость. Его следует оптимизировать в сочетании с другими показателями.
Фиксированное время удержания позиции навязывает точку остановки и не может быть скорректировано в соответствии с изменениями рынка.
Оптимизация параметров RSI, тестирование влияния различных параметров на стратегию
Добавление других показателей, формирование портфеля показателей, использование преимуществ различных показателей
Оптимизация стратегии стоп-стоп, позволяющая динамично адаптироваться к изменениям рынка
Оптимизация управления позициями, динамическая корректировка позиций в соответствии с рыночными условиями
Испытание сортов, подходящих для этой стратегии, выбор сортов с хорошей ликвидностью и высокой волатильностью
Оптимизация времени торгов, тестирование влияния различных часов торгов на стратегию
Эта стратегия в целом довольно проста, благодаря RSI-индикатору реализуется стратегия торговли, основанная на обесценении. Преимущества стратегии просты, просты в понимании, риск-контроль относительно хорош. Но также существуют проблемы с оптимизацией параметров RSI, не гибкостью стоп-стоп. Будущие направления оптимизации включают оптимизацию параметров, оптимизацию стоп-стоп, управление позициями.
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 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/
// © Bitduke
//@version=4
// strategy("Simple RSI Buy/Sell at a level", shorttitle="Simple RSI Strategy", overlay=true,calc_on_every_tick=false,pyramiding=1, default_qty_type=strategy.cash,default_qty_value=1000, currency=currency.USD, initial_capital=1000,commission_type=strategy.commission.percent, commission_value=0.075)
overbought = input(40, title="overbought value")
oversold = input(30, title="oversold value")
// Component Test Periods Code Begin
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2021, "Backtest Stop Year")
testStopMonth = input(16, "Backtest Stop Month")
testStopDay = input(2, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
// Component Test Periods Code End
//////////////////////////////////////////////////////////////////////
myrsi = rsi(close, 10) > overbought
myrsi2 = rsi(close, 10) < oversold
barcolor(myrsi ? color.black : na)
barcolor(myrsi2 ? color.blue : na)
myEntry = myrsi2 and hour(time) <= 9
strategy.entry("Buy Signal", strategy.long, when = myEntry and testPeriod())
// Close 10 bar periods after the condition that triggered the entry
//if (myEntry[10])
//strategy.close("Buy Signal")
strategy.close("Buy Signal", when = barssince(myEntry) >= 10 or myrsi and testPeriod())
//strategy.entry("Sell Signal",strategy.short, when = myrsi2)