리소스 로딩... 로딩...

동적 ATR 트렌드 지원 브레이크에 기반한 전략을 따릅니다.

저자:차오장, 날짜: 2024-12-12 17:26:00
태그:ATREMASMC

img

전반적인 설명

이 전략은 EMA 시스템, ATR 변동성 지표 및 스마트 머니 콘셉트 (SMC) 를 통합하여 시장 트렌드를 포착합니다. 역동적인 포지션 사이즈링 및 스톱 로스/테이크 노프프 배치를 통해 효과적인 리스크 관리를 달성합니다.

전략 원칙

이 전략은 몇 가지 핵심 요소에 기반합니다.

  1. 시장 트렌드 방향을 확인하기 위해 50 및 200 기간 EMA 시스템을 사용합니다.
  2. ATR 지표를 사용하여 스톱 로스 및 수익 목표를 동적으로 조정합니다.
  3. 최적의 입구점을 찾기 위해 주문 블록과 불균형 구역을 분석합니다.
  4. 계정 리스크 비율을 기준으로 자동으로 포지션 크기를 계산합니다.
  5. 마지막 20개의 촛불의 가격 범위를 관찰함으로써 시장 통합을 결정합니다.

전략적 장점

  1. 동적 계산을 통한 종합적인 위험 관리
  2. 통합 시장을 피하는 신뢰할 수 있는 트렌드 식별 시스템
  3. 적당한 스톱 로스 및 리프트 취득 설정과 1: 3 리스크/리워드 비율
  4. 다른 시장 조건에 잘 적응합니다.
  5. 유지 및 최적화하기 쉬운 명확한 코드 구조

전략 위험

  1. EMA 지표는 고유 한 지연을 가지고 있으며 입점 지점을 지연시킬 수 있습니다.
  2. 매우 변동적인 시장에서 잘못된 신호를 생성할 수 있습니다.
  3. 전략은 추세의 지속에 달려 있으며, 다양한 시장에서 낮은 성과를 낼 수 있습니다.
  4. 넓은 스톱 로스 투자가 특정 상황에서 더 큰 손실을 초래할 수 있습니다.

최적화 방향

  1. 트렌드 식별을 개선하기 위해 부피 가격 관계 분석을 포함
  2. 입시 시기를 최적화하기 위해 시장 정서 지표를 추가합니다.
  3. 시스템 안정성을 높이기 위해 여러 시간 프레임 분석을 고려
  4. 주문 블록 및 불균형 구역 식별 기준을 정제합니다.
  5. 스톱 로스 방법을 최적화하고, 트레일링 스톱을 적용하는 것을 고려하십시오.

요약

이 전략은 적절한 리스크 관리 및 여러 신호 확인을 통해 거래 안정성을 달성하는 포괄적인 트렌드 다음 시스템입니다. 신호의 약간의 지연에도 불구하고 전반적으로 신뢰할 수있는 거래 시스템을 나타냅니다. 라이브 구현 전에 철저한 백테스팅을 수행하고 특정 거래 도구 및 시장 조건에 따라 매개 변수를 최적화하는 것이 좋습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// TradingView Pine Script strategy for Smart Money Concept (SMC)
//@version=5
strategy("Smart Money Concept Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=100)

// === Input Parameters ===
input_risk_percentage = input.float(1, title="Risk Percentage", step=0.1)
input_atr_length = input.int(14, title="ATR Length")
input_ema_short = input.int(50, title="EMA Short")
input_ema_long = input.int(200, title="EMA Long")

// === Calculations ===
atr = ta.atr(input_atr_length)
ema_short = ta.ema(close, input_ema_short)
ema_long = ta.ema(close, input_ema_long)

// === Utility Functions ===
// Identify Order Blocks
is_order_block(price, direction) =>
    ((high[1] > high[2] and low[1] > low[2] and direction == 1) or (high[1] < high[2] and low[1] < low[2] and direction == -1))

// Identify Imbalance Zones
is_imbalance() =>
    range_high = high[1]
    range_low = low[1]
    range_high > close and range_low < close

// Calculate Lot Size Based on Risk
calculate_lot_size(stop_loss_points, account_balance) =>
    risk_amount = account_balance * (input_risk_percentage / 100)
    lot_size = risk_amount / (stop_loss_points * syminfo.pointvalue)
    lot_size

// Determine if Market is Consolidating
is_consolidating() =>
    (ta.highest(high, 20) - ta.lowest(low, 20)) / atr < 2

// === Visual Enhancements ===
// Plot Order Blocks
// if is_order_block(close, 1)
//     line.new(x1=bar_index[1], y1=low[1], x2=bar_index, y2=low[1], color=color.green, width=2, extend=extend.right)
// if is_order_block(close, -1)
//     line.new(x1=bar_index[1], y1=high[1], x2=bar_index, y2=high[1], color=color.red, width=2, extend=extend.right)

// Highlight Imbalance Zones
// if is_imbalance()
//     box.new(left=bar_index[1], top=high[1], right=bar_index, bottom=low[1], bgcolor=color.new(color.orange, 80))

// === Logic for Trend Confirmation ===
is_bullish_trend = ema_short > ema_long
is_bearish_trend = ema_short < ema_long

// === Entry Logic ===
account_balance = strategy.equity
if not is_consolidating()
    if is_bullish_trend
        stop_loss = close - atr * 2
        take_profit = close + (math.abs(close - (close - atr * 2)) * 3)
        stop_loss_points = math.abs(close - stop_loss) / syminfo.pointvalue
        lot_size = calculate_lot_size(stop_loss_points, account_balance)
        strategy.entry("Buy", strategy.long, qty=lot_size)
        strategy.exit("TP/SL", "Buy", stop=stop_loss, limit=take_profit)

    if is_bearish_trend
        stop_loss = close + atr * 2
        take_profit = close - (math.abs(close - (close + atr * 2)) * 3)
        stop_loss_points = math.abs(close - stop_loss) / syminfo.pointvalue
        lot_size = calculate_lot_size(stop_loss_points, account_balance)
        strategy.entry("Sell", strategy.short, qty=lot_size)
        strategy.exit("TP/SL", "Sell", stop=stop_loss, limit=take_profit)

// === Plotting Indicators ===
plot(ema_short, color=color.blue, title="EMA 50")
plot(ema_long, color=color.orange, title="EMA 200")
plotshape(series=is_bullish_trend and not is_consolidating(), style=shape.triangleup, location=location.belowbar, color=color.green, text="Buy")
plotshape(series=is_bearish_trend and not is_consolidating(), style=shape.triangledown, location=location.abovebar, color=color.red, text="Sell")


관련

더 많은