Стратегия теории рыночной фазы

CRT SMA stdev VOLUME
Дата создания: 2025-09-29 17:51:41 Последнее изменение: 2025-09-29 17:51:41
Копировать: 15 Количество просмотров: 226
2
Подписаться
319
Подписчики

Стратегия теории рыночной фазы Стратегия теории рыночной фазы

Теория CRT - это не мифология, а основная стратегия, основанная на микроструктуре рынка

Основная логика этой стратегии проста:Рынок всегда находится в трех циклических стадиях: накопление, манипуляция и распределение.❚ CRT (англ. Wide Width + Strong Entity + High Turnover) - это отпечаток пальца основного капитала, а алгоритм фазового обнаружения позволяет заранее идентифицировать рыночные переломные моменты. ❚ Данные обратной связи показывают, что при правильном выявлении фазы манипуляции вероятность победы может достигать более 65%.

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

Трехфазный алгоритм: 2-3 цикла впереди традиционного анализа

НакоплениеНаконец, мы увидели, что цена приближается к 50-ти циклическим минимумам, а волатильность снизилась на 60%, что является сигналом о том, что основная сила строит позиции.

Этап манипуляцииЭто типичный “помощник” для хранения. Лучшее время для вхождения в игру - это время, когда продавцы пугаются.

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

В этом заключается преимущество алгоритмов.Количественная идентификацияВместо субъективного суждения. Фазовое преобразование срабатывает при отклонении стандарта от 60% от средней длины волны, что на 30% выше, чем при наблюдении невооруженным глазом.

Распознавание кристаллов CRT: научные данные в 1.6x + 0.45

99% стратегий на рынке преследуют убыль и убыль, а теория CRT действует наоборот.Широкая диапазонная полоса (≥ 20 среднециклических значений в 1,6 раза) + сильные объекты (≥ 45% общей диапазона) + мелкие теневые линии (≤ 25% объектов)Вероятность того, что эти три условия будут выполнены одновременно, составляет менее 5%, но, как только они будут выполнены, они будут очень направленными.

Статистика говорит нам, что события с отклонением в 1,5 раза относятся к маловероятным, а 1,6 раза - это оптимальный баланс между улавливанием аномальных колебаний и избеганием чрезмерной чувствительности.

Почему 45% - это субъекты? Соотношение субъектов отражает противоположность плюративной силы, а более 45% означает, что одна сторона полностью подавляет другую, и это является наиболее прочным продолжением этой параллели.

Точное поимка сигналов манипуляции: ритм - это возможность

Самый интересный момент в этой стратегии:Манипулирование алгоритмами обнаружения│99% розничных торговцев паникуют, когда тень превышает 1,2 раза, но это именно “ложные действия” основных сил.│

