평활화된 이동 평균 교차 전략


생성 날짜: 2023-11-24 13:49:45 마지막으로 수정됨: 2023-11-24 13:49:45
복사: 0 클릭수: 621
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

평활화된 이동 평균 교차 전략

개요

이 전략은 평평한 이동 평균의 교차를 기반으로 한 거래 전략이다. 그것은 50 주기의 지수 이동 평균 ((EMA) 을 주요 기술 지표로 사용하며, 가격 라인이 아래에서 EMA를 통과 할 때 더 많이 하고, 위에서 아래로 EMA를 통과 할 때 공백을 뚫고 수익을 얻습니다.

전략 원칙

핵심 아이디어는 50주기의 EMA를 가격 트렌드를 판단하는 도구로 사용하는 것이다. EMA 선은 가격을 평형화하고, 단기간의 시장 소음을 제거하여, 더 장기간의 가격 트렌드 방향을 반영한다. 가격 선이 아래에서 EMA 선을 통과하면 가격이 상승하기 시작하면, 거래의 시간이다.

이 전략의 주요 내용은 다음과 같습니다.

  1. 입력 변수: EMA의 주기 길이는 50 이다.

  2. 계산 지표: ta.ema 함수를 호출하여 50주기의 EMA를 계산한다.

  3. 입시 조건: 가격이 상단 EMA 라인을 통과하면 멀티 신호가 생성되고, 가격이 하단 EMA 라인을 통과하면 공백 신호가 생성된다.

  4. 출구 조건: 출구 시 기록된 최고 가격/최저 가격, 가격이 이후 그 가격을 넘어 출구한다.

  5. 시각화: EMA 라인을 그리고, 공백이 많은 입점과 출구점을 표시한다.

이 방법을 통해 우리는 순차적으로 트렌드 방향에 따라 거래할 수 있고, 가격이 변하기 시작하면 적시에 손실을 멈추고 탈퇴할 수 있다.

전략적 강점 분석

다른 지표와 전략에 비해 EMA 교차 전략은 몇 가지 중요한 장점이 있습니다.

간단하고 직관적이죠.。 핵심 지표는 EMA 라인이 하나만 있어 이해하기 쉽고 조작이 쉬워。 지표의 복잡성이 생기지 않는다。

유연한 조정EMA의 주기의 길이는 매우 유연하게 조정할 수 있으며, 다른 시장과 품종에 적용됩니다.

트렌드를 잡으세요.EMA는 중·장기 가격 동향의 변화를 포착하기 위해 가격 데이터를 효율적으로 평형화 할 수 있습니다.

통제를 철회한다가격의 새로운 고/저점을 이용하여 손실을 막고, 회수율을 잘 조절할 수 있다.

위험과 해결책

이 전략에는 다음과 같은 위험도 있습니다.

트렌드를 놓친 것가격의 급격한 변동이 있을 때, EMA 라인은 전환점을 적시에 잡지 못하여 트렌드 전환의 시간을 놓칠 수 있습니다. 부린 밴드와 같은 다른 지표와 함께 검증 할 수 있습니다.

너무 일찍 중단스톱포인트는 직접적으로 신호가 발생했을 때 가장 높은 가격/최저 가격으로, 비교적 쉽게 도달할 수 있으며, 너무 일찍 스톱포인트를 할 수 있다. 이동 스톱포인트, 스톱포인트 범위를 넓히는 등의 방법을 고려할 수 있다.

변수 조정EMA 주기가 적절하지 않으면 여러 번의 잘못된 신호가 발생할 수 있다. 다른 주기와 시장의 변동률에 따라 EMA 매개 변수를 조정해야 한다.

전략 최적화 방향

이 전략에는 더 많은 최적화 가능성이 있습니다:

  1. 브린띠 지표 검증 신호와 결합하여, EMA 라인이 오류 신호를 생성하는 것을 피한다.

  2. 손해 제도를 개선하고, 이동식 손해제도를 적용하고, 변동식 손해제도를 검토하는 등의 방법을 사용하여, 조기 손해제도를 피한다.

  3. 시장과 거래 품종에 따라 EMA의 매개 변수를 최적화하여 가장 적합한 주기를 찾습니다.

  4. 자동 변수 최적화 모듈을 추가하여 전략 자체로 최적의 변수 조합을 찾을 수 있습니다.

요약하다

이 전략은 EMA 지표에 기초하여 가격 트렌드 방향을 판단하고, 금 포크를 더 많이 하고, 사다리 포크를 더 적게 한다. 이 전략은 간단하고 쉽게 작동하며, 가격 트렌드를 잡기 위해 순차적으로 작동하고, 손실을 제어 할 수 있다. 이 전략은 더 많은 지표 필터링 신호와 개선된 손실 차단 장치 등을 결합하여 더욱 최적화 될 수 있다.

전략 소스 코드
/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA 50 Crossover Strategy", shorttitle="EMA 50 xover", overlay=true)

// Input for EMA length
emaLength = input(50, title="EMA Length")

// Calculate EMA 50
ema50 = ta.ema(close, emaLength)

// Define conditions for long entry
longCondition = ta.crossover(close, ema50)

// Define conditions for short entry
shortCondition = ta.crossunder(close, ema50)

// Calculate the high of the signal candle for long entry
var float longSignalHigh = na
if (longCondition)
    longSignalHigh := high

// Calculate the low of the signal candle for short entry
var float shortSignalLow = na
if (shortCondition)
    shortSignalLow := low

// Long entry
plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Short entry
plotshape(series=shortCondition, title="Short Entry Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Exit conditions
longExitCondition = ta.crossunder(close, longSignalHigh)
shortExitCondition = ta.crossover(close, shortSignalLow)

// Plot exit signals
plotshape(series=longExitCondition, title="Long Exit Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=shortExitCondition, title="Short Exit Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Strategy entry and exit logic
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=longExitCondition)
strategy.close("Short", when=shortExitCondition)

// Plot EMA 50
plot(ema50, title="EMA 50", color=color.blue)