Эта стратегия использует индикаторы борбюрин-полосы для определения тенденций, в сочетании с сигналом пропускной способности для поиска торговых возможностей, чтобы поддерживать стабильный рост портфеля. По данным прошлого года, доходность этой стратегии составила 78,95%, а максимальное отступление - 4,02%. Это одна из серии моих автоматизированных стратегий, которые способствуют стабильному росту портфеля.
Приглашаем к обратной проверке и предоставлению полезных советов. Если вы довольны текущими результатами, можно перевести их в обучение и добавить предупреждения, чтобы автоматизировать стратегию. Это требует добавления механизма предупреждения в коде. Если вы заинтересованы в этом, я могу создать соответствующее обучение на основе этой стратегии.
Эта стратегия использует полосы и полосы пропускания для определения времени входа и выхода из игры.
Борбулинная полоса включает в себя верхнюю, среднюю и нижнюю линии. Средняя линия представляет собой n-дневную простую подвижную среднюю, параметр n принимается за 16 . Верхняя граница представляет собой среднюю линию + k .*Стандартное отклонение, нижний предел - k*Стандартное отклонение, параметр k по умолчанию 3. Когда цена приближается к верхней границе, означает, что цена акции слишком высока или перекуплена. Когда цена приближается к нижней границе, означает, что цена акции слишком низка или перепродана.
Показатель пропускной способности показывает колебания цены относительно средней линии. Он состоит из (верхней линии - нижней линии) / средней линии*1000 вычисляется. Если диапазон меньше 20, это означает, что ситуация спокойная или сбалансированная; если диапазон больше 50, это означает, что волатильность увеличивается.
Стратегия заключается в том, чтобы делать больше, когда пропускная способность находится в диапазоне 20-50, чтобы найти возможность преодолеть нижний предел. После того, как вы сделаете больше, стоп-линия устанавливается на 108 процентов от цены открытия позиции или выходит из игры, когда вы преодолеваете верхний предел.
Эта стратегия имеет следующие преимущества:
Использование борбюринной ленты для определения направления тренда снижает риск ложных прорывов
Широкополосный сигнал позволяет точно определить колебания и избежать убытков от значительных колебаний
Отзывы показывают, что за год можно получить почти 80% прибыли, а риск-выгода очень высоки.
Максимальный вывод менее 5%, эффективное управление рисками, поддержание стабильного роста портфеля
Логика стратегии ясна, проста, легко понятна, реализуется и может быть широко применена для различных типов цифровых активов
Также существуют следующие риски:
Неправильно настроенные параметры борбюринга могут привести к упущению хороших торговых возможностей
В условиях бурного или медвежьего рынка частота торговли может быть слишком низкой, а возможность получения прибыли ограничена.
Недостаточные данные отслеживания, возможно, невозможно воспроизвести показатели отслеживания в реальном применении
В экстремальных рыночных условиях, стоп-стоп может быть преодолен и привести к большим убыткам
Слишком высокие торговые сборы также снижают реальную прибыль.
Решение проблемы:
Оптимизация параметров, адаптация циклов бурин-пояса к различным рынкам и т. д.
Дополнительное введение других показателей для оценки тенденций в ответ на аномальные ситуации
Сбор достаточных данных для проведения различных рыночных отзывов, подтверждения стабильности стратегии
Применение соответствующих стоп-пойнтов для предотвращения крупных убытков в экстремальных ситуациях
Выбор платформы с низкими комиссионными, чтобы сократить расходы
Эта стратегия может быть оптимизирована в следующих аспектах:
Добавить подтверждение объема, чтобы избежать ложных прорывов
Combine with trend indicators to identify trend direction - объединить с трендовыми индикаторами, чтобы определить направление тренда
Использование машинного обучения для настройки параметров и автоматического адаптации к рынку
Add correlation filter to avoid trading uncorrelated assets Добавить корреляционный фильтр, чтобы избежать торговли несвязанными активами
Оптимизировать стратегию стоп-поста, чтобы получить больше прибыли во время восходящих трендов
Введение большего количества условных фильтров для повышения уровня выигрыша
Test multi-timeframe combinations to profit from multiple cycles - тестирование комбинаций с несколькими временными рамками для получения прибыли из нескольких циклов
Построение индексированного портфеля для расширения воздействия
Использование машинного обучения для автоматического генерации и проверки новых стратегий
Общая отсчетная эффективность этой стратегии является хорошей, она позволяет получать более стабильную прибыль в условиях потрясений. Основные идеи стратегии просты, понятны и просты в использовании. Однако оптимизация параметров, контроль риска и управление портфелем нуждаются в дальнейшем улучшении для стабильной прибыльности на сложном и изменчивом рынке.
/*backtest
start: 2023-10-30 00:00:00
end: 2023-11-06 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Bollinger Bands BAT/USDT 30min", overlay=true )
/// Indicators
///Bollinger Bands
source = close
length = input(16, minval=1)
mult = input(3, step=0.1, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
//Bollinger bands width
bbw = (upper-lower)/basis*1000
//plot(bbw, color=color.blue)
upper_bbw_input = input(title="BBW Upper Threshold", step=1, minval=0, defval=50)
lower_bbw_input = input(title="BBW Lower Threshold", step=1, minval=0, defval=20)
// Backtesting Period
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
// Take Profit
tp_inp = input(8, title='Take Profit %', step=0.1)/100
take_level = strategy.position_avg_price * (1 + tp_inp)
//Entry Strategy
entry_long = crossover(source, lower) and (bbw < upper_bbw_input) and (bbw > lower_bbw_input)
exit_long = cross(high,upper) or close < lower
if testPeriod()
strategy.entry(id="LongBB", long=true, comment="LongBB", when=entry_long)
strategy.exit("Take Profit Long","LongBB",limit=take_level)
strategy.close(id="LongBB", when=exit_long )