
Брейк-оборотная стратегия является типичной стратегией низко-покупка-высокопродажа. Она использует индикатор RSI для идентификации перепродажи, после падения цены до определенного уровня посылает сигнал покупки, чтобы аккумулировать токены по более низкой цене; когда цена снова поднимается, прибыль заканчивается путем установки RSI, чтобы выйти из обесценения.
Эта стратегия основана на RSI, чтобы идентифицировать точки перепродажи. Нормальный диапазон RSI составляет от 0 до 100. Когда RSI падает ниже установленного входного порога 35, подается сигнал покупки; когда RSI снова поднимается выше установленного выхода, выпускается сигнал продажи. Таким образом, можно вовремя войти и выйти, когда ценовая тенденция переворачивается, реализуя низкие покупки и высокие продажи.
Кроме того, в стратегии также введены 100-циклические простые движущиеся средние, которые в сочетании с показателем RSI формируют условия, при которых только тогда, когда цена падает ниже движущейся средней, а RSI входит в зону перепродажи, может быть вызван сигнал покупки. Это может эффективно отфильтровать некоторые ложные прорывы и уменьшить ненужные сделки.
В целом, стратегия разрыва является стабильной и практичной стратегией низкой покупки и продажи. Благодаря двойной фильтрации RSI и движущихся средних, можно эффективно подавлять ошибочные сигналы, и при оптимизированных параметрах можно получить более низкую стоимость хранения. В то же время, надлежащим образом оптимизировать параметры показателя, скорректировать стратегию позиции, с перспективой получить более высокую эффективность использования средств.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
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/
// © Coinrule
//@version=4
strategy(shorttitle='Optimized RSI Strategy',title='Optimized RSI Strategy - Buy The Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, 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"
// RSI inputs and calculations
lengthRSI = (14)
RSI = rsi(close, lengthRSI)
RSI_entry = input(35, title = 'RSI Entry', minval=1)
RSI_exit = input(65, title = 'RSI Close', minval=1)
//Calculate Moving Averages
movingaverage_signal = sma(close, input(100))
//Entry
strategy.entry(id="long", long = true, when = RSI< RSI_entry and close < movingaverage_signal and window())
//Exit
//RSI
strategy.close("long", when = RSI > RSI_exit and window())
plot (movingaverage_signal)