
Стратегия включает в себя индикаторы Бриндовых полос, относительно сильных показателей (RSI) и движущихся средних (MA) с целью выявления потенциальных точек входа и выхода на рынок. Она может генерировать сигнальные сигналы о покупке и продаже, которые могут быть выполнены с помощью ручной торговли или автоматической торговой системы.
Эта стратегия использует два параметра, отличающихся от бурин, для создания ценового канала. По умолчанию бурин имеет длину 20 циклов и стандартную разницу 2. Верхние и нижние колеи бурин действуют как динамические сопротивления и поддержки.
RSI используется для определения силы и слабости ценовой динамики.
В стратегию также интегрированы 50-циклические скользящие средние для определения направления общей тенденции. Когда цена выше скользящей средней, это означает, что она находится в восходящей тенденции; когда цена ниже скользящей средней, это означает, что она находится в нисходящей тенденции.
Условия для покупки: RSI выше линейки сверхпокупок и отсутствие сжатия в буринской зоне.
Условия для продажи: RSI ниже линии oversold и отсутствие сжатия буринской линии.
Условия для сигналов о равновесии: длинная позиция закрывается ниже скользящей средней; короткая позиция закрывается выше скользящей средней;
В сочетании с тремя индикаторами: Brin, RSI и Moving Average, можно судить о направлении тренда и избежать ложных сигналов.
Брин-линия определяет местные высокие и низкие точки и подтверждает прорыв, RSI фильтрует ложные прорывы, а движущаяся средняя определяет общий ход. Все три проверяют друг друга, точно определяя точки перехода тенденции.
Стратегические параметры были оптимизированы, и Бринская полоса использовала два параметра стандартной разницы, чтобы более точно изобразить ценовой канал.
При сжатии буринской полосы может возникнуть ошибочный сигнал. В это время RSI также приближается к нейтральной зоне, поэтому следует избегать торгов.
В шокирующем тренде RSI и скользящие средние могут подавать ошибочные сигналы. Следует заранее определить, находится ли рынок в шокирующем положении.
Невозможность эффективного устранения пробелов в цене. Реалистичность пробелов должна быть определена в сочетании с другими показателями.
Оптимизация параметров Брин-Бенда и RSI, чтобы они соответствовали характеристикам разных сортов и временных периодов.
Добавлена дополнительная установка Stop Loss. Автоматическая остановка при переходе цены через Stop Loss.
Добавление трендовых фильтров, таких как ADX, для определения того, вошли ли вы в трендовую ситуацию.
В сочетании с автоматической торговой системой, используя генерируемые торговые сигналы, сделки выполняются автоматически, без вмешательства человека.
Стратегия объединяет преимущества трёх индикаторов: ленты Брин, RSI и движущейся средней, повышает точность сигналов путем оптимизации параметров. Можно автоматически генерировать торговые Alerts для выполнения стратегических сделок. Риск заключается в том, что ошибочные сигналы создаются в условиях шока.
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands, RSI, and MA Strategy", overlay=true)
// Define input variables
b_len = input(20, title="BB Length")
bb_mult = input(2.0, title="BB Standard Deviation")
bb_deviation1 = input(1.0, title="BB Deviation 1")
rsi_len = input(14, title="RSI Length")
overbought = input(70, title="Overbought RSI Level")
oversold = input(30, title="Oversold RSI Level")
ma_len = input(50, title="MA Length")
stop_loss_percent = input(1.0, title="Stop Loss Percentage")
source = input(close, title="Source")
// Calculate Bollinger Bands
bb_upper = ta.sma(source, b_len) + bb_mult * ta.stdev(source, b_len)
bb_lower = ta.sma(source, b_len) - bb_mult * ta.stdev(source, b_len)
bb_upper1 = ta.sma(source, b_len) + bb_deviation1 * ta.stdev(source, b_len)
bb_lower1 = ta.sma(source, b_len) - bb_deviation1 * ta.stdev(source, b_len)
// Calculate RSI
rsi = ta.rsi(source, rsi_len)
// Calculate Moving Average
ma = ta.sma(source, ma_len)
// Determine if Bollinger Bands are contracting
bb_contracting = ta.stdev(source, b_len) < ta.stdev(source, b_len)[1]
// Entry conditions
enterLong = rsi > overbought and not bb_contracting
enterShort = rsi < oversold and not bb_contracting
// Exit conditions
exitLong = close < ma
exitShort = close > ma
// Exit trades and generate alerts
if strategy.position_size > 0 and exitLong
strategy.close("Long") // Exit the long trade
alert("Long Exit", alert.freq_once_per_bar_close)
if strategy.position_size < 0 and exitShort
strategy.close("Short") // Exit the short trade
alert("Short Exit", alert.freq_once_per_bar_close)
// Strategy orders
if enterLong
strategy.entry("Long", strategy.long)
if enterShort
strategy.entry("Short", strategy.short)
if exitLong
strategy.close("Long")
if exitShort
strategy.close("Short")
// Plotting Bollinger Bands
plot(bb_upper, color=color.blue, title="BB Upper 2")
plot(bb_lower, color=color.blue, title="BB Lower 2")
plot(bb_upper1, color=color.red, title="BB Upper 1")
plot(bb_lower1, color=color.red, title="BB Lower 1")
// Plotting RSI
plot(rsi, color=color.orange, title="RSI")
// Plotting Moving Average
plot(ma, color=color.green, title="Moving Average")