전략에 따른 이동 평균 크로스오버 트렌드

저자:차오장, 날짜: 2024-03-01 10:59:03
태그:

img

전반적인 설명

이 전략은 다른 기간의 이동 평균을 계산하고 트렌드를 따르기 위해 구매 및 판매 신호로 크로스오버를 사용하여 거래 신호를 생성합니다. 핵심 논리는 짧은 기간 이동 평균을 사용하여 더 긴 기간 트렌드의 전환점을 추적하는 것입니다.

전략 원칙

  1. 200주기 및 100주기 이동평균을 계산합니다.
  2. 100주기 MA가 200주기 MA를 넘을 때, 장기화
  3. 100주기 MA가 200주기 MA를 넘으면 긴 포지션을 닫습니다.
  4. 100주기 MA가 200주기 MA보다 낮을 때, 단축
  5. 100주기 MA가 200주기 MA를 넘을 때, 짧은 포지션을 닫습니다.

거래 신호의 논리는 짧은 기간 MA가 가격 변화에 더 빠르게 반응하고 최신 트렌드를 반영 할 수 있으며, 더 긴 기간 MA는 전체 트렌드를 더 잘 표현하고 소음을 필터 할 수 있다는 것입니다. 짧은 MA가 더 긴 MA를 넘으면 트렌드 반전을 나타냅니다. 따라서 거래 신호가 활성화됩니다.

이점 분석

  1. 전략 아이디어는 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다
  2. 장기 및 단기 MA 조합을 통해 트렌드 전환점을 잡는 것은 잘 작동합니다.
  3. 특정 가격 방향을 예측할 필요가 없습니다, 단지 트렌드 반전을 따라, 낮은 오류율
  4. 다양한 시장 환경에 적응하기 위해 MA 기간을 최적화 할 수 있습니다.

위험 과 해결책

  1. 트렌드가 크게 변동할 때 너무 많은 잘못된 신호가 있습니다. 해결책은 MA 기간을 적절히 조정하는 것입니다.
  2. 급격한 변동에 빠르게 대응하지 않는 것이지요.
  3. 너무 빈번한 거래, 비용 증가. 해결책은 기간을 더 낮은 빈도에 조정하는 것입니다.

최적화 방향

  1. 더 많은 시장에 적응하기 위해 MA 기간 조합을 최적화
  2. 잘못된 신호를 피하기 위해 볼륨과 MACD와 같은 필터를 추가합니다.
  3. 단일 거래 위험을 제어하기 위해 스톱 로스를 추가하고 수익을 취하십시오.
  4. 최적을 찾기 위해 매개 변수 조합 최적화

요약

이 전략은 간단한 MA 크로스오버로 트렌드 변화를 잡습니다. 그것은 전형적인 트렌드 다음 전략에 속합니다. 장점은 단순하고 사용하기 쉽고 매개 변수 조정으로 적응이 가능합니다. 단점은 느린 반응과 잘못된 신호입니다. 전반적으로 명확한 논리를 가지고 있으며 알고 거래의 좋은 출발점입니다. 라이브 거래에 적절한 위험 관리 및 최적화가 필요합니다.


/*backtest
start: 2023-02-23 00:00:00
end: 2024-02-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA Crossover Strategy", overlay=true)

// Функция для получения скользящего среднего на заданном таймфрейме
getMA(source, length, timeframe) =>
    request.security(syminfo.tickerid, timeframe, ta.sma(source, length))

// Вычисляем 200-периодное и 100-периодное скользящее среднее для текущего таймфрейма
ma200 = getMA(close, 200, "240")
ma100 = getMA(close, 100, "240")

// Открываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossover(ma100, ma200))
    strategy.entry("Long", strategy.long)

// Закрываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
    strategy.close("Long")

// Открываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
    strategy.entry("Short", strategy.short)

// Закрываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное снизу вверх
if (ta.crossover(ma100, ma200))
    strategy.close("Short")

// Рисуем линии скользящих средних на графике
plot(ma200, color=color.blue, linewidth=2, title="200 MA")
plot(ma100, color=color.red, linewidth=2, title="100 MA")


더 많은