Геометрический метод торговли: рыночный код ромба, треугольника, круга

EMA RSI PATTERN
Дата создания: 2025-09-26 08:59:35 Последнее изменение: 2025-09-26 08:59:35
Копировать: 0 Количество просмотров: 180
2
Подписаться
319
Подписчики

Геометрический метод торговли: рыночный код ромба, треугольника, круга Геометрический метод торговли: рыночный код ромба, треугольника, круга

Что за магия в этой тактике?

Знаете ли вы? Рынок похож на гигантскую геометрическую игровую площадку! Эта стратегия упрощает сложные ценовые движения до трех симпатичных форм: алмазный алмаз - обратный сигнал, треугольник - продолжение тренда, а овал - фильтр колебаний. Это как надеть на рынок “геометрические очки”, чтобы мгновенно увидеть, что на самом деле означает цена!

Основная логика стратегии очень проста: быстро формируйте EMA, чтобы определить тенденцию, а затем, в зависимости от положения цены по отношению к облачной полосе, прикрепите различные “теги” к разным высоким и низким прорывам. Прорывы ниже облачной полосы - это алмазные обратные сигналы, а выше облачной полосы - треугольные продолжения, а сигналы с недостаточной степенью разделения EMA фильтруются кружком как “шум”.

Раскрытие трех основных сигнальных систем

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

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

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

Простой, грубый, но эффективный дизайн вентиляции

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

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

Применение в боевых условиях: кому подходит эта стратегия?

Лучший сценарийТренд-слежение и реверсионные сделки на средне- и краткосрочных периодах, особенно в условиях умеренной волатильности рынка. Стратегия автоматически корректирует размер позиции: реверсионный сигнал тестируется на 50% позиции, продолжение - на 100% позиции.

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

Помните, что лучшая стратегия - это не самая сложная, а та, которая лучше всего подходит для вашего стиля торговли!

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

//@version=5
strategy("💎🔺⚫ Diamond-Triangle-Circle Strategy", overlay=true)

// === INPUTS ===
ema_fast = input.int(10, "Fast EMA Length")
ema_slow = input.int(20, "Slow EMA Length")
min_ema_separation = input.float(0.1, "Min EMA Separation %", minval=0.01, maxval=1.0)
rsi_length = input.int(14, "RSI Length")
rsi_exit_level = input.int(70, "RSI Exit Level")

// === CALCULATIONS ===
ema_fast_val = ta.ema(close, ema_fast)
ema_slow_val = ta.ema(close, ema_slow)
rsi = ta.rsi(close, rsi_length)

// EMA Cloud and separation
cloud_bull = ema_fast_val > ema_slow_val
ema_separation_pct = math.abs(ema_fast_val - ema_slow_val) / close * 100
chop_filter = ema_separation_pct >= min_ema_separation

// Price position relative to cloud
price_above_cloud = close > math.max(ema_fast_val, ema_slow_val)
price_below_cloud = close < math.min(ema_fast_val, ema_slow_val)

// === HIGHER LOW DETECTION ===
lowPoint = ta.lowest(low, 3)
prevLowPoint = ta.lowest(low[3], 3)
isHigherLow = low == lowPoint and low > prevLowPoint
higherLowConfirmed = isHigherLow and close > open

// === LOWER HIGH DETECTION ===
highPoint = ta.highest(high, 3)
prevHighPoint = ta.highest(high[3], 3)
isLowerHigh = high == highPoint and high < prevHighPoint
lowerHighConfirmed = isLowerHigh and close < open

// === SIGNAL CLASSIFICATION ===
// Diamond Signal - Reversal (below cloud)
diamondBullish = higherLowConfirmed and price_below_cloud and chop_filter
diamondBearish = lowerHighConfirmed and price_above_cloud and chop_filter

// Triangle Signal - Continuation (above cloud)
triangleBullish = higherLowConfirmed and price_above_cloud and chop_filter
triangleBearish = lowerHighConfirmed and price_below_cloud and chop_filter

// Circle Signal - Chop (filtered out - display only)
chopBullish = higherLowConfirmed and not chop_filter
chopBearish = lowerHighConfirmed and not chop_filter

