В процессе загрузки ресурсов... загрузка...

Интеллектуальная тенденция, основанная на теории многозона SMC, следующая за стратегией

Автор:Чао Чжан, Дата: 2024-11-29 15:38:01
Тэги:SMASMCОБЭК

img

Обзор

Эта стратегия, основанная на теории Smart Money Concepts (SMC), строит всеобъемлющую тенденцию после торговой системы, разделяя рынок на три ключевых ценовых зоны: равновесие, премиум и дисконт.

Принципы стратегии

Основная логика включает в себя несколько ключевых элементов:

  1. Вычисляет высокие и низкие показатели за последние 8 свечей, чтобы определить рыночный диапазон.
  2. Определяет зону равновесия как среднюю точку между высоким и низким, с зоной премии выше и зоной дисконта ниже.
  3. Использует 50-периодный СМА для определения общего направления тренда - бычий выше СМА, медвежий ниже.
  4. Сгенерирует сигналы покупки в дисконтной зоне, когда цена выше SMA, и продает сигналы в премиальной зоне, когда цена ниже SMA.
  5. Определяет блоки ордеров путем анализа наивысших и низких цен в пределах 20 свечей для подтверждения торговых сигналов.
  6. Знаки колебания максимумов и минимумов как зоны ликвидности, чтобы предсказать потенциальные точки переворота цен.

Преимущества стратегии

  1. Метод структурированного зонирования, обеспечивающий четкое определение фазы рынка.
  2. Механизм подтверждения множественного сигнала посредством тройной проверки зон, тенденций и блоков заказов.
  3. Динамическая адаптация к изменениям на рынке с обновлением ключевых уровней цен в режиме реального времени.
  4. Комплексная система управления рисками, включающая стоп-лосс и управление позициями.
  5. Чистая и эффективная реализация кода, легкая в обслуживании и оптимизации.

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

  1. Потенциальные ложные сигналы прорыва на волатильных рынках.
  2. Показатель отстает от быстрых изменений на рынке из-за зависимости от исторических данных.
  3. Фиксированная скользящая средняя может не подходить для всех рыночных условий.
  4. Требует правильных настроек стоп-лосса для контроля риска. Рекомендуемые меры управления рисками:
  • Динамическая корректировка параметров для различных рыночных условий
  • Добавление фильтров волатильности
  • Внедрение строгих правил управления денежными средствами
  • Регулярное обратное тестирование и оптимизация параметров

Руководство по оптимизации

  1. Введите адаптивные параметры:
  • Динамическая корректировка диапазонов зоны на основе волатильности рынка
  • Внедрение скользящих средних за адаптивный период
  1. Улучшенная фильтрация сигнала:
  • Добавить механизм подтверждения объема
  • Включить индикаторы импульса
  1. Улучшить управление рисками:
  • Внедрение динамического механизма стоп-лосса
  • Оптимизировать алгоритм размещения позиций
  1. Увеличить эффективность исполнения:
  • Оптимизировать логику расчета для снижения потребления ресурсов
  • Улучшение механизма генерации сигнала для более быстрого ответа

Резюме

Эта стратегия создает прочную тенденцию после системы через интеллектуальное разделение зон и множественные механизмы подтверждения сигналов. Ее основные силы заключаются в явном анализе структуры рынка и всеобъемлющем управлении рисками. Благодаря постоянной оптимизации и улучшению стратегия обещает стабильную производительность в различных рыночных условиях. Трейдерам рекомендуется корректировать параметры на основе специфических характеристик рынка и поддерживать строгий контроль рисков при реализации стратегии в режиме реального времени.


/*backtest
start: 2024-11-21 00:00:00
end: 2024-11-28 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@version=5
strategy("SMC Strategy with Premium, Equilibrium, and Discount Zones", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === Instellingen voor Swing High en Swing Low ===
swingHighLength = input.int(8, title="Swing High Length")
swingLowLength = input.int(8, title="Swing Low Length")

// Vind de recente swing highs en lows
var float swingHigh = na
var float swingLow = na

if (ta.highestbars(high, swingHighLength) == 0)
    swingHigh := high

if (ta.lowestbars(low, swingLowLength) == 0)
    swingLow := low

// Bereken Equilibrium, Premium en Discount Zones
equilibrium = (swingHigh + swingLow) / 2
premiumZone = swingHigh
discountZone = swingLow

// Plot de zones op de grafiek
plot(equilibrium, title="Equilibrium", color=color.blue, linewidth=2)
plot(premiumZone, title="Premium Zone (Resistance)", color=color.red, linewidth=1)
plot(discountZone, title="Discount Zone (Support)", color=color.green, linewidth=1)

// === Simple Moving Average om trendrichting te bepalen ===
smaLength = input.int(50, title="SMA Length")
sma = ta.sma(close, smaLength)
plot(sma, title="SMA", color=color.orange)

// === Entry- en Exitregels op basis van zones en trendrichting ===

// Koop- en verkoopsignalen
buySignal = close < equilibrium and close > discountZone and close > sma // Prijs in discount zone en boven SMA
sellSignal = close > equilibrium and close < premiumZone and close < sma // Prijs in premium zone en onder SMA

// Order Blocks (Eenvoudig: hoogste en laagste kaars binnen de laatste 20 kaarsen)
orderBlockLength = input.int(20, title="Order Block Length")
orderBlockHigh = ta.highest(high, orderBlockLength)
orderBlockLow = ta.lowest(low, orderBlockLength)

// Koop- en verkoopsignalen met order block bevestiging
buySignalOB = buySignal and close >= orderBlockLow // Koop in discount zone met ondersteuning van order block
sellSignalOB = sellSignal and close <= orderBlockHigh // Verkoop in premium zone met weerstand van order block

// === Uitvoeren van Trades ===
if (buySignalOB)
    strategy.entry("Buy", strategy.long)
    
if (sellSignalOB)
    strategy.entry("Sell", strategy.short)

// === Plots voor visuele feedback ===
plotshape(buySignalOB, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignalOB, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// === Liquiditeitsjachten aangeven ===
// Simpel: markeer recente swing highs en lows als liquiditeitszones
liquidityZoneHigh = ta.valuewhen(high == swingHigh, high, 0)
liquidityZoneLow = ta.valuewhen(low == swingLow, low, 0)

// Markeer liquiditeitszones
plot(liquidityZoneHigh, title="Liquidity Zone High", color=color.red, linewidth=1, style=plot.style_cross)
plot(liquidityZoneLow, title="Liquidity Zone Low", color=color.green, linewidth=1, style=plot.style_cross)


Связанные

Больше