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

모멘텀 라인 크로스오버 EMA 9 주식 MACD 전략

저자:차오장, 날짜: 2024-02-27 16:49:10
태그:

img

전반적인 설명

이 전략은 EMA 지표, 볼링거 밴드 지표 및 MACD 지표를 포괄적으로 활용합니다. 9 일 EMA 및 30 일 EMA의 황금 십자 및 죽음의 십자 기반에서 가격 분포 범위 및 추진력 지표와 결합하여 구매 및 판매 시기를 결정합니다.

전략 원칙

  1. 3일 EMA, 9일 EMA 및 30일 EMA를 계산합니다.

  2. 가격으로부터 20일 이내에 표준편차를 계산하고 표준편차의 1배와 2배의 볼링거 밴드를 그려보세요.

  3. 12일, 26일 MACD와 9일 신호선을 계산합니다.

  4. 9일 EMA가 30일 EMA를 초과하고 가격이 1x 표준편차 볼링거 밴드의 상한을 초과하면 구매 신호가 발송됩니다.

  5. 30일 EMA가 9일 EMA보다 낮아지고 가격이 1x 표준편차 볼링거 밴드의 하위 경계보다 낮으면 판매 신호가 발송됩니다.

이점 분석

이 전략은 이동 평균 지표와 동력 지표를 결합함으로써 시장 추세와 시기를 더 잘 파악할 수 있으며 다음과 같은 장점을 가지고 있습니다.

  1. EMA 지표는 시장 동향을 결정하기 위해 가격 변화에 신속하게 반응할 수 있으며 MACD 지표는 잘못된 파장을 방지하기 위해 모멘텀을 판단합니다.

  2. 볼링거 밴드 표준 오차 지표와 EMA의 조합은 구매 및 판매 시기를 더 정확하게 결정할 수 있습니다.

  3. 여러 지표의 조합은 서로를 보완 할 수 있습니다. 다른 지표는 하나의 돌파구로 판단을 확인할 수 있습니다.

위험 및 최적화 분석

이 전략은 또한 몇 가지 위험을 가지고 있습니다. 최적화를 위해 다음 점에 주의를 기울여:

  1. EMA 이동 평균의 조합은 조정되고 최적화 될 수 있습니다. 다른 주기가 추세를 더 잘 파악 할 수 있습니다.

  2. 볼링거 밴드의 매개 변수는 잘못된 신호를 필터링하기 위해 표준편차의 곱셈을 변경하여 최적화 할 수 있습니다.

  3. MACD 지표의 매개 변수 및 조합은 추진력을 판단하는 효과를 향상시키기 위해 최적화 될 수 있습니다.

요약

이 전략은 주요 트렌드를 결정하기 위해 EMA 지표를 통합하고, 동력이 상대적으로 큰 경우 구매 및 판매 지점을 정확하게 파악할 수 있는 볼링거 밴드 지표로 보완됩니다. MACD 지표는 트렌드 확인을 보완하고 잘못된 신호를 효과적으로 필터링할 수 있습니다. 매개 변수 최적화를 통해 이 전략의 효과를 더욱 향상시킬 수 있습니다.


/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("emabb_collab", shorttitle="emabb", overlay=true)

// Input parameters
ema3 = input(3, title="3 EMA")
ema9 = input(9, title="9 EMA")
ema30 = input(30, title="30 EMA")
macdShort = input(12, title="MACD Short")
macdLong = input(26, title="MACD Long")
macdSignal = input(9, title="MACD Signal")
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev1 = mult * ta.stdev(src, length)
upper1 = basis + dev1
lower1 = basis - dev1
dev2 = mult * 2 * ta.stdev(src, length)
upper2 = basis + dev2
lower2 = basis - dev2
plot(basis, "Basis", color=#FF6D00)
p1 = plot(upper1, "Upper1", color=#2962FF)
p2 = plot(lower1, "Lower1", color=#2962FF)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
plot(basis, "Basis", color=#FF6D00)
p3 = plot(upper2, "Upper2", color=#00FF8C)
p4 = plot(lower2, "Lower2", color=#00FF8C)
fill(p3, p4, title = "Background", color=color.rgb(0, 153, 140, 95))

// Calculate EMAs
ema3Value = ta.ema(close, ema3)
ema9Value = ta.ema(close, ema9)
ema30Value = ta.ema(close, ema30)


// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)


// Conditions for buy signal
buyCondition = ta.crossover(ema9Value, ema30Value)  and ta.stdev(close, 20) > ta.stdev(close, 20)[1]

//Conditions for sell signal
sellCondition = ta.crossover(ema30Value, ema9Value)  and ta.stdev(close, 20) < ta.stdev(close, 20)[1]

// Plot signals on the chart

plotshape(buyCondition, title='Buy Label', style=shape.triangleup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0))
plotshape(sellCondition, title='sell Label', style=shape.triangledown, location=location.abovebar, size=size.normal, text='sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0))

// Plot EMAs
plot(ema3Value, title="3 EMA", color=color.orange)
plot(ema9Value, title="9 EMA", color=color.purple)
plot(ema30Value, title="30 EMA", color=color.red)


if buyCondition
    strategy.entry('Long', strategy.long)
if sellCondition
    strategy.entry('Short', strategy.short)






더 많은