
Многоциклическая идентификация обратных точек и автоматическая торговая стратегия - это количественная торговая система, основанная на модели Magic-9⁄13 и идентификации обратных точек направления (DRP). Эта стратегия захватывает рыночные обратные сигналы, идентифицируя непрерывные модели цен и точки изменения динамики, и автоматически выполняет сделки.
Основные принципы стратегии основаны на двух основных технических показателях: модели Magic-9⁄13 и точке обратного направления (DRP).
Распознавание модели Magic-9⁄13:
Расчет точек обратного направления:
Создание торгового сигнала:
Механизм управления рисками:
Вспомогательная функция:
Раннее выявление рыночных сбоевС помощью комбинации модели Magic-9⁄13 с точкой обратного направления, удается поймать сигнал на ранних стадиях рыночного переворота, что обеспечивает лучший момент входа.
Механизм многократного подтверждения: Стратегия требует одновременного выполнения двух независимых условий ((Magic mode и direction reversal crossing), снижает вероятность ложного сигнала, повышает качество сделки。
Автоматизация управления рискамиИнтегрированная функция Stop Loss и Stop Stop, которая позволяет управлять рисками отдельных сделок без ручного вмешательства и предотвращает эмоциональные торговые решения.
Визуальные торговые сигналыИнтуитивное отображение торговых сигналов с помощью цветовых изменений на этикетках и диаграммах, что позволяет трейдерам быстро идентифицировать потенциальные торговые возможности.
Настройка параметров: Стратегия предоставляет возможность корректировки двух ключевых параметров длины и длины регрессии, что позволяет трейдерам оптимизировать в зависимости от различных рыночных условий и торговых сортов.
Устойчивость обработки данныхВключает механизм обработки NA-значений, повышает стабильность стратегии в различных условиях данных.
Циклическая адаптивность: Стратегия может применяться для графиков разных временных периодов, от минутной до дневной диаграммы, обеспечивая гибкий выбор временных рамок торговли.
Параметр Чувствительность: эффективность стратегии в значительной степени зависит от параметров длины и обратной длины, в разных рыночных условиях может потребоваться различная комбинация параметров, неправильная параметровая настройка может привести к чрезмерной торговле или упущенным торговым возможностям. Решение: проведение полного исторического отсчета, создание матрицы оптимизации параметров для различных рыночных условий.
Риск рыночных колебанийВ случае высокой волатильности рынка, установка стоп-пойнта на фиксированные 10 пунктов может быть слишком маленькой, что приводит к частому срабатыванию; в случае низкой волатильности рынка, эта установка может быть слишком большой. Решение: установка стоп-пойнта на динамические значения, основанные на волатильности рынка (например, ATR), а не на фиксированное количество пунктов.
Тенденционные рыночные показателиРешение: добавление фильтра тренда, который запускает торговый сигнал только в том случае, если подтверждается, что рынок не находится в состоянии сильной тенденции.
Скидки и риски ликвидности: на рынках с низкой ликвидностью, цена исполнения может существенно отличаться от цены сигнала. Способы решения: увеличение условий фильтрации ликвидности или учет фактора скольжения при исполнении ордера.
Риск переизмеримости: стратегия использует несколько условий и параметров, возможно, существует риск чрезмерного соответствия историческим данным. Решение: использование выборочного тестирования (Out-of-sample testing) и форвардного тестирования (Forward testing) для проверки устойчивости стратегии.
Складывание последовательных сигналов: в некоторых рыночных условиях, может последовательно производить несколько сигналов в одном и том же направлении, что приводит к чрезмерному позиционированию. . Решение: внедрение механизма фильтрации сигналов, ограничивающего количество исполнений сигналов в одном и том же направлении в течение короткого времени.
Фиксированная ограничение стоп-лоссаСтойки с фиксированным количеством точек могут не подходить для всех рыночных условий и могут привести к преждевременному прекращению выгодных сделок или слишком позднему прекращению. Решение: реализация динамических стоп-стоп-стоп механизмов, основанных на рыночных колебаниях, или использование стратегий отслеживания потерь.
Изменение динамических параметров:
Добавить фильтр тренда:
Оптимизируйте механизм стоп-лосса и тейк-профита:
Повышение фильтрации объема транзакций:
Временная фильтрация:
Добавление функций управления позициями:
Оценка силы сигнала:
Добавление подтверждения на соответствующих рынках:
Многоциклическая идентификация обратных точек и автоматическая торговая стратегия - это количественная торговая система, основанная на комбинации технических показателей, которая, в сочетании с идентификацией обратных точек направления в соответствии с моделем Magic-9⁄13, улавливает потенциальные рыночные поворотные возможности. Основные преимущества этой стратегии заключаются в ее многочисленных механизмах подтверждения и интегрированных функциях управления рисками, которые позволяют предоставлять относительно надежные торговые сигналы в начале рыночных поворотных событий, одновременно контролируя риск с помощью автоматизированного стоп-лосса.
Тем не менее, стратегия также сталкивается с такими ограничениями, как чувствительность к параметрам, адаптивность к рыночной среде и фиксированные стоп-стоп. Оптимизационные меры, такие как внедрение динамической корректировки параметров, добавление фильтров тренда, оптимизация механизма стоп-стоп и увеличение подтверждения объема торгов, могут значительно повысить адаптивность стратегии и устойчивость ее работы.
Для трейдеров эта стратегия предоставляет систему для систематического захвата рыночных поворотных точек, но все же требует разумной корректировки и оптимизации параметров в сочетании с личными предпочтениями в отношении риска и пониманием рынка. В процессе практического применения рекомендуется сначала провести полное тестирование в симуляторной среде, чтобы понять характеристики стратегии в различных рыночных условиях, а затем постепенно применять их к реальным сделкам.
/*backtest
start: 2025-06-05 00:00:00
end: 2025-06-05 15:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy('L3 Magic-9/13 Strategy', overlay=true, max_bars_back=4000, max_labels_count=500)
// 输入参数
length_input = input.int(title='Length', defval=9, minval=1)
lookback_length = input.int(title='Lookback Length', defval=4, minval=1)
// 获取第一个非 NA 值的函数
get_first_non_na_value(values, length) =>
result = float(na)
if length >= 1
for i = 0 to length - 1
if na(result) or not na(values[i])
result := values[i]
result
// 计算连续条件出现次数的函数
count_consecutive_occurrences(condition, length) =>
count = 0
for i = 1 to length
if condition[i - 1]
count += 1
count
// 检查条件是否在给定周期内出现的函数
check_condition_occurrence(condition, length) =>
occurrence = count_consecutive_occurrences(condition, length) != 0 ? 1 : 0
occurrence
// 基于回溯周期过滤出现次数的函数
filter_occurrences(condition, lookback_period) =>
output = 0.0
temp = 0
for i = lookback_period to 0
if temp > 0
output := 0.0
temp := temp[1] - 1
else
if not condition[i]
output := 0.0
else
output := 1.0
temp := lookback_period + 1
output_bool = output == 1 ? true : false
output_bool
// Magic-9/13 逻辑
high_9 = count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 10) == 9
low_9 = count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 10) == 9
// 计算方向反转点
up_count = 0
down_count = 0
for i = 0 to length_input - 1
up_count += (nz(close[i]) > nz(close[i + lookback_length]) ? 1 : 0)
down_count += (nz(close[i]) < nz(close[i + lookback_length]) ? 1 : 0)
directional_reversal_point = down_count == length_input ? 1 : up_count == length_input ? -1 : 0
// 定义交易信号
buy_signal = check_condition_occurrence(low_9, 2) and ta.crossover(directional_reversal_point, 0)
sell_signal = check_condition_occurrence(high_9, 2) and ta.crossunder(directional_reversal_point, 0)
// 执行交易
if (buy_signal)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", "Buy", limit=close + 10 * syminfo.pointvalue, stop=close - 10 * syminfo.pointvalue)
if (sell_signal)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", "Sell", limit=close - 10 * syminfo.pointvalue, stop=close + 10 * syminfo.pointvalue)
// 绘制标签
labels = buy_signal ? label.new(bar_index, low, 'B', color=color.new(color.red, 40), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.small) : sell_signal ? label.new(bar_index, high, 'S', color=color.new(color.lime, 40), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.small) : na
// 绘制蜡烛图颜色
signal = directional_reversal_point > 0 or up_count > down_count ? 1 : directional_reversal_point < 0 or down_count > up_count ? -1 : 0
drp_color = signal > 0 ? color.green : signal < 0 ? color.red : color.black
barcolor(drp_color)