Алгоритм RSI стратегия прорыва диапазона


Дата создания: 2023-10-17 17:14:09 Последнее изменение: 2023-10-17 17:14:09
Копировать: 0 Количество просмотров: 759
1
Подписаться
1617
Подписчики

Алгоритм RSI стратегия прорыва диапазона

Обзор

Эта стратегия используется для наблюдения за прорывами RSI в разных диапазонах, чтобы достичь целей покупки и продажи. Покупайте, когда RSI находится в диапазоне низких значений, и продавайте, когда RSI находится в диапазоне высоких значений, чтобы совершить обратную операцию при появлении сверхпокупа и сверхпродажи.

Стратегический принцип

  1. RSI устанавливается на 14 циклов

  2. Настройка диапазона RSI для сигналов покупки:

    • Раздел 1: RSI <= 27
    • Раздел 2: RSI <= 18
  3. Настройка диапазона RSI для продажи:

    • Раздел 1: RSI >= 68
    • Раздел 2: RSI >= 80
  4. Когда RSI попадает в зону покупок, то делает дополнительный вход:

    • Если RSI входит в диапазон 1 (ниже 27), сделайте еще 1 руку
    • Если RSI входит в диапазон 2 (ниже 18), дополнительно 1 рука
  5. Когда RSI попадает в отрыв от продажи, вступает в позицию:

    • Если RSI находится в диапазоне 1 (более 68) - пустота
    • Если RSI входит в диапазон 2 (более 80), дополнительно делайте 1 ручку.
  6. За каждое открытие позиции фиксированный стоп-приз 2500 и стоп-убыток 5000

  7. RSI выходит из сигнального диапазона и устраняет соответствующие позиции

Анализ преимуществ

  1. Настройка двойного диапазона позволяет стратегии более четко определять перекуп и перепродажу, чтобы избежать упущенных возможностей для возврата.

  2. С фиксированным стоп-стоп-стоп-пунктом, который не преследует падений.

  3. RSI является более зрелым индикатором, который имеет преимущества по сравнению с другими индикаторами.

  4. Параметры этой стратегии при разумной настройке позволяют эффективно улавливать переломные моменты и получать дополнительную прибыль.

Анализ рисков

  1. Рынок, где RSI может быть неэффективным, что приводит к системе постоянных убытков от дефолта

  2. Фиксированная стоп-стоп-стоп может быть установлена не в соответствии с колебаниями рынка, что может привести к невозможности получения прибыли или преждевременному потере

  3. Нерациональная диапазонная настройка может привести к пропущенным торговым возможностям или частым торговым убыткам

  4. Эта стратегия больше зависит от оптимизации параметров, требует внимания к тестовому циклу и контролю скольжения

Направление оптимизации

  1. Можно проверить эффективность RSI на различных длинах циклов

  2. Оптимизируйте диапазон покупок и продаж, чтобы они соответствовали характеристикам разных сортов

  3. Можно изучить динамические методы остановки, чтобы сделать остановку более эффективной и рациональной.

  4. Можно рассмотреть возможность комбинированной торговли в сочетании с другими показателями для повышения стабильности системы

  5. Поиск способов машинного обучения для автоматической оптимизации промежуточных параметров, чтобы сделать стратегию более грубой

Подвести итог

Эта стратегия основана на принципе суждения о перекупе и перепродаже по 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)