
Технический график подтверждения многоциклической динамики стратегии является торговой системой, основанной на различных классических диаграмм формы идентификации и в сочетании с подтверждением динамики. Эта стратегия в основном путем идентификации технических форм, распространенных на рынке, таких как головы и плеч, головы и плеч, двойной, двойной, треугольный (симметричный, восходящий, нисходящий), флаги, и т. д., и в случае формы прорыва подтверждение входных сигналов.
Ключевой принцип стратегии заключается в том, чтобы идентифицировать различные графические формы с помощью ряда условных функций и подтвердить торговые сигналы при прорыве цены через критические уровни:
Идентификация головы и плеч/подплечья: выявление характерной структуры голово-плечевой формы путем сравнения относительной относительности между последовательными высокими и низкими точками. Образуется голово-плечевая форма, когда высота 1 больше высоты 0, 2, 3, 4 и высота 0 меньше высоты 2 и 3.
Двойная вершина/двойная основаДвойной вершины и двойной основы можно определить, проанализировав последовательность высоты/низкости. Двойной вершины - высота 1 должна быть больше окружающей высоты; двойной основы - низкость 1 должна быть меньше окружающей низкости.
Треугольное распознавание:
Форма флага/опознание треугольника: Выявление последовательных моделей изменений, анализируя высокие и низкие точки.
Подтверждение торгового сигнала:
Управление рисками:
Систематизированная идентификация форм: Стратегия позволяет автоматически распознавать различные классические графические формы, определяя четкие условные функции, снижая отклонения в субъективных суждениях.
Механизм подтверждения сигналаСтратегия не только идентифицирует графические формы, но и требует, чтобы цены преодолевали критические уровни в качестве подтверждения, что снижает риск ложных прорывов.
Динамическое управление рисками: использование ATR-индикатора для установки динамических уровней стоп-лорда и стоп-стоп, чтобы риск-контроль был более адаптирован к изменениям волатильности рынка;
Многоформатное покрытиеСтратегия включает в себя несколько классических графических форм, увеличивает возможности для торговли и адаптируется к различным рыночным условиям.
Визуальное представление: Стратегия использует функцию plotshape для визуального отображения различных форм, идентифицированных на графике, чтобы помочь трейдерам понять и проверить логику стратегии.
Прибыль от риска выгоднее, чем риск.Стратегия: установка 3-кратного ATR в качестве остановки, 1,5-кратного ATR в качестве остановки, соотношение возврата к риску 1: 2, в соответствии с принципами эффективного управления рисками.
Ограниченная точность распознавания формВ настоящее время алгоритмы распознавания форм являются относительно упрощенными, что может привести к ошибочным или пропущенным выводам, особенно в условиях высокого уровня шума на рынке.
Параметр ЧувствительностьНастройки цикла ATR и множители стоп-стоп оказывают существенное влияние на эффективность стратегии и требуют оптимизации в зависимости от различных рынков и временных рамок.
Риск ложного проникновенияНесмотря на наличие механизмов подтверждения, на рынке по-прежнему существуют ложные прорывы, которые могут привести к ненужным потерям сделок.
Повторное распознавание формы: Некоторые функции формоидентификации в текущем коде похожи по логике (например, голова-плечовая вершина и двойная вершина), что может привести к запускам нескольких сигналов в одних и тех же рыночных условиях, увеличивая частоту и стоимость торгов.
Отсутствие фильтрации тенденцийПри этом, как отмечается в статье, “стратегия не учитывает направление общей рыночной тенденции, что может привести к обратному сигналу в сильных тенденциях, что приведет к противоположной торговле”.
Как избежать риска:
Улучшение алгоритмов распознавания форм:
Добавить подтверждение транзакции:
Фильтр трендов:
Оптимизация управления рисками:
Добавление фильтра времени:
Анализ многовременных рамок:
Эти оптимизационные направления значительно повысят устойчивость и эффективность стратегии, потому что:
Техническая графическая стратегия подтверждения многоциклической динамики - это систематизированная, четкая в правилах торговая система, которая генерирует торговые сигналы, идентифицируя различные классические графические формы и комбинируя их с подтверждением прорыва. Стратегия использует показатели ATR для динамического управления риском и устанавливает разумную доходность риска. Хотя текущие версии алгоритмов идентификации форм относительно упрощены, они обеспечивают хорошую основу для дальнейшей оптимизации.
/*backtest
start: 2024-02-29 00:00:00
end: 2025-02-26 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Chart Pattern Strategy - Full Set", overlay=true)
// ATR settings for stop loss and take profit
atrLength = input.int(14, title="ATR Length")
atrValue = ta.atr(atrLength)
stopLoss = atrValue * 1.5 // Stop loss 1.5 ATR
takeProfit = atrValue * 3 // Take profit 3 ATR
// Head and Shoulders Detection
isHeadAndShoulders() =>
high[1] > high[2] and high[1] > high[0] and high[1] > high[3] and high[1] > high[4] and high[0] < high[2] and high[0] < high[3]
// Double Top Detection
isDoubleTop() =>
high[1] > high[2] and high[1] > high[0] and high[1] > high[3] and high[1] > high[4] and high[0] < high[2] and high[0] < high[3]
// Double Bottom Detection
isDoubleBottom() =>
low[1] < low[2] and low[1] < low[0] and low[1] < low[3] and low[1] < low[4] and low[0] > low[2] and low[0] > low[3]
// Symmetrical Triangle Detection
isSymmetricalTriangle() =>
high[2] > high[1] and low[2] < low[1] and high[3] < high[2] and low[3] > low[2]
// Ascending Triangle Detection (Bullish)
isAscendingTriangle() =>
high[2] < high[1] and low[2] > low[1] and high[3] < high[2] and low[3] > low[2]
// Descending Triangle Detection (Bearish)
isDescendingTriangle() =>
high[2] > high[1] and low[2] < low[1] and high[3] < high[2] and low[3] < low[2]
// Flags/Pennants Detection
isFlagPattern() =>
high[1] < high[0] and low[1] > low[0] and high[2] < high[1] and low[2] < low[1]
// Entry Logic (Confirmation based on Breakouts)
longSignal = (isHeadAndShoulders() or isDoubleBottom() or isAscendingTriangle()) and close > high[1]
shortSignal = (isDoubleTop() or isDescendingTriangle() or isFlagPattern()) and close < low[1]
// Plotting Chart Patterns on the Chart
plotshape(isHeadAndShoulders(), title="Head and Shoulders", location=location.abovebar, color=color.red, style=shape.labelup, text="HS")
plotshape(isDoubleTop(), title="Double Top", location=location.abovebar, color=color.red, style=shape.labelup, text="DT")
plotshape(isDoubleBottom(), title="Double Bottom", location=location.belowbar, color=color.green, style=shape.labeldown, text="DB")
plotshape(isSymmetricalTriangle(), title="Symmetrical Triangle", location=location.top, color=color.blue, style=shape.triangledown, text="ST")
plotshape(isAscendingTriangle(), title="Ascending Triangle", location=location.belowbar, color=color.green, style=shape.labelup, text="AT")
plotshape(isDescendingTriangle(), title="Descending Triangle", location=location.abovebar, color=color.red, style=shape.labeldown, text="DT")
plotshape(isFlagPattern(), title="Flag Pattern", location=location.abovebar, color=color.orange, style=shape.triangledown, text="Flag")
// Executing Trades based on Patterns
if (longSignal)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=close - stopLoss, limit=close + takeProfit)
if (shortSignal)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=close + stopLoss, limit=close - takeProfit)