이 전략은 움직이는 평균 거래 전략을 따르는 트렌드이다. 시장 트렌드를 결정하고 전환점에 거래 신호를 생성하기 위해 다른 매개 변수 설정으로 가장 높고 가장 낮은 가격의 움직이는 평균을 사용합니다. 가격이 상승 추적 이동 평균 라인 이상으로 떨어지면 길고 가격이 하락 추적 라인 아래에 떨어지면 짧습니다. 이 전략은 또한 ATR을 사용하여 스톱 손실을 설정하고 수익 수준을 취합니다.
이 전략은 시장 트렌드를 정의하기 위해 다른 매개 변수와 함께 가장 높고 가장 낮은 가격의 간단한 이동 평균을 사용합니다. 구체적으로 두 개의 이동 평균 추적 시스템을 만듭니다.
h1 및 l1 시스템은 추세를 위쪽에서 추적합니다. h1은 가장 높은 가격의 간단한 이동 평균이며, 추세의 상단역으로 작용합니다. l1은 h1 빼기 ATR 값으로 구성되어 있으며, 하단역으로 작용합니다. 가격이 h1 이상으로 깨지면 긴 신호가 생성되며 가격이 l1 아래로 떨어지면 가까운 신호가 생성됩니다.
h2 및 l2 시스템은 하향적인 경향을 추적합니다. h2는 하위 대역으로 작용하는 가장 낮은 가격의 간단한 이동 평균입니다. l2는 h2 더해 ATR 값으로 구성되어 상위 대역으로 작용합니다. 가격이 h2 아래로 넘어갈 때 짧은 신호가 생성되며 가격이 l2 이상으로 상승 할 때 가까운 신호가 생성됩니다.
이중 대역 시스템은 트렌드 전환점을 더 정확하게 식별하고 소란스러운 거래를 필터 할 수 있습니다. 한편, ATR 값은 거래 당 위험-이익 비율을 제어하기 위해 손해를 멈추고 수익 수준을 설정하는 데 사용됩니다.
이 전략의 주요 장점은 다음과 같습니다.
이 전략과 관련된 위험도 있습니다.
해결책:
전략은 다음 측면에서 최적화 될 수 있습니다:
결론적으로, 이것은 간단하고 실용적인 트렌드 다음 전략이다. 핵심 철학은 듀얼 밴드 필터링과 동적 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)