Эта стратегия отслеживает прорыв индикатора RSI в разных диапазонах, чтобы реализовать покупку низкого и продажу высокого.
Установите период RSI на 14
Установите диапазоны сигналов покупки RSI:
Установите диапазоны сигналов RSI продажи:
Когда RSI входит в диапазон покупок, делайте длинный:
Когда RSI входит в диапазон продажи, перейдите на короткий:
Установите фиксированную прибыль на 2500 пип и стоп-лосс на 5000 пип
Закрыть позицию при выходе RSI из диапазона сигнала
Установка двойного диапазона помогает лучше определить условия перекупки и перепродажи, избегая упущенных возможностей для отмены
Принятие фиксированной прибыли и остановки убытков в пипах предотвращает преследование тенденций слишком много
RSI является зрелым осциллятором для определения уровней перекупа и перепродажи с преимуществами по сравнению с другими показателями
При правильной настройке параметров эта стратегия может эффективно поймать точки переворота тренда и генерировать избыточные доходы
Дивергенция по РСИ может привести к последовательным потерям от длительной короткой позиции
Фиксированная прибыль и остановка убытков могут не соответствовать волатильности рынка, невозможности получения прибыли или преждевременного прекращения
Неправильное установление диапазона может привести к отсутствию сделок или частым нерентабельным сделкам
Эта стратегия во многом опирается на оптимизацию параметров на основе бэкстестов.
Эффективность испытаний RSI при различных продолжительностях периода
Оптимизировать значения диапазона покупок и продаж для соответствия характеристикам различных продуктов
Динамика исследования с целью получения прибыли и прекращения убытков для повышения рентабельности и разумности
Рассмотреть возможность объединения других индикаторов для торговли в совокупности для повышения надежности
Исследование методов машинного обучения для автоматической оптимизации диапазонов параметров для надежности
Эта стратегия основана на принципах перекупления и перепродажи RSI. Приняв двойные торговые диапазоны, он эффективно использует индикатор RSI, захватывая крайности рынка с приличной стабильностью. Однако он имеет некоторую зависимость от параметров и нуждается в оптимизации по всем продуктам. Если правильно настроен, эта стратегия может принести хорошую избыточную отдачу. Вкратце, это простая, но эффективная торговая стратегия с использованием зрелого индикатора, которая стоит исследовать для улучшения и предоставления сведений для количественной торговли.
/*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/ // © Rawadabdo // Ramy's Algorithm //@version=5 strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000) // User input length = input(title = "Length", defval=14, tooltip="RSI period") first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers") second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers") first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers") second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers") takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance") stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance") lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size") // Get RSI vrsi = ta.rsi(close, length) // Entry Conditions long1 = (vrsi <= first_buy_level and vrsi>second_buy_level) long2 = (vrsi <= second_buy_level) short1= (vrsi >= first_sell_level and vrsi<second_sell_level) short2= (vrsi >= second_sell_level) // Entry Orders // Buy Orders if (long1 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") if (long2 and strategy.position_size == 0) strategy.entry("Long", strategy.long, qty=lot, comment="Buy") // Short Orders if (short1 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") if (short2 and strategy.position_size == 0) strategy.entry("Short", strategy.short,qty=lot, comment="Sell") // Exit our trade if our stop loss or take profit is hit strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss) strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss) // plot data to the chart hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2) hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2) plot (vrsi, title = "RSI", color = color.blue, linewidth=2)