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

거래 전략에 따른 이중 EMA 스토카스틱 트렌드

저자:차오장, 날짜: 2024-12-13 10:48:46
태그:EMASMARSK

img

전반적인 설명

이 전략은 이중 EMA와 스토카스틱 지표에 기반한 트렌드를 따르는 거래 시스템이다. 이 접근 방식은 신호 신뢰성 및 각 거래의 효과적인 위험 보상 관리를 보장합니다. 이 접근 방식은 이중 EMA와 스토카스틱 지표에 기반한 트렌드 추적 시스템입니다. 이 전략은 이중 EMA와 스토카스틱 지표에 기반한 트렌드 추적 시스템입니다. 이 전략은 두 개의 EMA와 스토카스틱 지표에 기반한 트렌드 추적 시스템입니다. 이 전략은 스토카스틱 지표를 사용하여 과소 구매 / 과소 판매 영역에서 크로스 오버 신호를 캡처하는 동안 시장 추세를 결정하기위한 이동 평균을 결합합니다. 이 접근 방식은 각 거래에 대한 신호 신뢰성 및 효과적인 위험 보상 관리를 보장합니다.

전략 원칙

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

  1. 시장 트렌드 방향을 결정하기 위해 50 및 150 기간 EMA를 사용합니다.
  2. 과잉 구매/ 과잉 판매 영역을 식별하기 위해 스토카스틱 지표 (14,3,3) 를 사용합니다.
  3. 트렌드 방향으로 스토카스틱 크로스오버 신호를 찾습니다.
  4. 최근 가격 동작에 기초한 동적 스톱 로스 설정
  5. 이윤수익 수준에 1: 2의 위험/이익 비율을 사용한다

구매 조건은 다음과 같습니다.

  • 50 및 150 EMA 이상 폐쇄 가격
  • 150 EMA 이상 50 EMA
  • 스토카스틱 K 값은 30 이하이고 K 선은 D 선 위에 넘습니다.

판매 조건은 반대입니다.

  • 50 및 150 EMA 이하의 폐쇄 가격
  • 50 EMA 150 EMA 이하
  • 70 이상의 스토카스틱 K 값과 D 직선 아래의 K 직선이 교차합니다.

전략적 장점

  1. 다중 확인 메커니즘은 신뢰성을 향상시킵니다.
  • EMA 시스템을 통한 트렌드 확인
  • 스토카스틱을 이용한 잘못된 신호 필터링
  • 신호 생성에 필요한 여러 조건
  1. 포괄적 인 위험 관리 시스템
  • 최근 지지/저항을 기반으로 한 동적 스톱 로스
  • 고정된 위험/이익 비율은 예상 수익을 최적화합니다.
  • 트렌드 확인은 잘못된 파업 위험을 줄여줍니다.
  1. 높은 적응력
  • 여러 시간 프레임에 적용
  • 시장 특성에 맞게 조정 가능한 매개 변수
  • 높은 변동성 시장에 적합합니다.

전략 위험

  1. 다양한 시장에서 낮은 성과
  • 잘못된 신호로 이어지는 빈번한 EMA 교차
  • 명확한 트렌드 기간에만 권장됩니다.
  • 트렌드 필터로 개선할 수 있습니다.
  1. 스톱 로스 투입 위험
  • 너무 단단하면 자주 멈출 수 있습니다.
  • 너무 느슨하면 큰 손실이 발생할 수 있습니다.
  • 시장 변동성에 기초한 필요 조정
  1. 지연 위험
  • EMA 시스템은 내재적인 지연을 가지고 있습니다.
  • 트렌드 시작 지점을 놓칠 수 있습니다.
  • 출입 시기는 신중 한 고려 를 필요로 한다

전략 최적화 방향

  1. 트렌드 강도 필터링 추가
  • 트렌드 강도를 나타내는 ADX 지표를 포함
  • 최소 트렌드 강도 문턱을 설정
  • 약한 트렌드에 거래하는 것을 피하십시오
  1. 스토카스틱 매개 변수를 최적화
  • 시장 특성에 따라 매개 변수를 조정
  • 적응적인 매개 변수를 고려
  • 확인을 위한 추가 기술 지표 추가
  1. 스톱 로스/프로프트 취득 메커니즘 개선
  • 후속 정차를 고려하십시오.
  • 변동성 기반의 동적 조정
  • 리스크/보상 비율을 최적화

요약

이 전략 시스템은 트렌드 추종과 모멘텀 트레이딩을 결합한 완전한 전략 시스템이다. EMA 시스템과 스토카스틱 지표의 조합을 통해 적절한 가격 수준에 진입하면서 거래가 주요 트렌드에 맞춰질 수 있도록 보장한다. 또한 전략에는 역동적 스톱 로스 및 고정된 리스크 리워드 비율을 사용하여 위험을 제어하는 포괄적인 리스크 관리 메커니즘이 포함되어 있다. 일부 내재적 한계들이 있지만 제안된 최적화로 전략의 전반적인 성능을 더욱 향상시킬 수 있다. 실제 적용에서는 트레이더들이 특정 시장 특성과 자신의 리스크 선호도에 따라 매개 변수를 조정하는 것이 좋습니다.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © quadawosanya

//@version=5
//indicator("My script")
//@version=5
strategy("EMA-Stochastic Strategy", overlay=true)

// EMA settings
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)

// Stochastic settings
kLength = 14
dLength = 3
smoothK = 3
stochK = ta.sma(ta.stoch(close, high, low, kLength), smoothK)
stochD = ta.sma(stochK, dLength)

// Parameters for Stop Loss and Take Profit
var float stopLossLevel = na
var float takeProfitLevel = na

// Buy condition
buySignal = (close > ema50 and close > ema150) and (ema50 > ema150) and (stochK < 30 and ta.crossover(stochK, stochD))

// Sell condition
sellSignal = (close < ema50 and close < ema150) and (ema50 < ema150) and (stochK > 70 and ta.crossunder(stochK, stochD))

// Previous low for Stop Loss for Buy
lowBeforeBuy = ta.lowest(low, 5)

// Previous high for Stop Loss for Sell
highBeforeSell = ta.highest(high, 5)

// Entry and exit logic
if (buySignal)
    stopLossLevel := lowBeforeBuy
    risk = close - stopLossLevel
    takeProfitLevel := close + 2 * risk
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=stopLossLevel, limit=takeProfitLevel)

if (sellSignal)
    stopLossLevel := highBeforeSell
    risk = stopLossLevel - close
    takeProfitLevel := close - 2 * risk
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=stopLossLevel, limit=takeProfitLevel)

// Plotting EMAs
plot(ema50, color=color.blue, title="50 EMA")
plot(ema150, color=color.red, title="150 EMA")

// Visualize Buy and Sell signals
plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Visualize Stop Loss and Take Profit levels
plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss")
plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit")


plot(close)


관련

더 많은