
Эта уникальная методика позволяет избежать сложности наложения нескольких индикаторов, а также повысить точность обнаружения ранних тенденций и балансировку многопрофильных сделок. CETP-Plus требует переключения на прямой трехмерный график с помощью сравнительной диаграммы многопрофильных сделок (реальное, находящееся на нижней линии) для расчета трехмерных сделок (низкие значения многопрофильных сделок) и использования полного отклонения от позитивных и отрицательных колебаний и умножения динамических тенденций, чтобы полностью отрегулировать позитивные и отрицательные знаки.
В основе стратегии лежит применение Шенноновского кристалла для анализа графических моделей на финансовых рынках. Шенноновский кристалл был получен из информатической теории и используется для количественного определения неопределенности или “размера путаницы” случайных переменных. В этой стратегии кристалл рассчитывается и применяется следующим образом:
Окончательный CETP-оценка является результатом сочетания этих факторов: позитивные значения склонны к позитивным, а отрицательные значения - к отрицательным. Логика торговли проста и прямолинейна: делать больше, когда CETP-оценка превышает установленный позитивный предел, и делать пустое, когда она ниже отрицательного предела. Чтобы избежать мелких сделок, в стратегию включены фильтры с минимальным движением цены, которые гарантируют, что текущая диаграмма имеет достаточный диапазон, чтобы вызвать торговлю.
Интегрированный сигналИндекс CETP-Plus объединяет в себе преимущества традиционных индикаторов (EMA, RSI, ATR, ADX) для обеспечения единого и четкого торгового сигнала, избегая конфликта и риска чрезмерного совпадения.
Умение адаптироватьсяСтратегия может автоматически корректироваться в зависимости от рыночных условий, адаптироваться к различным волатильным условиям и интенсивности тенденций, хорошо работать в различных рыночных состояниях без необходимости ручного вмешательства.
Симметрическая полигамияСтратегия придает одинаковый вес многообещающим и безнадежным возможностям, что позволяет им эффективно работать как в бычьем, так и в медвежьем рынках, не подвергаясь влиянию направленного предвзятости.
Ранние тенденцииНапример, в одном из исследований, проведенном в 2007 году, было обнаружено, что в некоторых странах, например, в Китае и Китае, существуют различные методы определения ценных бумаг, используемые для определения ценных бумаг.
Уменьшение воздействия шумаС помощью методов анализа и диаграммы прямоугольника, стратегия может различать реальные сигналы от рынка шума, уменьшая количество ложных сигналов.
Настройка: большое количество параметров может быть оптимизировано в зависимости от разных типов торгов и временных рамок, что позволяет стратегии иметь высокую гибкость и адаптивность.
Полное управление рискамиИнтегрированный многоуровневый механизм управления риском, включающий в себя стопроцентный стоп, динамический стоп на основе ATR и отслеживание стоп, а также минимальный торговый фильтр, эффективно контролирующий отзыв.
Параметр Чувствительность: Стратегия содержит множество регулируемых параметров, избыточная оптимизация может привести к плохой производительности в реальной торговле. Различные рыночные условия могут потребовать разных параметров, что усложняет обслуживание системы.
Риски высокочастотных сделокПрименение стратегии может привести к большому количеству торговых сигналов, особенно на рынках с высокой волатильностью, что приводит к чрезмерной торговле, увеличению комиссионных издержек и увеличению скольжения.
Сложность вычислений: Расчеты в трехмерных прямоугольниках и ячейках могут потребовать более высокие вычислительные ресурсы при выполнении в реальном времени, что может привести к задержке выполнения, особенно в более короткие временные рамки.
Алгоритм рисковСтратегия основана на предположении, что криптовалюты могут эффективно улавливать рыночные модели, но структура рынка может меняться с течением времени, что делает это предположение недействительным.
Волатильная зависимостьСтратегия: использование волатильных фильтров и фильтров с минимальными ценовыми движениями, возможно, пропущенные торговые возможности в условиях низкой волатильности, возможно, чрезмерная чувствительность в условиях высокой волатильности.
Риски исторической совместимостиНесмотря на то, что стратегия сочетает в себе преимущества по нескольким показателям, существует риск перенастройки исторических данных, что может привести к снижению эффективности в результате изменения рыночных условий в будущем.
Решения включают в себя: регулярную реоптимизацию параметров, проверку стабильности параметров с помощью пошаговых тестов, внедрение более строгих условий фильтрации, снижение частоты сделок, увеличение условий подтверждения для улучшения качества сигнала, а также корректировку параметров риска для эффективности системы мониторинга в реальном времени.
Механизм адаптации параметров: динамическая корректировка параметров, автоматическая оптимизация окна, порога и веса CETP в зависимости от волатильности рынка, объема сделок и интенсивности тенденций. Такая оптимизация позволяет системе лучше адаптироваться к изменяющимся рыночным условиям, уменьшая потребность в ручном вмешательстве.
Интеграция многовременного анализа: объединение сигналов CETP из разных временных рамок для создания системы подтверждения уровня. Например, выполнение сделок только при совпадении сигналов более высоких временных рамок с сигналами временных рамок торговли, повышение шансов на победу.
Машинное обучениеВнедрение алгоритмов машинного обучения для оптимизации выбора параметров и фильтрации сигналов. Выявление наиболее эффективных комбинаций параметров с помощью мониторингового обучения или использование алгоритмов сгруппировки для выявления различных состояний рынка и соответствующей корректировки стратегии.
Фильтр ликвидности и объема сделокДобавление фильтров, основанных на объемах торгов и глубине рынка, чтобы гарантировать, что торговля осуществляется только при наличии достаточной ликвидности, уменьшая проскальзывание и риск исполнения.
Анализ корреляции между несколькими активамиИнтеграция информации о соответствующих рынках (например, индексы, соответствующие акции или товары) для повышения уверенности в сделке при наличии согласованных сигналов на нескольких соответствующих рынках.
Модели прогнозирования волатильностиРазработка компонентов для прогнозирования волатильности, предварительная корректировка порогов и параметров риска, чтобы подготовиться к предстоящей волатильной среде.
Автоматизированная система отслеживания и оптимизацииСоздание автоматизированной системы для регулярного переоценки стратегии на основе новых данных и корректировки параметров в соответствии с последними тенденциями рынка, чтобы гарантировать адаптивность стратегии.
Вышеуказанные направления оптимизации направлены на повышение устойчивости, адаптивности и прибыльности стратегий, а также на снижение потребности в человеческом вмешательстве и риска чрезмерной адаптации. Постепенная реализация этих оптимизаций позволит создать более интеллектуальную и автономную торговую систему.
Многомерная динамическая торговая система с динамическими трендами представляет собой инновационный метод количественной торговли, который захватывает упорядоченность и предсказуемость в ценовых моделях, применяя концепцию криптовалют из информатики к финансовым рынкам. Основная преимущество этой стратегии заключается в том, что она интегрирует математические принципы с несколькими традиционными техническими показателями, создавая единый и четкий торговый сигнал, избегая конфликта и смешения сигналов.
Несмотря на то, что стратегия обладает мощными функциями адаптации и управления рисками, она также сталкивается с такими проблемами, как чувствительность параметров, сложность вычислений и изменения структуры рынка. С помощью реализации рекомендуемых направлений оптимизации, таких как механизмы адаптации параметров, многовременный анализ и усиление машинного обучения, можно еще больше повысить устойчивость и долгосрочную производительность стратегии.
В целом, это хорошо продуманная, с хорошей теоретической базой, количественная система торговли, подходящая для использования трейдерами с программированием и статистикой на рынках с высокой волатильностью. Благодаря тщательной оптимизации параметров и постоянному систематическому мониторингу, стратегия имеет потенциал для стабильной корректировки риска и возврата в различных рыночных условиях.
/*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