Это высокоэффективная двунаправленная торговая стратегия, разработанная на основе индикаторов канала и принципов прорыва.
Стратегия использует индикаторы SMA для построения каналов. Она входит в длинный, когда цена выходит выше канала, и входит в короткий, когда цены выходят ниже канала.
В частности, стратегия рассчитывает верхний и нижний рельсы канала. Верхний рельс представляет собой 10-периодную SMA ценового раскрытия умноженное на 1,02; Нижний рельс представляет собой 10-периодную SMA самой низкой цены, разделенную на 1,02.
После длинного хода два уровня получения прибыли устанавливаются на уровне 1% и 3% соответственно, с остановкой потери 3%. Сокращение имеет аналогичные настройки прибыли / убытка. Благодаря принципам прорыва стратегия может достичь относительно высокого уровня выигрыша; через двойные прибыли она может зафиксировать больше прибыли; через остановку потери она контролирует сумму потери по торговле.
Такие стратегии прорыва канала имеют такие преимущества, как четкие входные сигналы, высокая частота работы, многоуровневое получение прибыли и т. Д. Основными преимуществами являются:
Использование индикаторов канала для определения диапазона колебаний цен и выбора точек прорыва для входа может получить относительно высокий показатель выигрыша.
Работают по 1-минутному графику, чтобы поймать больше возможностей и соответствовать потребностям быстрого трейдинга.
Имея два уровня получения прибыли позволяет зафиксировать больше прибыли, когда тренд идет хорошо.
Относительно широкий стоп-лосс дает движению цены некоторое пространство, избегая преждевременного стоп-лосса.
Самый большой риск при таких стратегиях выхода - ложные выходы, приводящие к убыткам.
Сигналы прорыва могут быть ложными прорывами и не достигать прибыли или остановки потери.
Стоп-лосс порог в 3% может быть сложным для некоторых трейдеров выдержать.
Эта стратегия больше подходит для краткосрочной торговли и требует мониторинга.
Стратегии прорыва тренда, подобные этому, могут оптимизироваться главным образом в следующих аспектах:
Испытайте больше индикаторов, чтобы создать каналы и найти более надежные, чтобы уменьшить ложные прорывы.
Оптимизируйте настройку параметров скользящей средней, найдите лучшие комбинации параметров.
Испытывайте более сложные механизмы ввода, такие как добавление фильтров громкости и т.д.
Установка комбинаций параметров, адаптируемых к различным характеристикам продукции, для достижения самоприспособления параметров.
Добавьте механизмы автоматической остановки потери, которые динамически регулируют остановку потери с течением времени.
Это эффективная двунаправленная торговая стратегия, основанная на индикаторах канала. Она входит на рынки с помощью принципов прорыва, двойного получения прибыли для закрепления вознаграждения, остановки потери для контроля рисков. Дальнейшая оптимизация может достичь еще лучших результатов. Но трейдерам все равно нужно остерегаться рисков, таких как ложные прорывы.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Erweiterte SSL Channel Strategy mit 2 TPs, SL und BE", overlay=true) period = input(title="Period", defval=10) len = input(title="Length", defval=10) multiplier = input(title="Multiplier", defval=1.0, minval=1.0) tp1Percent = input(title="Take Profit 1 (%)", defval=1.0) / 100 tp2Percent = input(title="Take Profit 2 (%)", defval=20.0) / 100 slPercent = input(title="Stop Loss (%)", defval=3.0) / 100 var float tp1Price = na var float tp2Price = na var float slPrice = na var bool tp1Reached = false smaHigh = sma(high * multiplier, len) smaLow = sma(low / multiplier, len) Hlv = 0 Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : nz(Hlv[1]) sslDown = Hlv < 0 ? smaHigh : smaLow sslUp = Hlv < 0 ? smaLow : smaHigh plot(sslDown, linewidth=2, color=color.red) plot(sslUp, linewidth=2, color=color.lime) longCondition = crossover(close, sslUp) shortCondition = crossunder(close, sslDown) if (longCondition) strategy.entry("Long", strategy.long) tp1Price := strategy.position_avg_price * (1 + tp1Percent) tp2Price := strategy.position_avg_price * (1 + tp2Percent) slPrice := strategy.position_avg_price * (1 - slPercent) tp1Reached := false if (shortCondition) strategy.entry("Short", strategy.short) tp1Price := strategy.position_avg_price * (1 - tp1Percent) tp2Price := strategy.position_avg_price * (1 - tp2Percent) slPrice := strategy.position_avg_price * (1 + slPercent) tp1Reached := false // Take Profit, Break-even und Stop-Loss Logik if (strategy.position_size > 0) // Long-Positionen if (not tp1Reached and close >= tp1Price) strategy.close("Long", qty_percent = 50) strategy.exit("BE Long", "Long", stop = strategy.position_avg_price) tp1Reached := true if (tp1Reached and close < tp1Price) strategy.exit("BE Long", "Long", stop = strategy.position_avg_price) if (close >= tp2Price) strategy.close("Long", qty_percent = 100) if (not tp1Reached) strategy.exit("SL Long", "Long", stop = slPrice) if (strategy.position_size < 0) // Short-Positionen if (not tp1Reached and close <= tp1Price) strategy.close("Short", qty_percent = 50) strategy.exit("BE Short", "Short", stop = strategy.position_avg_price) tp1Reached := true if (tp1Reached and close > tp1Price) strategy.exit("BE Short", "Short", stop = strategy.position_avg_price) if (close <= tp2Price) strategy.close("Short", qty_percent = 100) if (not tp1Reached) strategy.exit("SL Short", "Short", stop = slPrice)