이동 평균 거래 전략의 추세

저자:차오장, 날짜: 2024-01-05 13:48:07
태그:

img

전반적인 설명

이 전략은 움직이는 평균 거래 전략을 따르는 트렌드이다. 시장 트렌드를 결정하고 전환점에 거래 신호를 생성하기 위해 다른 매개 변수 설정으로 가장 높고 가장 낮은 가격의 움직이는 평균을 사용합니다. 가격이 상승 추적 이동 평균 라인 이상으로 떨어지면 길고 가격이 하락 추적 라인 아래에 떨어지면 짧습니다. 이 전략은 또한 ATR을 사용하여 스톱 손실을 설정하고 수익 수준을 취합니다.

전략 논리

이 전략은 시장 트렌드를 정의하기 위해 다른 매개 변수와 함께 가장 높고 가장 낮은 가격의 간단한 이동 평균을 사용합니다. 구체적으로 두 개의 이동 평균 추적 시스템을 만듭니다.

  1. h1 및 l1 시스템은 추세를 위쪽에서 추적합니다. h1은 가장 높은 가격의 간단한 이동 평균이며, 추세의 상단역으로 작용합니다. l1은 h1 빼기 ATR 값으로 구성되어 있으며, 하단역으로 작용합니다. 가격이 h1 이상으로 깨지면 긴 신호가 생성되며 가격이 l1 아래로 떨어지면 가까운 신호가 생성됩니다.

  2. h2 및 l2 시스템은 하향적인 경향을 추적합니다. h2는 하위 대역으로 작용하는 가장 낮은 가격의 간단한 이동 평균입니다. l2는 h2 더해 ATR 값으로 구성되어 상위 대역으로 작용합니다. 가격이 h2 아래로 넘어갈 때 짧은 신호가 생성되며 가격이 l2 이상으로 상승 할 때 가까운 신호가 생성됩니다.

이중 대역 시스템은 트렌드 전환점을 더 정확하게 식별하고 소란스러운 거래를 필터 할 수 있습니다. 한편, ATR 값은 거래 당 위험-이익 비율을 제어하기 위해 손해를 멈추고 수익 수준을 설정하는 데 사용됩니다.

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 이중 대역 시스템은 소음을 필터링하고 전환점을 더 정확하게 식별합니다.
  2. ATR은 변동성을 동적으로 추적하여 거래별로 효과적인 스톱 로스 통제를 가능하게 합니다.
  3. 논리는 간단하고 이해하기 쉽고 초보자도 배울 수 있습니다.
  4. 매개 변수는 다양한 시장 환경에 적응하기 위해 유연하게 조정할 수 있습니다.

위험 분석

이 전략과 관련된 위험도 있습니다.

  1. 반지로부터의 브레이크오웃 신호는 늦어지고 트렌드 초기 단계에서 기회를 놓칠 수 있습니다.
  2. 이동 평균을 추적하는 것은 곡선 트렌드를 파악하는 능력이 약합니다.
  3. 거래 비용은 고려되지 않습니다. 그들은 높은 주파수 거래와 함께 높을 수 있습니다.

해결책:

  1. 더 민감한 신호를 위해 이동 평균 기간을 단축합니다.
  2. 트렌드 유형을 결정하기 위해 MACD와 같은 다른 지표를 포함하고, 범위 영역에서 과도한 거래를 피합니다.
  3. 지점 크기를 거래 빈도에 따라 조정합니다.

최적화 방향

전략은 다음 측면에서 최적화 될 수 있습니다:

  1. 기계 학습 알고리즘을 활용하여 변화하는 시장에 적응하기 위해 매개 변수를 자동 조정합니다.
  2. 가짜 브레이크를 피하기 위해 거래량을 포함합니다.
  3. 지점 크기와 트렌드 강도를 연결하기 위해 마이크로 위치 사이징 규칙을 추가합니다.
  4. 트레일링 스톱 등으로 손해를 막는 메커니즘을 최적화합니다.

결론

결론적으로, 이것은 간단하고 실용적인 트렌드 다음 전략이다. 핵심 철학은 듀얼 밴드 필터링과 동적 ATR 정지를 통해 트렌드 전환점을 식별하고 거래당 손실을 제어하는 것입니다. 그것은 확실한 실용적 장점과 최적화에 대한 넓은 공간을 가지고 있습니다. 파라미터 튜닝, 다른 지표를 통합하는 등으로 더 나은 성능을 얻을 수 있습니다.


/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")

lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")

atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier

h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a

h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a

buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)

buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)

y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)

fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)


더 많은