// === RSI EXIT LOGIC ===
rsi_was_above_70 = rsi[1] >= rsi_exit_level and rsi < rsi[1]
rsi_was_below_30 = rsi[1] <= (100 - rsi_exit_level) and rsi > rsi[1]

// === STOP LOSS LOGIC ===
var float long_stop = na
var float short_stop = na

if diamondBullish or triangleBullish
    long_stop := prevLowPoint
    
if diamondBearish or triangleBearish  
    short_stop := prevHighPoint

// === STRATEGY EXECUTION ===
// Long Entries
if diamondBullish
    strategy.entry("Diamond Long", strategy.long, qty=50, comment="💎 Reversal")
    
if triangleBullish
    strategy.entry("Triangle Long", strategy.long, qty=100, comment="🔺 Continuation")

// Short Entries    
if diamondBearish
    strategy.entry("Diamond Short", strategy.short, qty=50, comment="💎 Reversal")
    
if triangleBearish
    strategy.entry("Triangle Short", strategy.short, qty=100, comment="🔺 Continuation")

// === EXITS ===
// Long Exits
if strategy.position_size > 0
    if close <= long_stop
        strategy.close_all(comment="Stop Loss")
    else if rsi_was_above_70
        strategy.close_all(comment="RSI Exit")

// Short Exits        
if strategy.position_size < 0
    if close >= short_stop
        strategy.close_all(comment="Stop Loss")  
    else if rsi_was_below_30
        strategy.close_all(comment="RSI Exit")

// === VISUAL ELEMENTS ===
// EMA Cloud
ema1 = plot(ema_fast_val, "Fast EMA", color.new(color.blue, 60), linewidth=1)
ema2 = plot(ema_slow_val, "Slow EMA", color.new(color.blue, 60), linewidth=1)
fill(ema1, ema2, color=cloud_bull ? color.new(color.green, 85) : color.new(color.red, 85), title="EMA Cloud")

// Signal Shapes
plotshape(diamondBullish, "Diamond Long", shape.diamond, location.belowbar, 
         color.new(color.lime, 0), size=size.small, text="💎")
plotshape(diamondBearish, "Diamond Short", shape.diamond, location.abovebar,
         color.new(color.red, 0), size=size.small, text="💎")

plotshape(triangleBullish, "Triangle Long", shape.triangleup, location.belowbar, 
         color.new(color.green, 20), size=size.small, text="🔺")
plotshape(triangleBearish, "Triangle Short", shape.triangledown, location.abovebar,
         color.new(color.orange, 20), size=size.small, text="🔺")

plotshape(chopBullish, "Chop Long", shape.circle, location.belowbar, 
         color.new(color.gray, 50), size=size.tiny, text="⚫")
plotshape(chopBearish, "Chop Short", shape.circle, location.abovebar,
         color.new(color.gray, 50), size=size.tiny, text="⚫")

// Stop Loss Lines
plot(strategy.position_size > 0 ? long_stop : na, "Long Stop", color.red, linewidth=2)
plot(strategy.position_size < 0 ? short_stop : na, "Short Stop", color.red, linewidth=2)

// Background coloring for market conditions
bgcolor(not chop_filter ? color.new(color.yellow, 95) : na, title="Chop Zone")


// === ALERTS ===
alertcondition(diamondBullish, title="Diamond Long Signal", message="💎 REVERSAL LONG - {{ticker}} at {{close}}")
alertcondition(diamondBearish, title="Diamond Short Signal", message="💎 REVERSAL SHORT - {{ticker}} at {{close}}")
alertcondition(triangleBullish, title="Triangle Long Signal", message="🔺 CONTINUATION LONG - {{ticker}} at {{close}}")
alertcondition(triangleBearish, title="Triangle Short Signal", message="🔺 CONTINUATION SHORT - {{ticker}} at {{close}}")
alertcondition(strategy.position_size == 0 and strategy.position_size[1] != 0, title="Position Closed", message="💰 POSITION CLOSED - {{ticker}} at {{close}}")