Эта стратегия основана на теории прорыва, сравнивая скользящие средние самых высоких и самых низких цен, чтобы определить, изменяется ли тенденция, чтобы найти потенциальные точки прорыва и торговать, когда произойдет прорыв.
Эта стратегия сначала рассчитывает скользящие средние самых высоких и самых низких цен в пределах определенного пользователем периода. Наиболее высокая скользящая средняя цена представляет верхнюю полосу, а самая низкая скользящая средняя цена представляет нижнюю полосу. Когда цена проходит через верхнюю полосу, это сигнализирует о восходящем тренде, и стратегия откроет длинную позицию. Когда цена проходит через нижнюю полосу, это сигнализирует о нисходящем тренде, и стратегия откроет короткую позицию. Пользователи могут настроить только длинную или только короткую.
Стратегия также предоставляет опциональные параметры остановки потери и получения прибыли. Когда длинный, остановка потери устанавливается в верхней полосе; когда короткий, остановка потери устанавливается в нижней полосе. Это уменьшает потери. Пользователи также могут выбрать, чтобы установить остановку потери в точке прорыва, то есть когда длинный, остановка потери является нижней полосой, а когда короткий, остановка потери является верхней полосой. Это позволяет увеличить потенциал прибыли.
Преимущества этой стратегии:
Логика проста и понятна, легко понять и реализовать.
Он может быстро определить точки переворота тренда и соответственно корректировать позиции.
Он предоставляет опционные параметры стоп-лосса и прибыли, чтобы соответствовать личным предпочтениям риска.
Торговые сигналы ясны, без слишком много ложных сигналов.
Параметров мало, их легко использовать.
Гибкость настройки только длинной или только короткой.
Риски этой стратегии включают:
Сигнал прорыва может быть ложным и не поддерживать.
Неправильное установление периода прорыва может привести к пропуску долгосрочных тенденций.
Он не учитывает объем на прорыв, может вызвать преследование максимумов и убийство минимумов.
Есть определенная задержка, может пропустить большую часть движения.
На волатильном рынке, стоп-лосс может быть затронут.
Опирается исключительно на прорыв для торговли, прибыль неопределенна.
Стратегия может быть улучшена в следующих аспектах:
Включите индикатор объема, чтобы избежать ложных прорывов, например, увеличенный объем на валидность сигналов прорыва.
Оптимизируйте параметр скользящей средней продолжительности, чтобы соответствовать изменениям тренда в разных циклах.
Установите порог отступления после выхода для дальнейшего подтверждения, чтобы избежать ложного выхода.
Добавьте полосы Боллинджера и т.д. к основанию прорыва для более направленного руководства.
Включить другие индикаторы, такие как RSI, MACD для дополнительных торговых сигналов и улучшить точность.
Оптимизировать стоп-лосс и использовать стратегии получения прибыли, чтобы лучше справляться с колебаниями рынка при одновременном контроле риска.
Стратегия трейдинга имеет четкую логику отслеживания ценового прорыва верхних и нижних полос для входа и выхода. Есть большое пространство для улучшения, путем включения большей информации о индикаторе и оптимизации параметров для укрепления стратегии. После ознакомления с базовой логикой трейдеры могут настраивать параметры на основе своих потребностей и получать хорошие торговые результаты.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Brakeout Strategy v2.0", shorttitle = "Brakeout str 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length") bod = input(false, defval = false, title = "Body mode") rev = input(false, defval = false, title = "Revers") showlines = input(true, defval = true, title = "Show Lines?") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Extremums min = bod ? min(open, close) : low max = bod ? max(open, close) : high upex = highest(max, len) + syminfo.mintick * 10 dnex = lowest(min, len) - syminfo.mintick * 10 col = showlines ? blue : na plot(upex, color = col, linewidth = 2) plot(dnex, color = col, linewidth = 2) //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[len])) and rev == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = upex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnex) if (not na(close[len])) and rev == true strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()