Стратегия прорыва диапазона MACD Stochastics объединяет индикаторы MACD и Stochastics в количественную торговую стратегию.
При занятии позиций эта стратегия учитывает сигналы как MACD, так и Stochastics для улучшения качества записей.
Стратегия прорыва диапазона MACD Stochastics в основном основана на следующих принципах:
В частности, стратегия использует линию MACDDIFF, пересекающую линию DEA, для определения сигналов бычьего или медвежьего тренда.
Между тем, перекрестки между линией K и линией D Stochastics вокруг перекупленных/перепроданных зон (по умолчанию 30 и 70) также производят торговые сигналы.
Когда MACD и Stochastics дают выровненные сигналы, стратегия займет позицию.
После входа, точки остановки потери и получения прибыли настраиваются для рационального контроля потери одной сделки и блокировки прибыли.
Стратегия прорыва диапазона MACD Stochastics имеет следующие преимущества:
Объединение индикаторов улучшает качество сигнала
Использование как MACD, так и Stochastics отфильтровывает некоторые фальшивые сигналы и позволяет улучшить качество входа.
Зафиксирование прорывных движений и торговля трендом
Стратегия специализируется на поймании значительных прорывных движений после диапазона.
Оптимизированный механизм стоп-лосса/приобретения прибыли эффективно контролирует риски
Встроенная логика стоп-лосса/приобретения прибыли разумно ограничивает потерю на одной сделке и своевременное блокирование прибыли.
Несмотря на тщательное проектирование, стратегия прорыва диапазона MACD Stochastics имеет некоторые внутренние риски:
Отсутствие идеального времени входа
Неоптимальное время входа может привести к пропущенной лучшей цене входа.
Неудачный выход
Несмотря на то, что перед входом делаются надлежащие приготовления, все же возможны неудачные прорывы, приводящие к потерям.
Неправильная оптимизация параметров
Неправильные параметры серьезно подрывают эффективность стратегии.
Для устранения вышеуказанных рисков могут быть приняты следующие оптимизации:
Добавление других показателей к фильтрующим сигналам
Ручное вмешательство для обеспечения действительного прорыва
Строгие испытания оптимизации параметров для нескольких наборов
Остается место для дальнейшей оптимизации стратегии прорыва диапазона MACD Stochastics:
Оптимизировать параметры MACD для поиска наилучшей комбинации
Оптимизировать параметры стохастики для поиска лучшей комбинации
Включить другие показатели, такие как KDJ, BOLL, чтобы улучшить качество входа
Тестировать различные периоды хранения, оптимизировать стоп-лосс/прибыль
Различия в параметрах между различными компонентами
Внедрение алгоритмов машинного обучения для автоматической оптимизации параметров
Стратегия прорыва диапазона MACD Stochastics Capitalizes на прорывах диапазона, входя на основе выровненных сигналов как MACD, так и Stochastics. Механизм остановки потери / получения прибыли дополнительно контролирует риски. Он направлен на улавливание краткосрочных тенденций, но все еще оставляет место для настройки параметров и большей комбинации индикаторов для лучшей производительности.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true) // Getting inputs fast_length = input(title = "Fast Length", defval = 180) slow_length = input(title = "Slow Length", defval = 390) src = input(title = "Source", defval = close) signal_length = input.int(title = "Signal Smoothing", minval = 1, maxval = 500, defval = 135) sma_source = input.string(title = "Oscillator MA Type", defval = "EMA", options = ["SMA", "EMA"]) sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal // hline(0, "Zero Line", color = color.new(#787B86, 50)) // plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252))) // plot(macd, title = "MACD", color = #2962FF) // plot(signal, title = "Signal", color = #FF6D00) periodK = input.int(14, title="%K Length", minval=1) smoothK = input.int(1, title="%K Smoothing", minval=1) periodD = input.int(3, title="%D Smoothing", minval=1) k = ta.sma(ta.stoch(close, high, low, periodK), smoothK) d = ta.sma(k, periodD) // plot(k, title="%K", color=#2962FF) // plot(d, title="%D", color=#FF6D00) // h0 = hline(80, "Upper Band", color=#787B86) // hline(50, "Middle Band", color=color.new(#787B86, 50)) // h1 = hline(20, "Lower Band", color=#787B86) // fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background") // Make inputs that set the take profit % (optional) longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01 // Calculate trading conditions enterLong = macd>signal and ta.crossover(k,30) enterShort = macd<signal and ta.crossunder(k,70) // Figure out take profit price longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Plot take profit values for confirmation plot(strategy.position_size > 0 ? longExitPrice : na, color=color.green, style=plot.style_circles, linewidth=3, title="Long Take Profit") plot(strategy.position_size < 0 ? shortExitPrice : na, color=color.red, style=plot.style_circles, linewidth=3, title="Short Take Profit") // Submit entry orders if enterLong strategy.entry("long", strategy.long) if enterShort strategy.entry("short", strategy.short) // STEP 3: // Submit exit orders based on take profit price if strategy.position_size > 0 strategy.exit("long TP", limit=longExitPrice) if strategy.position_size < 0 strategy.exit("short TP", limit=shortExitPrice)