В процессе загрузки ресурсов... загрузка...

Многоуровневый динамический тренд MACD после стратегии с 52-недельной системой анализа высокого/низкого расширения

Автор:Чао Чжан, Дата: 2024-12-27 14:27:51
Тэги:MACDМ.А.ЕМАSMAРСИ

img

Обзор

Эта стратегия сочетает в себе перекрестные сигналы MACD из нескольких временных рамок с динамическими уровнями поддержки и сопротивления на основе 52-недельных максимумов и минимумов. Она подтверждает торговые сигналы через перекрестные сигналы MACD как в еженедельные, так и в ежедневные временные рамки, используя динамические линии поддержки и сопротивления, сформированные 52-недельными максимумами и минимумами, для оказания помощи в анализе рыночных тенденций, позволяя принимать более надежные торговые решения. Стратегия использует динамический механизм стоп-лосса для эффективного контроля риска при одновременном обеспечении прибыли.

Принципы стратегии

Стратегия основана на следующей логике:

  1. Сигналы входа подтверждаются как еженедельными, так и ежедневными золотыми крестами MACD, что требует бычьих сигналов на обоих временных рамках.
  2. Сигналы выхода вызываются ежедневными пересечениями MACD, при этом позиции закрываются после появления снижающего сигнала.
  3. Динамическая стоп-лосс устанавливается на самой низкой цене дня, когда запускаются сигналы выхода.
  4. 52-недельные высокие/низкие линии динамически генерируются на основе выбранных пользователем расчетов (высокие/низкие или цены закрытия) и проходят вправо в качестве важных эталонных уровней.
  5. Стратегия использует управление позицией 5% с стоимостью транзакции в размере 1 валютной единицы на сделку.

Преимущества стратегии

  1. Многочасовое подтверждение: фильтрует ложные прорывы посредством резонанса сигналов MACD на еженедельных и ежедневных уровнях, улучшая точность торговли.
  2. Динамическая поддержка/сопротивление: 52-недельные высокие/низкие линии обеспечивают важные психологические ориентиры цен, помогающие оценить силу тренда.
  3. Всеобъемлющий контроль рисков: динамический механизм стоп-лосса адаптируется к колебаниям рынка для защиты прибыли.
  4. Высокая визуализация: четкий графический интерфейс отображает ключевые уровни цен и сигналы, облегчая понимание и работу.
  5. Систематическая торговля: строгие правила входа/выхода избегают эмоционального вмешательства, повышая объективность торговли.

Стратегические риски

  1. Не подходит для рыночных диапазонов: частые перекрестки MACD на боковых рынках могут генерировать чрезмерные ложные сигналы.
  2. Риск задержки: задержка, присущая индикатору MACD, может отклонить оптимальные точки входа.
  3. Риск управления денежными средствами: фиксированная пропорциональная позиционирование может не иметь гибкости в определенных рыночных условиях.
  4. Риск рыночного разрыва: большие разрывы могут привести к тому, что фактические цены стоп-лосса будут значительно ниже ожидаемого уровня.
  5. Риск оптимизации параметров: чрезмерная оптимизация может привести к проблемам с переподготовкой.

Направления оптимизации стратегии

  1. Включить анализ взаимосвязей объем-цена: рассмотреть возможность добавления подтверждения объема к существующим сигналам MACD.
  2. Оптимизировать управление позициями: разработать более гибкие механизмы управления позициями, динамически адаптирующиеся к волатильности рынка.
  3. Улучшить механизм стоп-лосса: рассмотреть вопрос о добавлении остановок отслеживания или динамических остановок на основе ATR.
  4. Добавить фильтрацию рыночной среды: ввести индикаторы силы тренда, открывая позиции только на рынках с сильным трендом.
  5. Разработка механизма фильтрации сигнала: разработать более строгие условия подтверждения сигнала для сокращения ложных сигналов.

Резюме

Эта стратегия создает полную торговую систему, следующую за трендом, сочетая многочасовые перекрестные сигналы MACD с динамическими линиями поддержки и сопротивления на основе 52-недельных максимумов и минимумов.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD Bitcoin strategy con 52W High/Low (linee estese)", overlay=true)

