금 거래의 EMA 출출과 함께 파라볼릭 SAR 및 CCI 전략

저자:차오장, 날짜: 2023-12-07 17:04:54
태그:

img

전반적인 설명

이것은 Parabolic SAR, CCI 및 EMA 기술 지표의 조합에 기반한 M5 시간 프레임에서 금 거래 전략입니다. 시장 인하 기간 동안 거래 기회를 포착하기 위해 금의 트렌드 방향과 과잉 구매 / 과잉 판매 상황을 식별하기 위해 세 가지 다른 지표를 사용합니다.

전략 논리

  1. 파라볼리 SAR는 금의 트렌드 방향과 잠재적 인 반전 지점을 결정하는 데 사용됩니다. SAR 점들이 가격 아래로 떨어지기 시작하면 상승 추세를 나타냅니다. SAR 점들이 가격 이상으로 상승하기 시작하면 하락 추세를 나타냅니다.

  2. CCI는 시장의 과잉 구매/ 과잉 판매 상황을 나타냅니다. CCI 100 이상은 상승 추세를 나타내고 -100 이하의 CCI는 하락 추세를 나타냅니다.

  3. EMA 크로스오버는 가격의 단기 전환점을 나타냅니다. 빠른 라인이 상승할 때 상승 추세를 제안하고, 하락 추세를 제안합니다.

  4. 진입 규칙: SAR가 상승 방향으로 5분 EMA를 넘고 CCI가 100보다 높을 때 장거리; SAR가 하락 방향으로 5분 EMA를 넘고 CCI가 -100 미만일 때 단기.

  5. 출구 규칙: 출구 가격 + 7 틱에서 수익을 취하고, 1분 EMA 라인에 Stop Loss를 설정합니다.

장점

  1. 3가지 지표를 활용하여 트렌드와 주요 지원/저항 수준을 파악하여 수익성을 향상시킵니다.

  2. CCI는 가짜 브레이크를 효율적으로 필터합니다. 트렌드 방향과 결합된 SAR 반전은 통합 중에 불필요한 항목을 피합니다.

  3. EMA와 SAR의 크로스오버는 일시적 인 인하 기간 동안 낮은 위험 엔트리를 제공합니다.

  4. 금이나 작은 계좌와 같은 변동적인 상품에 적합한 최적화된 매개 변수

위험성

  1. 주로 블랙 스완 이벤트에서 실패할 수 있는 기술적 지표에 의존합니다.

  2. 유동적인 상품, EMA 스톱 로즈가 큰 손실로 이어지는 스파이크로 치러질 가능성이 높습니다.

  3. CCI와 SAR로부터 불필요한 손실을 초래할 수 있는 잠재적인 잘못된 신호.

  4. 휘발성 이동 중 시스템 장애는 효과적인 스톱 손실 실행을 막을 수 있습니다.

더 나은 기회

  1. 금의 특성에 대한 CCI를 최적화하기 위해 다른 매개 변수 조합을 테스트합니다.

  2. 촛불 패턴, 볼링거 밴드 같은 더 많은 지표를 포함하여 안정성을 향상시킵니다.

  3. 변화하는 시장에 적응하는 SAR 매개 변수의 동적 최적화를 위해 기계 학습을 사용하십시오.

  4. 다른 스톱 손실 메커니즘을 테스트하십시오. 예를 들어, 타격 확률을 줄이기 위해 후속 스톱.

  5. 포지션 사이징 모델을 최적화하십시오. 예를 들어, 단일 거래 손실 금액을 제어하기 위해 고정 분수, 동적 포지션 사이징.

결론

전체적으로 트렌드, 주요 지원/저항 수준 및 리트랙시션 중 저위험 엔트리를 위한 과잉 구매/ 과잉 판매 구역을 식별하기 위한 여러 지표를 결합한 안정적인 금 거래 전략이다. 최적화된 매개 변수는 금의 높은 변동성을 활용하는 소액 계정 거래를 가능하게 한다. 적절한 위험 관리로 해결할 수 있는 위험을 가지고 있다. 향상으로 안정성과 수익성을 더욱 향상시킬 수 있는 상당한 잠재력을 가지고 있다.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR and CCI Strategy with EMA Exit", overlay=true)

// Parameters
length = input(50, title="EMA Length")
length_21 = input(21, title="EMA Length 21")
acc = input(0.02, title="Acceleration Factor")
max_acc = input(0.2, title="Max Acceleration Factor")
takeProfitPoints = input(7, title="Take Profit Points")

// Variables
var float ep = 0.0
var float sar = 0.0
var float af = acc

// Calculating 5-minute EMA based on 1-minute data
var float sum_close = na
var float ema_5min = na
if (bar_index % 5 == 0)
    sum_close := 0.0
    for i = 0 to 4
        sum_close := sum_close + close[i]
    ema_5min := ema(sum_close / 5, length_21)

// Calculating 1-minute EMA
ema1 = ema(close, length)
cci = cci(close, 45)

// Custom Parabolic SAR Calculation
trendUp = close > ema1
trendDown = close < ema1

var float prev_sar = na
prev_sar := na(sar[1]) ? low[1] : sar[1]

if trendUp
    ep := high > ep ? high : ep
    af := min(af + acc, max_acc)
    sar := min(prev_sar, prev_sar + af * (ep - prev_sar))

if trendDown
    ep := low < ep ? low : ep
    af := min(af + acc, max_acc)
    sar := max(prev_sar, prev_sar + af * (ep - prev_sar))

// Entry Conditions
longCondition = sar > ema1 and ema1 > ema_5min and cci > 100
shortCondition = sar < ema1 and ema1 < ema_5min and cci < -100

// Exit Conditions
longTakeProfit = strategy.position_avg_price + takeProfitPoints * syminfo.mintick
longStopLoss = ema1
shortTakeProfit = strategy.position_avg_price - takeProfitPoints * syminfo.mintick
shortStopLoss = ema1

// Plotting Entry Points
plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy Execution
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if strategy.position_size > 0
    strategy.exit("Take Profit/Stop Loss", "Long", limit=longTakeProfit, stop=longStopLoss)

if strategy.position_size < 0
    strategy.exit("Take Profit/Stop Loss", "Short", limit=shortTakeProfit, stop=shortStopLoss)


더 많은