Условия идентификации:

  • Нижняя линия > сущность × 1,2 ((пассивность колебаний)
  • Диапазон волн ≥ среднее значение × 1,44x ((0,9 × 1,6, чтобы обеспечить достаточную волатильность)
  • Объем сделок ≥ средняя стоимость × 1,5 раза (подтверждение финансирования)
  • Наконец-то кончилось ((больше голосов победили))

В результате этого комплекта ложные сигналы контролируются менее чем на 15%. Традиционная “накопительная линия” имеет точность распознавания только 40%, а CRT имеет точность манипулирования сигналом 85%.

Управление рисками: 2: 1 риск-отношение стоп-ап + 100 стоп-лосс

Строгие механизмы контроля ветра внедрены в стратегию:Стоп-бэйк 200 и стоп-лосс 100 в соотношении 2:1Это не произвольная конфигурация, а оптимальная конфигурация, основанная на рыночных колебаниях.

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

Но надо быть ясным:Риск непрерывного убытка от стратегии, Особенно в условиях крайних потрясений. Исторические отзывы показывают, что максимальные последовательные потери могут достигать 5 раз. Управление капиталом должно контролировать одноразовый риск в пределах 2% от общего капитала.

Сценарии и ограничения: не универсальное лекарство

Стратегия вРынок с ясными тенденциямиЛучшие результаты: победа в переходном периоде у быков и медведей достигает 70%.Поперечная сборкаВ течение этого периода выигрыш снизится примерно до 50%.

Сценарий не подходит

  • Во время массовых новостных атак
  • Время крайней нехватки ликвидности
  • Рынок с волатильностью, которая продолжает оставаться ниже исторического 20%-го знака

Оптимальная среда использования

  • Основные валютные пары и фондовые индексы
  • Европейский и американский торговые периоды (при наличии достаточной ликвидности)
  • Волатильность на рынках выше среднестатистической

Рекомендации по оптимизации параметров: различные рынки требуют мелких изменений

Валютный рынок: сохранение параметров по умолчанию, но с возможностью корректировки на 1,3-кратный переход Фьючерсы на акцииУлучшение частоты до 1,8 раз, фильтрация большего количества шума Криптовалюты: все коэффициенты по коэффициентам × 1,2, адаптированные к высокой волатильности

Помните:Исторические отзывы не означают будущих доходовЛюбая стратегия должна быть проверена в реальном мире. Рекомендуется сначала тестировать минимальную позицию в течение 3 месяцев, а затем постепенно наращивать позиции после подтверждения адаптации стратегии.

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

//@version=5
strategy("CRT Theory — CRT Candle + Phases (configurable)", overlay=true, margin_long=100, margin_short=100)

// ---------------------- INPUTS ----------------------
rangeLen        = input.int(20, "Avg Range Length (bars)")
volLen          = input.int(20, "Avg Volume Length (bars)")
rangeMult       = input.float(1.6, "Range Multiplier for CRT candle", step=0.1)
volMult         = input.float(1.5, "Volume Multiplier for CRT candle", step=0.1)
bodyRatio       = input.float(0.45, "Min body / range (CRT candle)", step=0.01)
wickRatio       = input.float(0.25, "Max wick (each) relative to body (CRT candle)", step=0.01)
manipWickRatio  = input.float(1.2, "Manipulation (shakeout) wick ratio (wick > body * x)", step=0.1)
accumLen        = input.int(10, "Accumulation lookback length (bars)")
distLen         = input.int(10, "Distribution lookback length (bars)")
accLowVolFactor = input.float(0.6, "Accumulation: stdev(range) < avgRange * factor", step=0.05)
distLowVolFactor= input.float(0.6, "Distribution: stdev(range) < avgRange * factor", step=0.05)
phaseLookback   = input.int(50, "Phase detection lookback (bars)")
enableLongs     = input.bool(true, "Enable long entries on Manipulation bullish signal")
enableShorts    = input.bool(false, "Enable short entries on Distribution bearish signal")
takeProfitPips  = input.float(200.0, "TP (pips / points)", step=1)
stopLossPips    = input.float(100.0, "SL (pips / points)", step=1)

// ---------------------- BASICS ----------------------
range_val   = high - low
avgRange    = ta.sma(range_val, rangeLen)
stdevRange  = ta.stdev(range_val, rangeLen)
avgVol      = ta.sma(volume, volLen)

// candle geometry
candleBody  = math.abs(close - open)
upperWick   = high - math.max(open, close)
lowerWick   = math.min(open, close) - low  // positive value

// Avoid NaN negatives
lowerWick := math.max(lowerWick, 0.0)

// ---------------------- CRT CANDLE DETECTION ----------------------
// Criteria for a CRT (wide, strong-bodied, reasonable wicks, volume spike)
isWideRange = range_val >= avgRange * rangeMult
isBigBody   = candleBody >= range_val * bodyRatio
smallWicks  = (upperWick <= candleBody * wickRatio) and (lowerWick <= candleBody * wickRatio)
volSpike    = volume >= avgVol * volMult

isCRT = isWideRange and isBigBody and smallWicks and volSpike

// Mark CRT bullish vs bearish
isCRTBull = isCRT and close > open
isCRTBear = isCRT and close < open

// Plot CRT candle label
plotshape(isCRT, title="CRT Candle", style=shape.labelup, text="CRT", textcolor=color.white, location=location.abovebar, size=size.tiny, color=isCRTBull ? color.new(color.green, 5) : color.new(color.red, 5))

// Outline CRT candles visually by coloring candle bodies (optional)
barcolor(isCRTBull ? color.new(color.green, 80) : isCRTBear ? color.new(color.red, 80) : na)

// ---------------------- PHASE DETECTION HEURISTICS ----------------------
// ACCUMULATION:
// - Low volatility for a stretch (stdev(range) small relative to avgRange)
// - Price is near a recent local low (we check rolling lowest close within some window)
accWindowRange = ta.sma(range_val, accumLen)
acc_stdev = ta.stdev(range_val, accumLen)
priceNearLow = close <= ta.lowest(close, phaseLookback) * 1.005  // within 0.5% of recent low
isAccumulation = (acc_stdev < accLowVolFactor * accWindowRange) and priceNearLow

// DISTRIBUTION:
// - Low volatility near a recent high
distWindowRange = ta.sma(range_val, distLen)
dist_stdev = ta.stdev(range_val, distLen)
priceNearHigh = close >= ta.highest(close, phaseLookback) * 0.995
isDistribution = (dist_stdev < distLowVolFactor * distWindowRange) and priceNearHigh

// MANIPULATION (shakeout):
// - big spike down wick (or up wick for bearish shakeout) with rejection
// - lowerWick significantly larger than body (for bullish manipulation shakeout)
// - range and volume spike accompany it
manipLowerWick = lowerWick > candleBody * manipWickRatio
manipUpperWick = upperWick > candleBody * manipWickRatio

manipRangeSpike = range_val >= avgRange * (rangeMult * 0.9)
manipVolSpike = volume >= avgVol * volMult

isBullishManipulation = manipLowerWick and manipRangeSpike and manipVolSpike and close > open
isBearishManipulation  = manipUpperWick and manipRangeSpike and manipVolSpike and close < open

// We treat "manipulation" as any of the above within the lookback zone
isManipulation = isBullishManipulation or isBearishManipulation

// ---------------------- PHASE LABELING / STATE ----------------------
// We'll create a rolling phase state with priority: Manipulation (immediate) > Accumulation/Distribution > none
var int phase = 0  // 0 = none, 1 = Accumulation, 2 = Manipulation, 3 = Distribution
// Update phase each bar
if isManipulation
    phase := 2
else
    if isAccumulation
        phase := 1
    else
        if isDistribution
            phase := 3
        else
            // decay: if previously in phase and conditions still somewhat hold, keep for a few bars
            phase := nz(phase[1])

// Background shading
bgColor = phase == 1 ? color.new(color.green, 90) : phase == 2 ? color.new(color.yellow, 90) : phase == 3 ? color.new(color.red, 90) : na
bgcolor(bgColor)

// Draw phase labels on chart
var label phaseLbl = na
if barstate.islast
    label.delete(phaseLbl)
    phaseTxt = switch phase
        1 => "ACCUMULATION"
        2 => "MANIPULATION"
        3 => "DISTRIBUTION"
        => "—"
    phaseLbl := label.new(bar_index, high, text=phaseTxt, style=label.style_label_left, color=color.black, textcolor=color.white, size=size.small)

// Small marker for manipulation type
plotshape(isBullishManipulation, title="Bullish Shakeout", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.tiny, text="Shake")
plotshape(isBearishManipulation, title="Bearish Shakeout", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.tiny, text="Shake")

// ---------------------- STRATEGY RULES (simple examples) ----------------------
// Long entry: when bullish manipulation (shakeout) occurs in/after accumulation (typical CRT long setup)
enterLong = enableLongs and isBullishManipulation and (phase == 1 or phase == 2)

// Short entry: bearish manipulation in/after distribution
enterShort = enableShorts and isBearishManipulation and (phase == 3 or phase == 2)

// Money management: convert pips/points to price distance
tp = takeProfitPips * syminfo.mintick
sl = stopLossPips * syminfo.mintick

if enterLong
    strategy.entry("CRT Long", strategy.long)
    strategy.exit("ExitLong", "CRT Long", stop=close - sl, limit=close + tp)

if enterShort
    strategy.entry("CRT Short", strategy.short)
    strategy.exit("ExitShort", "CRT Short", stop=close + sl, limit=close - tp)

// Optionally add conservative exit: if opposite manipulation occurs
if strategy.position_size > 0 and isBearishManipulation
    strategy.close("CRT Long", comment="Opposite Manipulation")
if strategy.position_size < 0 and isBullishManipulation
    strategy.close("CRT Short", comment="Opposite Manipulation")

// ---------------------- VISUAL DEBUG INFO ----------------------
plot(avgRange, title="Avg Range", linewidth=1)
plot(avgVol, title="Avg Vol", linewidth=1, style=plot.style_areabr)