
초평균선과 상반대 교차 전략은 기술 지표에 기반한 양적 거래 전략이다. 이 전략은 지수 이동 평균 (EMA) 과 상반대 지표를 사용하여 시장의 상승 추세를 포착한다. 종결 가격이 상반대를 뚫고 특정 조건을 충족하면 전략은 구매 신호를 발산한다. 종결 가격이 3일 EMA를 뚫을 때 전략은 판매 신호를 발산한다. 이 전략은 비트코인 같은 거래량이 큰, 트렌드가 명백한 시장에 적용된다.
이 전략의 핵심은 EMA와 Upperband의 두 가지 기술 지표를 사용하여 시장의 추세와 매매 시기를 판단하는 것이다. 우선, 전략은 가격의 변동성을 고려하는 Upperband 지표를 계산하고, 가격이 평균 가격에 비해 큰 편차가 있을 때 Upperband의 가치가 증가한다.
유동성이 강한 시장에 적합하다: 이 전략은 상승 추세에서 잘 작동하며, 특히 비트코인처럼 변동성이 높고 유동성이 뚜렷한 품종에 적합하다.
가격과 변동성을 결합: Upperband 지표는 가격 수준과 가격 변동성을 고려하여 시장 상태를 더 포괄적으로 반영합니다.
간단하고 사용하기 쉽다: 이 전략의 논리는 명확하고, 사용된 지표는 간단하며, 이해하기 쉽고 구현하기 쉽다.
단선 거래에 적합하다: 이 전략의 구매/판매 신호는 높은 주파수이며, 단선 거래에 적합하다.
흔들리는 시장의 위험: 큰 변동과 명백한 추세가 없는 흔들리는 시장에서 이 전략은 자주 거래될 수 있으며, 큰 슬라이드 포인트와 거래 비용을 초래할 수 있다.
지표 변수 위험: 이 전략은 지표 변수에 민감하며, 변수 설정이 잘못되면 전략의 성능이 좋지 않을 수 있다.
과도한 적합성 위험: 이 전략은 특정 시장에서 잘 작동하지만, 시장 환경의 변화에 적응하지 못할 수 있습니다. 과도한 적합성의 위험이 있습니다.
트렌드 확인 지표의 도입: MACD와 같은 트렌드 확인 지표가 도입될 수 있으며, 이는 흔들리는 시장에서 가짜 신호를 필터링하기 위해 사용된다.
최적화 매개 변수 선택: 유전 알고리즘과 같은 최적화 방법을 통해 최적의 지표 매개 변수 조합을 찾을 수 있다.
위험 제어 모듈을 추가: 전략적 위험을 줄이기 위해 손해 중지, 동적 포지션 관리와 같은 위험 제어 조치를 도입 할 수 있습니다.
다종족 적응: 기계 학습과 같은 방법을 통해 전략이 다양한 종족과 시장 환경에 적응할 수 있도록 할 수 있다.
초평균선과 우퍼밴드 교차 전략은 유동성이 강한 시장에 적용되는 간단한 실용적인 정량화 거래 전략이다. 이 전략은 EMA와 우퍼밴드 지표를 사용하여 상승 추세를 포착하고, 논리적으로 명확하고, 쉽게 구현된다. 그러나 이 전략에는 흔들림 시장 위험, 변수 위험 및 과잉 적합 위험과 같은 위험이 있습니다.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia de Cruzamento de Bandas", overlay=true)
// Entradas
factor = input(0.001, title="Factor")
length = input(20, title="Length")
// Cálculo da Upperband
Upperband = high * (1 + 2 * ((((high - low) / ((high + low) / 2)) * 1000) * factor))
// Condição de Compra
buy_condition = close > ta.ema(close, 3)
// Variável para controlar se a compra foi feita
var bought = false
// Sinal de compra
buy_signal = (close[1] <= ta.sma(Upperband, length)[1]) and (close > ta.sma(Upperband, length)) and buy_condition
// Sinal de venda
sell_signal = close < ta.ema(close, 3) and bought
// Atualizar o status de compra
if buy_signal
bought := true
strategy.entry("Compra", strategy.long)
else if sell_signal
bought := false
strategy.close("Compra")
// Plotagem dos sinais de compra e venda no gráfico
plotshape(series=buy_signal, title="Compra", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sell_signal, title="Venda", color=color.red, style=shape.triangledown, location=location.abovebar)