
이 전략은 트렌드를 추적하는 이동 평균을 기반으로 한 거래 전략이다. 이 전략은 상위 가격과 최저 가격의 이동 평균을 사용하여 시장의 흐름을 판단하고, 트렌드 전환점에서 대응하는 거래 신호를 생성한다. 가격이 상향 추적하는 이동 평균을 돌파 할 때 더 많이하고, 가격이 하향 추적하는 이동 평균을 깨면 공백한다. 이 전략은 동시에 ATR을 사용하여 중지 및 중지 수준을 설정한다.
이 전략은 시장의 흐름을 판단하기 위해 다른 파라미터 세트의 최고 가격과 최저 가격의 간단한 이동 평균을 사용합니다. 구체적으로, 그것은 두 개의 이동 평균을 추적하는 그룹을 만듭니다.
h1과 l1으로 구성된 상향 추적 이동 평균 시스템。h1은 최고 가격의 간단한 이동 평균이며, 시장의 추세를 나타냅니다. 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)