
이 전략은 EMA 평균선 지표, 볼링거 밴드 지표, MACD 지표를 통합하여 EMA 9 평균선과 30 평균선의 금 포크 사다리 기반을 달성하여 가격 분포 범위와 동력 지표와 결합하여 매매 시점을 판단합니다.
3일 EMA, 9일 EMA, 30일 EMA를 계산한다.
20 일간 가격의 표준 차이를 계산하고 1배와 2배 표준 차이의 범위를 그리는 볼린저 밴드.
12일, 26일 MACD와 9일 신호선을 계산한다.
9일 EMA가 30일 EMA를 통과하고 가격이 표준 차이의 1배 이상인 경우 구매 신호를 발산한다.
30일 EMA 아래에서 9일 EMA를 통과하고 가격이 표준 차이의 1배 이하인 Bollinger Bands 하위 한계에 있을 때, 판매 신호를 낸다.
이 전략은 평형 지표와 동력 지표를 결합하여 시장의 추세와 시기를 더 잘 파악할 수 있으며 다음과 같은 장점이 있습니다.
EMA 지표는 가격 변화에 빠르게 반응하여 시장의 추세를 판단하고, MACD 지표는 가짜 돌파구를 방지하기 위해 판단력을 발휘한다.
Bollinger Bands 표준 격차 지표와 EMA를 결합하면 매매 시점을 더 정확하게 판단할 수 있다.
여러 가지 지표의 조합이 서로 보완할 수 있다. 하나의 돌파구에서, 다른 지표는 판단을 검증할 수 있다.
이 전략에는 몇 가지 위험도 있지만, 다음과 같은 점들에 주의를 기울여야 합니다.
EMA 평행선 조합은 조정 및 최적화 할 수 있으며, 다른 주기는 트렌드를 더 잘 포착 할 수 있습니다.
볼링거 대역은 최적화할 수 있으며, 변동배수 표준은 가짜 신호를 필터링하기에는 좋지 않다.
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)