
이 전략은 복합적인 트렌드 추적 시스템으로, 다중 기술 지표와 동력 분석 방법을 결합한다. 전략의 핵심은 평평선 교차, 트렌드 확인 및 동력 지표의 결합 방식을 채택하고, 변동률을 통해 위험을 통제하고, 시장 추세를 파악하고 위험을 효과적으로 관리한다. 이 전략은 중·장기 추세가 명백한 시장 환경에서는 잘 적응한다.
이 전략은 다음과 같은 몇 가지 핵심 요소를 포함하는 다단계 신호 확인 메커니즘을 사용합니다.
다중 신호 통합 판단의 거래 조건은 다음과 같습니다. 다중 조건: EMA9 상에서 EMA21을 통과, MACD 라인은 신호 라인보다 크며, RSI는 40-70 사이, 가격은 EMA9 상에 공백 조건: EMA9 아래 EMA21을 뚫고, MACD 라인은 신호 라인보다 작고 마이너스 값, RSI는 30-60 사이, 가격은 EMA9 아래
이 전략은 여러 기술 지표의 조합을 사용하여 비교적 완전한 트렌드 추적 거래 시스템을 구축한다. 전략의 핵심 장점은 신호의 신뢰성과 위험 제어의 합리성에 있다. 그러나 동시에 특정 낙후성과 파라미터 최적화 문제가 존재한다. 제안된 최적화 방향에 의해 전략은 실내 응용 프로그램에서 더 나은 성능을 얻을 것으로 예상된다. 실제 응용 프로그램에서 충분한 역사 데이터 테스트를 수행하고 특정 시장 특성에 따라 파라미터를 조정하는 것이 좋습니다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia Cripto - 1D", shorttitle="Estratégia Cripto", overlay=true)
// Definição das Médias Móveis Exponenciais (EMA)
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// Definição do MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Definição do RSI
rsi = ta.rsi(close, 14)
// Volume médio
volMedio = ta.sma(volume, 14)
// Definição das Bollinger Bands
basis = ta.sma(close, 20)
dev = ta.stdev(close, 20)
upperBand = basis + 2 * dev
lowerBand = basis - 2 * dev
// Condições de Compra (Long)
longCondition = (ema9 > ema21) and (macdLine > signalLine) and (macdLine > 0) and (volume > volMedio) and (rsi > 40 and rsi < 70) and (close > ema9)
if (longCondition)
strategy.entry("Compra", strategy.long)
// Condições de Venda (Short)
shortCondition = (ema9 < ema21) and (macdLine < signalLine) and (macdLine < 0) and (volume > volMedio) and (rsi < 60 and rsi > 30) and (close < ema9)
if (shortCondition)
strategy.entry("Venda", strategy.short)
// Stop Loss e Take Profit
strategy.exit("Take Profit/Stop Loss", from_entry="Compra", loss=200, profit=400)
strategy.exit("Take Profit/Stop Loss", from_entry="Venda", loss=200, profit=400)
// Plotagem das Médias Móveis e Bollinger Bands
plot(ema9, color=color.green, title="EMA 9")
plot(ema21, color=color.red, title="EMA 21")
plot(upperBand, color=color.blue, title="Upper Band")
plot(lowerBand, color=color.blue, title="Lower Band")