
이 전략은 20주기 간단한 이동 평균 (SMA) 과 21주기 지수 이동 평균 (EMA) 을 계산하고 도면하여 가격 변동 영역을 시각화하고 그 사이에 색을 채웁니다. 가격이 20주기 SMA를 넘어서면 구매 신호를 생성하고 21주기 EMA를 넘어서면 판매 신호를 생성합니다. 이 전략은 동시에 중지 손실 및 중지 기능을 추적합니다.
두 개의 이동 평균 돌파 전략의 핵심 아이디어는 빠른 이동 평균과 느린 이동 평균 사이의 교차를 매매 신호로 이용하는 것이다. 20 주기의 SMA는 상대적으로 더 민감하고 가격 변화에 빠르게 반응할 수 있다. 21 주기의 EMA의 반응은 약간 늦었지만 더 부드럽다.
구체적으로 말해서, 종결 가격이 20주기 SMA를 넘어서면, 단기 및 장기 모두 상승 추세를 나타내고, 따라서 더 많이 한다. 종결 가격이 21주기 EMA를 넘어서면, 단기 및 장기 모두 하락 추세를 나타내고, 따라서 공백한다. 평소 위치 신호는 출입 신호의 반대편으로, 가격이 20주기 SMA를 넘어서면 평소 위치가 많고, 가격이 21주기 EMA를 넘어서면 평소 위치가 공백하다.
이 전략은 동시에 fill 기술을 사용하여 두 개의 이동 평균 사이에 색을 채우며, 시각적 지표를 형성하여 시장의 움직임을 판단하는 데 도움을 줍니다.
이중 이동 평균 돌파 전략은 다음과 같은 장점이 있습니다:
이 전략에는 몇 가지 위험도 있습니다.
위와 같은 위험에는 다음과 같은 조치를 취할 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 빠른 속도와 느린 속도 이중 이동 평균의 교차를 통해 시장 추세 변화를 판단하고 그에 따라 구매 및 판매 결정을 내립니다. 이 전략은 간단하고 직관적이며 쉽게 구현하는 장점이 있지만, 위험도 있습니다. 매개 변수 최적화, 필터링 조건을 추가, 인적 개입 방식 등으로 위험을 줄일 수 있습니다. 전략의 효과를 높일 수 있습니다. 이 전략은 확장 공간이 넓고 깊이있는 연구와 응용에 가치가 있습니다.
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BMSB Breakout Strategy", shorttitle="BMSB Breakout", overlay=true)
source = close
smaLength = 20
emaLength = 21
sma = ta.sma(source, smaLength)
ema = ta.ema(source, emaLength)
outSma = request.security(syminfo.tickerid, timeframe.period, sma)
outEma = request.security(syminfo.tickerid, timeframe.period, ema)
smaPlot = plot(outSma, color=color.new(color.red, 0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')
fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)
// Definir condiciones para la estrategia de compra y venta
buyCondition = ta.crossover(close, outSma)
sellCondition = ta.crossunder(close, outEma)
// Entrada larga (compra) y salida corta
strategy.entry("Long", strategy.long, when=buyCondition and not na(sellCondition))
strategy.close("Short", when=buyCondition)
// Entrada corta (venta) y salida larga
strategy.entry("Short", strategy.short, when=sellCondition and not na(buyCondition))
strategy.close("Long", when=sellCondition)
// Puedes ajustar la configuración de la estrategia y los valores predeterminados según tus preferencias
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")