이 전략은 금의 크로스 바이와 데드 크로스 셀 양적 거래를 구현하기 위해 XAUUSD (금) 의 30 일 간 간단한 이동 평균 (MA30) 및 200 일 간 간단한 이동 평균 (MA200) 크로스 오버를 계산합니다. 전략은 또한 자동 포지션 폐쇄를 위해 스톱 로스 및 수익을 취하는 가격을 설정합니다.
이 전략의 핵심 지표는 MA30과 MA200이다. MA30이 MA200을 넘을 때 구매 신호가 생성된다. MA30이 MA200을 넘을 때 판매 신호가 생성된다. 이러한 교차는
구체적으로, 전략은 MA30과 MA200를 계산하기 위해 ta 라이브러리를 사용합니다. ta.crossover와 ta.crossunder 함수는 그 다음 교차하는지 판단합니다. 상승 교차가 발생하면 (황금 교차) longCondition 값이 true로 설정됩니다. 하락 교차가 발생하면 (죽은 교차) shortCondition 값이 true로 설정됩니다.
주문 실행을 위해, 정지 손실 및 수익을 취하는 가격은 각각 40,000 포인트로 장과 짧은 거래에 설정됩니다. 이것은 XAUUSD의 4,000 포인트 가격 변화에 해당합니다. 가격이 정지 손실 또는 수익을 취하면 주문은 자동으로 포지션을 닫습니다.
또한 전략에는 헤지 메커니즘이 설정되어 있습니다. 현재 포지션이 길다면 다음의 죽은 십자 신호가 직접 포지션을 평평화하고 역전화합니다. 현재 포지션이 짧으면 다음의 금 십자 신호도 직접 평평화하고 역전화합니다. 이것은 트렌드 역전 과정에서 큰 손실을 피합니다.
이것은 매우 간단하고 직관적인 트렌드 다음 전략입니다. 그것은 다음과 같은 장점을 가지고 있습니다:
이 전략에는 몇 가지 위험이 있습니다.
이러한 위험은 매개 변수 최적화, 스톱 손실 수준을 조정, 역 신호 필터링 등을 통해 관리 될 수 있습니다.
전략은 여러 가지 방법으로 최적화 될 수 있습니다.
매개 변수 조정, 필터 추가, 위치 크기 등은 전략 안정성을 더욱 향상시킬 수 있습니다.
이것은 간단하고 실용적인 이동 평균 크로스오버 전략이다. 시장 주기와 일치하고 자동화 된 스톱 로스 / 이익 출구 및 헤지 메커니즘을 통해 위험을 제어합니다. 이해하기 쉽고 구현하기 쉽고 여러 제품과 시간 프레임에 적용됩니다. 추가 최적화는 위험 / 보상 프로필을 향상시킬 수 있습니다. 전반적으로 바람직한 양적 거래 전략입니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia de Cruce de Medias Móviles", overlay=true) // Medias móviles ma30 = ta.sma(close, 30) ma60 = ta.sma(close, 60) ma200 = ta.sma(close, 200) // Cruce de medias móviles crossoverUp = ta.crossover(ma30, ma200) crossoverDown = ta.crossunder(ma30, ma200) // Señales de compra y venta longCondition = crossoverUp shortCondition = crossoverDown // Ejecución de órdenes if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000) // Plot de las medias móviles plot(ma30, color=color.blue, title="MA 30") plot(ma60, color=color.orange, title="MA 60") plot(ma200, color=color.green, title="MA 200") // Condiciones para cerrar la posición contraria if (strategy.position_size > 0) if (crossoverDown) strategy.close("Buy") if (strategy.position_size < 0) if (crossoverUp) strategy.close("Sell")