Эта стратегия объединяет полосы Боллинджера, RSI, MACD и Стохастик, четыре различных технических индикатора, для принятия длинных и коротких решений. Во-первых, она определяет, находится ли цена за пределами канала полос Боллинджера и принимает долгие или короткие позиции соответственно. Затем она проверяет, находится ли RSI в зонах перекупки или перепродажи и входит в соответствии с направлением. Далее она ищет сигналы MACD золотого креста и смертного креста и занимает соответствующие позиции. Наконец, она определяет золотой крест Стохастика и смертельный крест в зонах перекупки / перепродажи. С помощью сигналов со всех четырех индикаторов стратегия принимает более агрессивные пирамидальные позиции для максимизации прибыли.
Стратегия в основном использует четыре индикатора - полосы Боллинджера, RSI, MACD и Stochastic.
Боллингерские полосы отображаются на уровнях стандартного отклонения выше и ниже простой скользящей средней.
RSI рассчитывает импульс как соотношение более высоких закрытий к более низким закрытиям. Значения ниже 30 предполагают состояние перепродажи, а выше 70 предполагает перекуп. Они служат торговыми сигналами.
MACD - это разница между краткосрочными и долгосрочными скользящими средними.
Стохастические пересечения линий K и D также служат торговыми сигналами. K ниже 20 указывает на перепродажу, а выше 80 - на перекуп.
Сочетание сигналов из этих четырех индикаторов улучшает точность вхождений в торговлю. В частности, длинный ход, когда цена превышает верхнюю полосу полос Боллинджера, RSI ниже 30, MACD золотой крест и пересечение стохастического K выше D ниже 20. Пирамида длинных позиций, когда все четыре условия выполнены. Короткие сигналы похожи.
Главное преимущество этой стратегии заключается в сочетании нескольких индикаторов повышает точность и показатель победы.
Во-первых, использование индикаторов в разные временные рамки - Боллинджера для средне- и долгосрочных показателей и MACD, RSI, Stochastic для краткосрочных - уменьшает количество ошибок.
Во-вторых, требование, чтобы все индикаторы выровнялись, уменьшает ложные сигналы.
Кроме того, комбинирование дополнительных индикаторов использует сильные стороны каждого из них.
Наконец, пирамидальные позиции с подтвержденными сигналами максимизируют прибыль по сравнению с сделками с фиксированным количеством.
Некоторые риски следует учитывать:
Во-первых, больше параметров и показателей затрудняет оптимизацию.
Во-вторых, одновременные индикаторные сигналы редки, что приводит к низкой частоте торговли.
В-третьих, пирамида может увеличить убытки, если индикаторы дают неверные сигналы.
Наконец, несовместимые индикаторные сигналы нуждаются в правилах принятия решений.
Некоторые способы улучшения стратегии:
Оптимизируйте параметры с помощью генетических алгоритмов, поисковых сетей и т.д. для поиска лучших комбинаций.
Добавить правила остановки потери для контроля потерь, когда цена движется неблагоприятно за пределы порогов.
Улучшить логику ввода с системой оценки несовместимых сигналов показателей и взвешенных параметров.
Оптимизировать выходы с помощью данных о прибыли/убытках за периоды хранения для создания идеальных правил выхода.
Оптимизировать продукты и сроки, наиболее подходящие для стратегии.
Учитывайте торговые издержки, такие как скольжение и комиссии при оптимизации параметров.
Используйте машинное обучение для адаптивной оптимизации.
Эта стратегия сочетает в себе множество индикаторов и механизмов подтверждения для принятия решений. При наличии правильных параметров и контроля рисков она может достичь хороших результатов. Но необходимо устранять сложность настройки и риски путем постоянного улучшения стабильности. Найти оптимальные комбинации индикаторов, научные правила входа/выхода и контроль рисков являются ключевыми для устойчивой прибыльности в рыночных условиях.
/*backtest start: 2022-09-21 00:00:00 end: 2023-09-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MD strategy", overlay=true) lengthrsi = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close source = close lengthbb = input(20, minval=1) mult = input(2.0, minval=0.001, maxval=50) direction = input(0, title = "Strategy Direction", minval=-1, maxval=1) fastLength = input(12) slowlength = input(26) MACDLength = input(9) consecutiveBarsUp = input(3) consecutiveBarsDown = input(3) lengthch = input( minval=1, maxval=1000, defval=5) upBound = highest(high, lengthch) downBound = lowest(low, lengthch) lengthst = input(14, minval=1) OverBoughtst = input(80) OverSoldst = input(20) smoothK = 3 smoothD = 3 k = sma(stoch(close, high, low, lengthst), smoothK) d = sma(k, smoothD) ups = price > price[1] ? nz(ups[1]) + 1 : 0 dns = price < price[1] ? nz(dns[1]) + 1 : 0 MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) basis = sma(source, lengthbb) dev = mult * stdev(source, lengthbb) upper = basis + dev lower = basis - dev vrsi = rsi(price, lengthrsi) if (not na(vrsi)) if (crossover(vrsi, overSold)) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (crossunder(vrsi, overBought)) strategy.entry("RsiSE", strategy.short, comment="RsiSE") if (crossover(source, lower)) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (crossunder(source, upper)) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") if (not na(k) and not na(d)) if (crossover(k,d) and k < OverSoldst) strategy.entry("StochLE", strategy.long, comment="StochLE") if (crossunder(k,d) and k > OverBoughtst) strategy.entry("StochSE", strategy.short, comment="StochSE") if (crossover(delta, 0)) strategy.entry("MacdLE", strategy.long, comment="MacdLE") if (crossunder(delta, 0)) strategy.entry("MacdSE", strategy.short, comment="MacdSE")