Сверхпроданная стратегия прорыва RSI

Автор:Чао Чжан, Дата: 2023-09-26 16:11:55
Тэги:

Обзор

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

Как это работает

  1. Стратегия использует индикатор RSI для идентификации сигналов входа. RSI измеряет скорость и величину изменения цен для определения того, является ли актив перекупленным или перепроданным. RSI варьируется от 0 до 100, причем выше 70 считается перекупленным и ниже 30 перепроданным.

  2. Когда индекс снижается ниже 30, стратегия входит в длинную позицию, делая ставку на изменение тренда.

  3. После открытия позиции устанавливается стоп-лосс и take profit. Стоп-лосс устанавливается на 1% ниже входной цены. Take profit устанавливается на 7% выше входной цены.

  4. Если цена падает ниже стоп-лосса, позиция закрывается. Если цена поднимается выше, позиция закрывается для получения прибыли.

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

  1. Использование РСИ для выявления условий перепродажи обеспечивает хорошие точки входа на относительных минимумах.

  2. Строгий стоп-лосс контролирует риск на основе торговли. Он позволяет некоторое снижение до того, как остановить.

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

  4. Эта стратегия имеет сильный контроль за использованием и более низкий риск в целом.

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

  1. Сигналы перепроданности по индексу RSI не всегда приводят к реверсии, цены могут продолжать падать, что приводит к стоп-лосс.

  2. Стоп-лосс может быть слишком тесным, что приводит к преждевременным остановкам, если вывод большой.

  3. Прибыль может быть слишком большой, закрывая прибыль раньше и не позволяя победителям бежать.

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

Оптимизация

  1. Сочетание RSI с другими индикаторами, такими как KDJ, может улучшить точность сигнала и избежать ложных сигналов.

  2. Оптимизация стоп-лосса и процентов прибыли на основе волатильности различных монет.

  3. Испытание различных временных параметров для поиска оптимальных комбинаций.

  4. Оптимизация размеров позиций на основе результатов обратных тестов.

Заключение

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


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
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/
// © brodieCoinrule

//@version=4
strategy(shorttitle='Oversold RSI with tight SL',title='Oversold RSI with tight SL Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100



// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
oversold= input(30)


//Entry 
strategy.entry(id="long", long = true, when = RSI< oversold and window())

//Exit
Stop_loss= ((input (1))/100)
Take_profit= ((input (7)/100))

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())



Больше