Эта статья представляет количественную торговую стратегию для длинного хода на основе индекса относительной силы (RSI) и последующей остановки. Стратегия использует индикатор RSI для определения условий рынка с перекупленными и перепроданными позициями, вводя длинные позиции, когда рынок перепродан, и закрывая позиции, когда он перекуплен. В то же время стратегия использует процентную основанную последующую остановку для контроля риска. Это классическая стратегия, следующая за трендом, предназначенная для улавливания восходящих тенденций на сильных рынках.
Ядром этой стратегии является индекс относительной силы (RSI). RSI - это импульсный осциллятор, используемый для измерения величины изменений цен в течение определенного периода времени.
RS = Average gain over N days / Average loss over N days
RSI = 100 - 100 / (1 + RS)
где N - период времени для расчета RSI, обычно установленный на 14.
Логика стратегии следующая:
Стратегия пытается ввести позиции в начале перехода рынка от медвежьего к бычьему, и выйти в конце бычьего рынка, чтобы захватить основной восходящий тренд.
В этой статье представлена количественная стратегия торговли для длинного хода на основе RSI и стоп-стопов. Стратегия использует сигналы RSI сверхпокупки и сверхпродажи для входа и выхода из позиций, используя при этом процентные стоп-стопы для контроля риска. Это простая и практичная стратегия, подходящая для обучения новичков. Однако у нее также есть некоторые ограничения, такие как плохая производительность на рынках с ограниченным диапазоном и отсутствие гибкости в управлении стоп-лосом и позицией. Чтобы устранить эти недостатки, мы можем оптимизировать стратегию в таких аспектах, как фильтрация тренда, динамический стоп-лосс, управление позицией и хеджирование длинных коротких позиций, чтобы получить более надежную отдачу. Разработка количественных торговых стратегий - это процесс непрерывной оптимизации и итерации, требующий от инвесторов постоянно обобщать и совершенствовать стратегию на практике.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Strategy (Long)", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) length = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = ta.rsi(price, length) co = ta.crossover(vrsi, overSold) cu = ta.crossunder(vrsi, overBought) // *** Signals *** enter_long = ta.crossover(vrsi, overSold) enter_short = ta.crossunder(vrsi, overBought) close_long = ta.crossunder(vrsi, overBought) close_short = ta.crossunder(vrsi, overBought) // *** Risk management *** entry_price = close percent_diff = input(5) stop_loss_price_long = (1 - percent_diff / 100.) * entry_price stop_loss_price_short = (1 + percent_diff / 100.) * entry_price // *** Positions *** if enter_long and strategy.position_size == 0 strategy.entry("Long", strategy.long) strategy.exit("SL Long", "Long", stop = stop_loss_price_long) if enter_short and strategy.position_size == 0 strategy.entry("Short", strategy.short, qty=.001) strategy.exit("SL short", "Short", stop = stop_loss_price_short) if close_long strategy.close("Long", "Exit Long") if close_short strategy.close("Short", "Exit Short")