// === MACD SETTINGS ===
fastLength = 12
slowLength = 26
signalSmoothing = 9

// Funzione per ottenere i valori MACD
getMACD(source, timeframe) =>
    [macdLine, signalLine, _] = ta.macd(source, fastLength, slowLength, signalSmoothing)
    [macdLine, signalLine]

// Valori MACD Settimanali
[macdWeekly, signalWeekly] = request.security(syminfo.tickerid, "W", getMACD(close, "W"), lookahead=barmerge.lookahead_on)

// Valori MACD Giornalieri
[macdDaily, signalDaily] = getMACD(close, "D")

// Variabile per lo stop loss
var float lowOfSignalCandle = na

// Condizione per l'ingresso
longConditionWeekly = ta.crossover(macdWeekly, signalWeekly)
exitConditionDaily = ta.crossunder(macdDaily, signalDaily)

// Imposta Stop Loss sulla candela giornaliera
if (exitConditionDaily)
    lowOfSignalCandle := low

// Condizione di ingresso nel trade
enterTradeCondition = macdWeekly > signalWeekly and ta.crossover(macdDaily, signalDaily)

if (enterTradeCondition)
    strategy.entry("MACD Long", strategy.long)

if (not na(lowOfSignalCandle))
    strategy.exit("Stop Loss", "MACD Long", stop=lowOfSignalCandle)

if (strategy.position_size == 0)
    lowOfSignalCandle := na

// // === 52 WEEK HIGH/LOW SETTINGS ===
// // Input per selezionare tra Highs/Lows o Close
// high_low_close = input.string(defval="Highs/Lows", title="Base 52 week values on candle:", options=["Highs/Lows", "Close"])

// // Calcolo dei valori delle 52 settimane
// weekly_hh = request.security(syminfo.tickerid, "W", ta.highest(high, 52), lookahead=barmerge.lookahead_on)
// weekly_ll = request.security(syminfo.tickerid, "W", ta.lowest(low, 52), lookahead=barmerge.lookahead_on)
// weekly_hc = request.security(syminfo.tickerid, "W", ta.highest(close, 52), lookahead=barmerge.lookahead_on)
// weekly_lc = request.security(syminfo.tickerid, "W", ta.lowest(close, 52), lookahead=barmerge.lookahead_on)

// // Selezione dei valori in base all'input
// high_plot = high_low_close == "Highs/Lows" ? weekly_hh : weekly_hc
// low_plot = high_low_close == "Highs/Lows" ? weekly_ll : weekly_lc

// // === LINEE ORIZZONTALI ESTESE FINO AL PREZZO ATTUALE ===
// var line highLine = na
// var line lowLine = na

// // Linea Orizzontale per il 52W High
// if (na(highLine))
//     highLine := line.new(bar_index, high_plot, bar_index + 1, high_plot, color=color.green, width=2, style=line.style_dashed, extend=extend.right)
// else
//     line.set_y1(highLine, high_plot)
//     line.set_y2(highLine, high_plot)

// // Linea Orizzontale per il 52W Low
// if (na(lowLine))
//     lowLine := line.new(bar_index, low_plot, bar_index + 1, low_plot, color=color.red, width=2, style=line.style_dashed, extend=extend.right)
// else
//     line.set_y1(lowLine, low_plot)
//     line.set_y2(lowLine, low_plot)

// // Etichette per le linee orizzontali
// var label highLabel = na
// var label lowLabel = na

// if (na(highLabel))
//     highLabel := label.new(bar_index, high_plot, "52W High", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.small)
// else
//     label.set_y(highLabel, high_plot)
//     label.set_x(highLabel, bar_index)

// if (na(lowLabel))
//     lowLabel := label.new(bar_index, low_plot, "52W Low", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.small)
// else
//     label.set_y(lowLabel, low_plot)
//     label.set_x(lowLabel, bar_index)

// // Tracciamento delle Linee Estese
// plot(high_plot, title="52W High", color=color.green, style=plot.style_linebr)
// plot(low_plot, title="52W Low", color=color.red, style=plot.style_linebr)


Связанные

Больше