
Стратегия основана на индикаторе буринской полосы, открывает позиции, когда цена касается буринской полосы и поднимается вниз, и устанавливает динамическую остановку и динамическую логику наращивания позиций. Когда цена отскочила от нижней полосы и прорвала среднюю полосу буринской полосы, стратегия считает, что возникла тенденция к росту, в то время как стратегия будет наращивать позиции, когда цена вернется к средней полосе в определенной пропорции.
Основные принципы этой стратегии:
Вычислить буринскую ленту на верхней, средней и нижней полосах. Формула вычисления для верхней и нижней полос равна N-кратному стандартному разрыву на средней полосе плюс-минус, где N может быть настроено.
Когда цена закрытия падает вниз по линии буринского пояса и ранее не открывала позиции, стратегия открывает позиции; когда цена закрытия пробивает вверх по линии буринского пояса и ранее не открывала позиции, стратегия открывает позиции. Логика открытия позиций здесь аналогична традиционной системе прорыва в линии буринского пояса.
После открытия позиции, если цена закрытия пробивает среднюю траекторию Бринского пояса вверх, считается, что формируется тенденция к росту, обозначение переменной basisCrossed как true. После открытия позиции, если цена закрытия пробивает среднюю траекторию Бринского пояса вниз, обозначение basisCrossed также обозначается как true.
В многоопасном случае, если цена закрытия падает вниз и basisCrossed является истинной, и текущая цена упала более чем на 2% по сравнению с первоначальной ценой открытия позиции, тогда стратегия набирает позиции, одновременно переставляя basisCrossed на false. В случае с пустыми позициями наоборот. Логика набора позиций здесь может заставить стратегию набирать позиции вниз, когда тенденция отступает, увеличивая пространство для прибыли.
Если при многоосновном позиционировании цена закрытия прорывает линию Буринского пояса, или при белом позиционировании цена закрытия падает линию Буринского пояса, стратегия устраняет все позиции, считывает прибыль и переставляет все маркированные переменные, чтобы подготовиться к следующему открытию позиции.
Благодаря логике открытия, увеличения и остановки позиций, стратегия может гибко работать в условиях тренда и получать более высокую прибыль. В то же время, благодаря классическому техническому показателю Брин-бетона, стратегия может быть адаптирована и стабильна.
Динамические остановки: Стратегия динамически корректирует остановки с помощью посадки в буринской ленте, что позволяет лучше адаптироваться к рыночным колебаниям и гибко защищать прибыль по сравнению с фиксированными остановками.
Динамическое нажимание: стратегия постепенно набирает позиции на этапе отступления после формирования тренда, что позволяет получать более высокую прибыль в трендовых ситуациях. Динамическое нажимание делает стратегию более преимущественной в трендовых сделках.
Гибкость параметров: такие параметры, как значения N, P и т. д., могут быть гибко изменены в соответствии с различными рыночными характеристиками и стилями торговли.
Адаптивность: Брин-пояса - классический технический индикатор, обладающий хорошей способностью улавливать тенденции. В сочетании с динамическим управлением позициями, они могут быть стабильно эффективными на различных финансовых рынках.
Ясность логики: условия открытия позиции и логика увеличения и уменьшения позиции в стратегии очень ясны и понятны, что позволяет трейдерам понимать и контролировать. Ясная логика также означает, что легче делать вторичную разработку и оптимизацию стратегии.
В условиях кризиса, когда частое открытие позиций приводит к увеличению затрат на торговлю, что влияет на общую прибыль.
Поворот в тренде: в критические моменты поворота в тренде стратегия может проявить задержку в оценке, что приводит к увеличению позиций в неправильном направлении, что приводит к большему отступлению.
Экстремальные ситуации: в экстремальных ситуациях (например, падение шторма) может произойти аномалия в движении по Брин-полосе, что может привести к неэффективности стратегии.
Параметрная настройка: неправильная настройка параметров может серьезно повлиять на эффективность стратегии, например, слишком маленькая настройка N приведет к частым сделкам, а слишком большая N приведет к задержке сигнала.
“Черные лебеди” (Black Swans) - это стратегия, которая может иметь большие риски в случае крупных политических и экономических событий.
В отношении вышеуказанных рисков можно начать с двух сторон: 1) разумная настройка параметров, оптимизация параметров для различных показателей и состояния рынка; 2) добавление в стратегию большего количества фильтрующих условий, таких как определение тенденции, фильтрация волатильности и т. Д., Чтобы повысить качество сигнала. Кроме того, в практическом применении также необходимо хорошо контролировать позиционный контроль и управление рисками, строго контролировать рисковые выходы для отдельных сделок.
Тренд-фильтрация: логика определения тренда, добавленная при открытии позиции, например, MA многоголовый ряд как фильтрующий условие, чтобы сделать больше, и MA пустой ряд как фильтрующий условие, чтобы сделать пустое, что может повысить успех в поимке тренда.
Волатильность фильтра: бурин-полоса фактически является индикатором волатильности, который может быть использован для идентификации волатильности рынка путем введения ATR, исторической волатильности и других показателей, которые могут соответственно снизить позиции при высоких волнах и увеличить позиции при низких волнах, чтобы лучше контролировать риск.
Оптимизация динамических параметров: параметры в буринской полосе могут быть динамически скорректированы в зависимости от состояния рынка. Например, N-значение может быть увеличено в трендовых условиях, а N-значение уменьшено в волатильных рынках. Это требует использования технологий, таких как машинное обучение, для поиска оптимальных параметров путем обучения историческим данным.
Комбинированная стратегия: может быть объединена с другими классическими стратегиями, такими как MACD, RSI и т. д., чтобы сформировать комбинированную стратегию, повысить устойчивость и прибыльность системы.
Включение логики стоп-лосса: в настоящее время в стратегии отсутствует четкая логика стоп-лосса, можно рассмотреть возможность включения механизмов, таких как мобильный стоп или фиксированный процент стоп-лосса, чтобы контролировать максимальные потери за одну сделку.
Оптимизация управления позициями: в процессе наращивания и уменьшения позиций можно использовать классические методы управления позициями, такие как формула Келли, оптимальное значение F, с целью максимизации прибыли при контролируемом риске.
Благодаря вышеуказанным оптимизациям можно еще больше повысить риск-прибыль соотношения этой стратегии, чтобы она могла лучше адаптироваться к изменяющимся рыночным условиям и приносить трейдерам стабильную прибыль.
Динамическая стоп-стратегия с динамическим повышением позиций является классической стратегией отслеживания тенденций, основанной на динамическом регулировании позиций, чтобы получить более высокую прибыль от тренда. Эта стратегия имеет четкую логику, гибкие параметры и адаптивность. Это количественная торговая стратегия, которая заслуживает глубокого изучения и применения.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// Bollinger Bands 1Bb 상하한 크로스 롱숏 실행
strategy(shorttitle="BB", title="Bollinger Bands", overlay=true )
// bb
length = input.int(12, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
add = input.float(0.98, step = 0.001)
// plot(upper - lower, "Basis", color=color.red, offset = offset)
var bool entryMade = false
var bool basisCrossed = false
var bool upperCrossed = false
var bool lowerCrossed = false
strategy.initial_capital = 50000
if close < lower and not entryMade
strategy.entry("롱", strategy.long, qty = strategy.initial_capital/10000)
entryMade := true
if ta.crossover(close, basis) and entryMade and not upperCrossed
basisCrossed := true
if close > upper
upperCrossed := true
if close < lower and entryMade and basisCrossed and not upperCrossed and close < strategy.position_avg_price*add
strategy.entry("추가롱", strategy.long, strategy.initial_capital/10000)
basisCrossed := false
if close > upper
strategy.close("롱")
strategy.close("추가롱")
entryMade := false
basisCrossed := false
upperCrossed := false
///////////반대 포지션
if close > upper and not entryMade
strategy.entry("s", strategy.short, qty = strategy.initial_capital/10000)
entryMade := true
if ta.crossunder(close, basis) and entryMade and not lowerCrossed
basisCrossed := true
if close < lower
lowerCrossed := true
if close > upper and entryMade and basisCrossed and not lowerCrossed and close > strategy.position_avg_price*add
strategy.entry("추가s", strategy.short, strategy.initial_capital/10000)
basisCrossed := false
if close < lower
strategy.close("s")
strategy.close("추가s")
entryMade := false
basisCrossed := false
upperCrossed := false