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

EMA, SMA, CCI, ATR, 트렌드 매직 지표 자동 거래 시스템과 완벽한 순서 이동 평균 전략

저자:차오장, 날짜: 2024-09-26 15:52:31
태그:EMASMACCIATR

img

전반적인 설명

이 전략은 트렌드 매직 지표의 색상 변화를 사용하여 트렌드 매직 지표의 완벽한 순서를 결합하여 시장 추세를 포착합니다. 이 전략은 CCI 및 ATR 계산을 기반으로 한 트렌드 매직 지표와 함께 세 개의 이동 평균 (EMA45, SMA90, SMA180) 을 사용합니다. 전략의 핵심은 트렌드 매직 지표의 색상 변화를 사용하여 트렌드 매직 지표를 생성하는 동시에 이동 평균의 완벽한 순서를 식별하는 데 있습니다. 이 접근법은 잘못된 신호를 줄이고 강한 트렌드가 형성 될 때만 거래를하는 것을 목표로합니다.

전략 원칙

이 전략은 다음의 핵심 요소에 기반합니다.

  1. 이동평균의 완벽한 순서: EMA45, SMA90, SMA180을 특정 순서로 정렬할 때 (승향: EMA45 > SMA90 > SMA180; 하락: EMA45 < SMA90 < SMA180) 를 사용하면 확립된 트렌드의 강력한 신호로 간주됩니다.

  2. 트렌드 매직 인디케이터: CCI (상품 채널 지수) 와 ATR (평균 진실 범위) 를 기반으로 한 사용자 지정 인디케이터입니다. 색상의 변화를 통해 잠재적 인 트렌드 반전을 나타냅니다.

  3. 진입 조건: 트레이딩 신호는 이동 평균의 완벽한 순서와 트렌드 매직 지표의 색상 변경이 모두 만족될 때만 생성됩니다. 이것은 강력한 트렌드가 형성 될 때만 거래를 보장합니다.

  4. 리스크 관리: 전략은 리스크/보상 비율에 기초한 스톱 로스 및 테크 노프트 타겟을 사용합니다. 스톱 로스는 입시시 스마90 수준으로 설정되며, 테크 노프트는 리스크의 1.5배로 설정됩니다.

전략적 장점

  1. 트렌드 추적: 여러 지표를 결합함으로써 전략은 중장기 트렌드를 효과적으로 파악하여 잘못된 신호를 줄입니다.

  2. 리스크 관리: 고정된 스톱 로스 및 리스크 보상 기반의 수익 취득 목표를 포함한 내장된 리스크 관리 메커니즘은 각 거래의 리스크를 제어하는 데 도움이 됩니다.

  3. 유연성: 이 전략은 CCI 기간, ATR 곱셈자 및 이동 평균 기간과 같은 다양한 매개 변수를 사용자들의 다른 시장 조건과 개인적인 취향에 적응하도록 조정할 수 있습니다.

  4. 시각화: 전략은 트렌드 매직 지표와 이동 평균을 차트에 표시하여 거래자가 시장 추세를 시각적으로 분석 할 수 있습니다.

전략 위험

  1. 지연: 이동 평균 및 다른 지연 지표의 사용으로 인해 전략은 트렌드의 시작에서 몇 가지 기회를 놓칠 수 있습니다.

  2. 기시장: 옆으로 또는 기시장에서 전략은 종종 잘못된 신호를 생성하여 과잉 거래로 이어질 수 있습니다.

  3. 고정 스톱 로스: 고정 SMA90을 스톱 로스로 사용하는 것은 어떤 상황에서는 너무 느슨해 잠재적인 손실을 증가시킬 수 있습니다.

  4. 매개 변수 민감성: 전략의 성능은 매개 변수 설정에 민감할 수 있으므로 신중한 최적화와 백테스팅이 필요합니다.

전략 최적화 방향

  1. 동적 스톱 로스: 가격 이동에 따라 스톱 로스 수준을 조정하기 위해 후속 스톱을 구현하여 이익을 더 잘 보호하는 것을 고려하십시오.

  2. 시장 상태 필터: 다른 시장 조건에서 전략 행동을 조정하기 위해 변동성 또는 트렌드 강도 필터를 도입합니다.

  3. 다중 시간 프레임 분석: 신호 신뢰성을 향상시키고 잘못된 신호를 줄이기 위해 여러 시간 프레임 분석을 포함합니다.

  4. 양량 분석: 양량 분석 또는 다른 양적 지표를 추가하여 트렌드 확인 및 역전 식별을 향상시킵니다.

  5. 기계 학습 최적화: 변화하는 시장 조건에 적응하기 위해 매개 변수를 동적으로 조정하기 위해 기계 학습 알고리즘을 사용합니다.

