Многомерная энтропийная импульсная трендовая адаптивная торговая система

CETP-Plus Shannon Entropy RSI ATR ADX EMA momentum 3D Histogram Volatility Filter
Дата создания: 2025-08-11 09:46:42 Последнее изменение: 2025-08-20 16:26:32
Копировать: 4 Количество просмотров: 353
2
Подписаться
319
Подписчики

Многомерная энтропийная импульсная трендовая адаптивная торговая система Многомерная энтропийная импульсная трендовая адаптивная торговая система

Обзор

Эта уникальная методика позволяет избежать сложности наложения нескольких индикаторов, а также повысить точность обнаружения ранних тенденций и балансировку многопрофильных сделок. CETP-Plus требует переключения на прямой трехмерный график с помощью сравнительной диаграммы многопрофильных сделок (реальное, находящееся на нижней линии) для расчета трехмерных сделок (низкие значения многопрофильных сделок) и использования полного отклонения от позитивных и отрицательных колебаний и умножения динамических тенденций, чтобы полностью отрегулировать позитивные и отрицательные знаки.

Стратегический принцип

В основе стратегии лежит применение Шенноновского кристалла для анализа графических моделей на финансовых рынках. Шенноновский кристалл был получен из информатической теории и используется для количественного определения неопределенности или “размера путаницы” случайных переменных. В этой стратегии кристалл рассчитывается и применяется следующим образом:

  1. Расчет коэффициентаСначала стратегия рассчитывает три ключевых коэффициента - коэффициент сущности (отражающий интенсивность тренда), коэффициент верхней теневой линии и коэффициент нижней теневой линии (отражающий потенциальную реверсию).
  2. Индекс убыли: использование фактора ослабления ((0.8) для взвешивания исторических данных, придавая более высокий вес недавним данным, аналогично принципу работы EMA.
  3. Трехмерный прямоугольник: помещение пропорции крон в трёхмерный прямоугольник, измерения которого соответствуют объекту, верхней и нижней линией.
  4. Уровень водорода: используйте формулу Шаннона для вычисления углов прямоугольника, низкие углы указывают на наличие сильной модели.
  5. Интеграция отклонений: Аналогичные методы расчета RSI используются для того, чтобы зафиксировать движение цен и скорректировать коэффициент ртути.
  6. Тенденция по изменению силыАналогичные методы вычислений, используемые для определения направления и интенсивности тренда, позволяют дополнительно скорректировать оценку.
  7. Корректировка волатильности: использование ATR для масштабирования волатильности, чтобы обеспечить согласованность сигнала в различных волатильных средах.

Окончательный CETP-оценка является результатом сочетания этих факторов: позитивные значения склонны к позитивным, а отрицательные значения - к отрицательным. Логика торговли проста и прямолинейна: делать больше, когда CETP-оценка превышает установленный позитивный предел, и делать пустое, когда она ниже отрицательного предела. Чтобы избежать мелких сделок, в стратегию включены фильтры с минимальным движением цены, которые гарантируют, что текущая диаграмма имеет достаточный диапазон, чтобы вызвать торговлю.

Стратегические преимущества

  1. Интегрированный сигналИндекс CETP-Plus объединяет в себе преимущества традиционных индикаторов (EMA, RSI, ATR, ADX) для обеспечения единого и четкого торгового сигнала, избегая конфликта и риска чрезмерного совпадения.

  2. Умение адаптироватьсяСтратегия может автоматически корректироваться в зависимости от рыночных условий, адаптироваться к различным волатильным условиям и интенсивности тенденций, хорошо работать в различных рыночных состояниях без необходимости ручного вмешательства.

  3. Симметрическая полигамияСтратегия придает одинаковый вес многообещающим и безнадежным возможностям, что позволяет им эффективно работать как в бычьем, так и в медвежьем рынках, не подвергаясь влиянию направленного предвзятости.

  4. Ранние тенденцииНапример, в одном из исследований, проведенном в 2007 году, было обнаружено, что в некоторых странах, например, в Китае и Китае, существуют различные методы определения ценных бумаг, используемые для определения ценных бумаг.

  5. Уменьшение воздействия шумаС помощью методов анализа и диаграммы прямоугольника, стратегия может различать реальные сигналы от рынка шума, уменьшая количество ложных сигналов.

  6. Настройка: большое количество параметров может быть оптимизировано в зависимости от разных типов торгов и временных рамок, что позволяет стратегии иметь высокую гибкость и адаптивность.

  7. Полное управление рискамиИнтегрированный многоуровневый механизм управления риском, включающий в себя стопроцентный стоп, динамический стоп на основе ATR и отслеживание стоп, а также минимальный торговый фильтр, эффективно контролирующий отзыв.

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

  1. Параметр Чувствительность: Стратегия содержит множество регулируемых параметров, избыточная оптимизация может привести к плохой производительности в реальной торговле. Различные рыночные условия могут потребовать разных параметров, что усложняет обслуживание системы.

  2. Риски высокочастотных сделокПрименение стратегии может привести к большому количеству торговых сигналов, особенно на рынках с высокой волатильностью, что приводит к чрезмерной торговле, увеличению комиссионных издержек и увеличению скольжения.

  3. Сложность вычислений: Расчеты в трехмерных прямоугольниках и ячейках могут потребовать более высокие вычислительные ресурсы при выполнении в реальном времени, что может привести к задержке выполнения, особенно в более короткие временные рамки.

  4. Алгоритм рисковСтратегия основана на предположении, что криптовалюты могут эффективно улавливать рыночные модели, но структура рынка может меняться с течением времени, что делает это предположение недействительным.

  5. Волатильная зависимостьСтратегия: использование волатильных фильтров и фильтров с минимальными ценовыми движениями, возможно, пропущенные торговые возможности в условиях низкой волатильности, возможно, чрезмерная чувствительность в условиях высокой волатильности.

  6. Риски исторической совместимостиНесмотря на то, что стратегия сочетает в себе преимущества по нескольким показателям, существует риск перенастройки исторических данных, что может привести к снижению эффективности в результате изменения рыночных условий в будущем.

Решения включают в себя: регулярную реоптимизацию параметров, проверку стабильности параметров с помощью пошаговых тестов, внедрение более строгих условий фильтрации, снижение частоты сделок, увеличение условий подтверждения для улучшения качества сигнала, а также корректировку параметров риска для эффективности системы мониторинга в реальном времени.

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

  1. Механизм адаптации параметров: динамическая корректировка параметров, автоматическая оптимизация окна, порога и веса CETP в зависимости от волатильности рынка, объема сделок и интенсивности тенденций. Такая оптимизация позволяет системе лучше адаптироваться к изменяющимся рыночным условиям, уменьшая потребность в ручном вмешательстве.

  2. Интеграция многовременного анализа: объединение сигналов CETP из разных временных рамок для создания системы подтверждения уровня. Например, выполнение сделок только при совпадении сигналов более высоких временных рамок с сигналами временных рамок торговли, повышение шансов на победу.

  3. Машинное обучениеВнедрение алгоритмов машинного обучения для оптимизации выбора параметров и фильтрации сигналов. Выявление наиболее эффективных комбинаций параметров с помощью мониторингового обучения или использование алгоритмов сгруппировки для выявления различных состояний рынка и соответствующей корректировки стратегии.

  4. Фильтр ликвидности и объема сделокДобавление фильтров, основанных на объемах торгов и глубине рынка, чтобы гарантировать, что торговля осуществляется только при наличии достаточной ликвидности, уменьшая проскальзывание и риск исполнения.

  5. Анализ корреляции между несколькими активамиИнтеграция информации о соответствующих рынках (например, индексы, соответствующие акции или товары) для повышения уверенности в сделке при наличии согласованных сигналов на нескольких соответствующих рынках.

  6. Модели прогнозирования волатильностиРазработка компонентов для прогнозирования волатильности, предварительная корректировка порогов и параметров риска, чтобы подготовиться к предстоящей волатильной среде.

  7. Автоматизированная система отслеживания и оптимизацииСоздание автоматизированной системы для регулярного переоценки стратегии на основе новых данных и корректировки параметров в соответствии с последними тенденциями рынка, чтобы гарантировать адаптивность стратегии.

Вышеуказанные направления оптимизации направлены на повышение устойчивости, адаптивности и прибыльности стратегий, а также на снижение потребности в человеческом вмешательстве и риска чрезмерной адаптации. Постепенная реализация этих оптимизаций позволит создать более интеллектуальную и автономную торговую систему.

Подвести итог

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

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

В целом, это хорошо продуманная, с хорошей теоретической базой, количественная система торговли, подходящая для использования трейдерами с программированием и статистикой на рынках с высокой волатильностью. Благодаря тщательной оптимизации параметров и постоянному систематическому мониторингу, стратегия имеет потенциал для стабильной корректировки риска и возврата в различных рыночных условиях.

Исходный код стратегии
/*backtest
start: 2024-08-11 00:00:00
end: 2025-08-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

// @version=6
strategy("Canuck Trading Traders Strategy [Candle Entropy Edition]", overlay=true, default_qty_value = 10)
// Note: Set Properties "Order size" to "100% of equity" for equity-based sizing or fixed contracts (e.g., 100).

// === CETP-Plus Settings ===
cetp_window = input.int(5, "CETP Window", minval=1, maxval=20, group="CETP-Plus Settings")
cetp_bins = input.int(3, "CETP Bins per Dimension", minval=1, maxval=10, group="CETP-Plus Settings")
long_threshold = input.float(0.1, "Long Threshold", minval=0.01, maxval=5.0, step=0.01, group="CETP-Plus Settings")
short_threshold = input.float(-0.1, "Short Threshold", minval=-0.8, maxval=-0.01, step=0.01, group="CETP-Plus Settings")
cetp_k = input.float(0.8, "CETP Momentum Weight", minval=0.1, maxval=5.0, step=0.1, group="CETP-Plus Settings")
mom_scale = input.float(6.0, "Momentum Scale", minval=1.0, maxval=20.0, step=1.0, group="CETP-Plus Settings")
body_weight = input.float(1.0, "Body Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
upper_weight = input.float(0.8, "Upper Wick Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
lower_weight = input.float(1.0, "Lower Wick Ratio Weight", minval=0.0, maxval=2.0, step=0.1, group="CETP-Plus Settings")
decay_factor = 0.8  // Hardcoded decay for exponential weighting (recent candles weighted more)

// === Trade Settings ===
min_score_strength = input.float(0.03, "Min CETP Score Strength", minval=0.0, maxval=5, step=0.01, group="Trade Settings")
stop_loss_pct = input.float(0.5, "Stop Loss (%)", minval=0.1, maxval=5.0, step=0.1, group="Trade Settings")
atr_mult = input.float(3.0, "ATR Multiplier", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
trail_mult = input.float(5.0, "Trailing ATR Mult", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
trail_offset_pct = input.float(1.0, "Trail Start Offset (%)", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")
min_price_move_mult = input.float(2.0, "Min Price Move ATR Mult (to avoid tiny trades)", minval=0.5, maxval=10.0, step=0.1, group="Trade Settings")  // Filter tiny moves

// Indicators (ATR for stops/trails only)
atr = nz(ta.atr(14), 0.0)

// Volatility Filter (CV < 15% to avoid chop)
vol_threshold = ta.stdev(close, 20) / ta.sma(close, 20) * 100
trade_allowed = vol_threshold < 15.0

// Minimum Price Move Filter (candle range > ATR multiple, floored by min tick)
min_price_move = math.max(atr * min_price_move_mult, syminfo.mintick * 10)  // Avoid sub-penny moves; 10x tick for robustness
price_move_condition = (high - low) > min_price_move  // Fixed: Use high - low instead of ta.range()

// CETP-Plus Calculation (Blended EMA, RSI, ATR, ADX theses)
epsilon = 1e-5
body_ratio = (close - open) / (high - low + epsilon) * body_weight
upper_wick_ratio = (high - math.max(open, close)) / (high - low + epsilon) * upper_weight
lower_wick_ratio = (math.min(open, close) - low) / (high - low + epsilon) * lower_weight

// EMA-like weighting: Exponentially weight recent candles with fixed-size rolling arrays
var float[] body_arr = array.new_float(cetp_window, 0.0)
var float[] upper_arr = array.new_float(cetp_window, 0.0)
var float[] lower_arr = array.new_float(cetp_window, 0.0)

// Shift and decay older values, add new at the end
for i = 0 to cetp_window - 2
    array.set(body_arr, i, array.get(body_arr, i + 1) * decay_factor)
    array.set(upper_arr, i, array.get(upper_arr, i + 1) * decay_factor)
    array.set(lower_arr, i, array.get(lower_arr, i + 1) * decay_factor)

array.set(body_arr, cetp_window - 1, body_ratio)
array.set(upper_arr, cetp_window - 1, upper_wick_ratio)
array.set(lower_arr, cetp_window - 1, lower_wick_ratio)

// Volatility scaling (ATR thesis)
bin_size = 2.0 / cetp_bins * (1 + atr / ta.sma(atr, 14))
hist_size = cetp_bins * cetp_bins * cetp_bins
var int[] hist = array.new_int(hist_size, 0)
array.fill(hist, 0)

for i = 0 to cetp_window - 1
    body_val = array.get(body_arr, i)
    upper_val = array.get(upper_arr, i)
    lower_val = array.get(lower_arr, i)
    
    body_bin = math.max(0, math.min(cetp_bins - 1, math.floor((body_val + 1) / bin_size)))
    upper_bin = math.max(0, math.min(cetp_bins - 1, math.floor((upper_val + 1) / bin_size)))
    lower_bin = math.max(0, math.min(cetp_bins - 1, math.floor((lower_val + 1) / bin_size)))
    
    bin_idx = body_bin * (cetp_bins * cetp_bins) + upper_bin * cetp_bins + lower_bin
    array.set(hist, bin_idx, array.get(hist, bin_idx) + 1)

entropy = 0.0
for i = 0 to hist_size - 1
    count = array.get(hist, i)
    p = count / cetp_window
    if p > 0
        entropy := entropy - p * math.log(p)

max_entropy = math.log(hist_size)
norm_entropy = max_entropy > 0 ? entropy / max_entropy : 0.0

// RSI-like momentum bias
avg_gain = ta.rma(math.max(close - close[1], 0), cetp_window)
avg_loss = ta.rma(math.max(close[1] - close, 0), cetp_window)
rsi_bias = avg_loss > 0 ? avg_gain / avg_loss : 1.0
momentum = ta.mom(close, cetp_window) / (close[cetp_window] != 0 ? close[cetp_window] : 1e-5)
momentum_adj = momentum * (1 + rsi_bias)

// ADX-like trend strength (automated and symmetric for bull/bear)
di_plus = ta.rma(math.max(high - high[1], 0), cetp_window) / atr
di_minus = ta.rma(math.max(low[1] - low, 0), cetp_window) / atr
trend_strength = di_plus > di_minus ? 1.2 : (di_minus > di_plus ? 1.2 : 1.0)

// CETP-Plus Score (optimized: no abs on momentum_adj to preserve sign for better short detection)
avg_body = nz(array.avg(body_arr), 0.0)
raw_score = avg_body * (1 - norm_entropy) * (cetp_k + momentum_adj * mom_scale)
cetp_score = nz(raw_score * trend_strength, 0.0)

// Position State
var float entry_price = na
var int bars_held = 0

if barstate.isconfirmed
    bars_held := strategy.position_size != 0 ? bars_held + 1 : 0

// Trade Logic: Rely solely on current CETP score for entries/exits/reversals, with min price move filter
if bar_index >= cetp_window and math.abs(cetp_score) > min_score_strength and trade_allowed and price_move_condition
    if cetp_score > long_threshold
        if strategy.position_size < 0
            strategy.close("Short", comment="Reverse to Long")
        if strategy.position_size <= 0
            strategy.entry("Long", strategy.long)
            entry_price := close
            sl = entry_price * (1 - stop_loss_pct / 100) - atr * atr_mult
            strategy.exit("Long Exit", "Long", stop=sl, trail_points=atr * trail_mult * syminfo.pointvalue, trail_offset=entry_price * (trail_offset_pct / 100))
            bars_held := 1
    else if cetp_score < short_threshold
        if strategy.position_size > 0
            strategy.close("Long", comment="Reverse to Short")
        if strategy.position_size >= 0
            strategy.entry("Short", strategy.short)
            entry_price := close
            sl = entry_price * (1 + stop_loss_pct / 100) + atr * atr_mult
            strategy.exit("Short Exit", "Short", stop=sl, trail_points=atr * trail_mult * syminfo.pointvalue, trail_offset=entry_price * (trail_offset_pct / 100))
            bars_held := 1