골드 크로스 데드 크로스 양적 거래 전략

저자:차오장, 날짜: 2024-02-02 14:46:11
태그:

img

전반적인 설명

이 전략은 금의 크로스 바이와 데드 크로스 셀 양적 거래를 구현하기 위해 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 포인트 가격 변화에 해당합니다. 가격이 정지 손실 또는 수익을 취하면 주문은 자동으로 포지션을 닫습니다.

또한 전략에는 헤지 메커니즘이 설정되어 있습니다. 현재 포지션이 길다면 다음의 죽은 십자 신호가 직접 포지션을 평평화하고 역전화합니다. 현재 포지션이 짧으면 다음의 금 십자 신호도 직접 평평화하고 역전화합니다. 이것은 트렌드 역전 과정에서 큰 손실을 피합니다.

장점

이것은 매우 간단하고 직관적인 트렌드 다음 전략입니다. 그것은 다음과 같은 장점을 가지고 있습니다:

  1. 적용하기 쉬운 규칙.
  2. 일일 거래와 장기 거래에서 여러 시간 프레임에 적용됩니다.
  3. 시장의 주기와 일치하고 트렌드 반전을 포착합니다.
  4. 단일 거래 손실을 제어하기 위해 Stop Loss/Profit로 자동 출구 메커니즘을 설정합니다.
  5. 트렌드 리버션으로 인한 손실을 피하기 위해 헤지링을 설정합니다.

위험 분석

이 전략에는 몇 가지 위험이 있습니다.

  1. MA 지표는 뒤떨어져 있고 단기 트렌드 반전으로 가장 좋은 입구를 놓칠 수 있습니다.
  2. 잘못된 스톱 로즈 설정은 거래를 조기 종료 할 수 있습니다.
  3. 너무 많은 반전 신호가 불필요한 거래를 증가시킵니다.
  4. 이 전략은 소모에 견딜 수 있는 자본 요구사항을 가지고 있습니다.

이러한 위험은 매개 변수 최적화, 스톱 손실 수준을 조정, 역 신호 필터링 등을 통해 관리 될 수 있습니다.

최적화

전략은 여러 가지 방법으로 최적화 될 수 있습니다.

  1. EMA 또는 가중 이동 평균을 사용하여 MA 매개 변수를 최적화합니다.
  2. 부피, 변동성 지표 등과 같은 다른 필터를 추가합니다.
  3. 중요한 신호에서만 헤지 메커니즘을 허용합니다.
  4. 자본 효율을 높이기 위해 포지션 사이즈를 설정합니다.
  5. 기계 학습 알고리즘을 사용하여 정지/이익을 동적으로 최적화합니다.

매개 변수 조정, 필터 추가, 위치 크기 등은 전략 안정성을 더욱 향상시킬 수 있습니다.

결론

이것은 간단하고 실용적인 이동 평균 크로스오버 전략이다. 시장 주기와 일치하고 자동화 된 스톱 로스 / 이익 출구 및 헤지 메커니즘을 통해 위험을 제어합니다. 이해하기 쉽고 구현하기 쉽고 여러 제품과 시간 프레임에 적용됩니다. 추가 최적화는 위험 / 보상 프로필을 향상시킬 수 있습니다. 전반적으로 바람직한 양적 거래 전략입니다.


/*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")

더 많은