요약

트렌드 매직 지표와 이동 평균의 완벽한 순서를 결합한 이 자동화된 거래 전략은 트렌드 추적에 대한 유망한 접근 방식을 보여준다. 여러 기술적 지표를 활용함으로써 전략은 내장된 위험 관리 메커니즘을 통해 위험을 제어하면서 강력한 시장 추세를 포착하는 것을 목표로 한다. 지속적인 최적화와 적응적 조정으로 지연 및 매개 변수 민감성 등의 일부 고유 한 한계점이 있음에도 불구하고, 이 전략은 효과적인 거래 도구가 될 가능성이 있다. 명확한 중장기 트렌드가 있는 시장에서 특히 잘 수행할 수 있다. 그러나, 거래자는 어떤 전략도 완벽하지 않으며, 지속적인 모니터링, 뒷받침 및 최적화가 장기적인 테스트의 성공의 열쇠라는 것을 기억해야 한다.


/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("Trend Magic with EMA, SMA, and Auto-Trading", shorttitle="TM_Trading", overlay=true, format=format.price, precision=2)

// Inputs
period = input.int(21, "CCI period")
coeff = input.float(1.0, "ATR Multiplier")
AP = input.int(7, "ATR Period")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")  // Risk/Reward Ratio for take profit

// Calculations
ATR = ta.sma(ta.tr, AP)
src = input(close)
upT = low - ATR * coeff
downT = high + ATR * coeff
var MagicTrend = 0.0
MagicTrend := ta.cci(src, period) >= 0 ? (upT < nz(MagicTrend[1]) ? nz(MagicTrend[1]) : upT) : (downT > nz(MagicTrend[1]) ? nz(MagicTrend[1]) : downT)

// Define colors for Trend Magic
color1 = ta.cci(src, period) >= 0 ? color.rgb(0, 34, 252) : color.rgb(252, 4, 0)
isBlue = ta.cci(src, period) >= 0
isRed = ta.cci(src, period) < 0

// Convert bool to float (1 for true, 0 for false)
isBlueFloat = isBlue ? 1 : 0
isRedFloat = isRed ? 1 : 0

// Moving Averages
ema45 = ta.ema(close, 45)
sma90 = ta.sma(close, 90)
sma180 = ta.sma(close, 180)

// Plot Trend Magic
plot(MagicTrend, color=color1, linewidth=3)

// Alerts
alertcondition(ta.cross(close, MagicTrend), title="Cross Alert", message="Price - MagicTrend Crossing!")
alertcondition(ta.crossover(low, MagicTrend), title="CrossOver Alarm", message="BUY SIGNAL!")
alertcondition(ta.crossunder(high, MagicTrend), title="CrossUnder Alarm", message="SELL SIGNAL!")

// Perfect Order conditions
bullishPerfectOrder = ema45 > sma90 and sma90 > sma180  // Bullish Perfect Order
bearishPerfectOrder = ema45 < sma90 and sma90 < sma180  // Bearish Perfect Order

// Trend Magic color change detection
trendMagicTurnedBlue = ta.crossover(isBlueFloat, isRedFloat)  // Red to Blue crossover (For long entry)
trendMagicTurnedRed = ta.crossunder(isBlueFloat, isRedFloat)  // Blue to Red crossover (For short entry)

// Variables to store SMA90 at the entry
var float longSma90 = na
var float shortSma90 = na

// Trading logic based on Perfect Order and color change
longCondition = bullishPerfectOrder and trendMagicTurnedBlue  // Buy when Perfect Order is bullish and Trend Magic turns red to blue
shortCondition = bearishPerfectOrder and trendMagicTurnedRed  // Sell when Perfect Order is bearish and Trend Magic turns blue to red

// Strategy Entry
if (longCondition)
    strategy.entry("Buy", strategy.long)
    longSma90 := sma90  // Store SMA90 at entry for long position

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    shortSma90 := sma90  // Store SMA90 at entry for short position

// Stop-Loss and Take-Profit calculations
// For Long Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (longCondition and not na(longSma90))
    longStopLoss = longSma90  // Use SMA90 at the time of entry
    longRisk = close - longSma90  // Calculate risk
    longTakeProfit = close + longRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// For Short Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (shortCondition and not na(shortSma90))
    shortStopLoss = shortSma90  // Use SMA90 at the time of entry
    shortRisk = shortSma90 - close  // Calculate risk
    shortTakeProfit = close - shortRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Averages
plot(ema45, color=color.green, title="EMA 45")
plot(sma90, color=color.blue, title="SMA 90")
plot(sma180, color=color.red, title="SMA 180")


관련

더 많은