Эта стратегия использует индикатор RSI, чтобы определить, является ли криптовалюта перепроданной, и покупает, когда RSI ниже 30, что считается перепроданным. Затем он устанавливает стоп-лосс и принимает цену прибыли. Если цена стоп-лосса будет достигнута, он выйдет из позиции. Если цена прибыли будет достигнута, он закрыт позицию для получения прибыли.
Стратегия использует индикатор RSI для идентификации сигналов входа. RSI измеряет скорость и величину изменения цен для определения того, является ли актив перекупленным или перепроданным. RSI варьируется от 0 до 100, причем выше 70 считается перекупленным и ниже 30 перепроданным.
Когда индекс снижается ниже 30, стратегия входит в длинную позицию, делая ставку на изменение тренда.
После открытия позиции устанавливается стоп-лосс и take profit. Стоп-лосс устанавливается на 1% ниже входной цены. Take profit устанавливается на 7% выше входной цены.
Если цена падает ниже стоп-лосса, позиция закрывается. Если цена поднимается выше, позиция закрывается для получения прибыли.
Использование РСИ для выявления условий перепродажи обеспечивает хорошие точки входа на относительных минимумах.
Строгий стоп-лосс контролирует риск на основе торговли. Он позволяет некоторое снижение до того, как остановить.
Прибыль от взлома заключается в прибыли от больших движений вверх.
Эта стратегия имеет сильный контроль за использованием и более низкий риск в целом.
Сигналы перепроданности по индексу RSI не всегда приводят к реверсии, цены могут продолжать падать, что приводит к стоп-лосс.
Стоп-лосс может быть слишком тесным, что приводит к преждевременным остановкам, если вывод большой.
Прибыль может быть слишком большой, закрывая прибыль раньше и не позволяя победителям бежать.
Стратегия может столкнуться с большими потерями во время бурных рыночных колебаний.
Сочетание RSI с другими индикаторами, такими как KDJ, может улучшить точность сигнала и избежать ложных сигналов.
Оптимизация стоп-лосса и процентов прибыли на основе волатильности различных монет.
Испытание различных временных параметров для поиска оптимальных комбинаций.
Оптимизация размеров позиций на основе результатов обратных тестов.
В целом, это довольно надежная стратегия перепродажи. Принятие позиций после перепродажи сигналов 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())