
이 전략은 평균 실제 파도 지표와 가격으로 계산된 위아래로 형성된 상승 채널을 활용하여 가격이 채널을 뚫을 때 거래 신호를 발생시킨다. 전략은 탁월한 트렌드 추적 능력을 가지고 있다.
이 전략은 우선 ATR 지표를 가격 변동의 척도로 계산하고, 최고 가격, 최저 가격, 종결 가격의 평균값을 결합하여 상승과 하향을 계산합니다. 가격이 상승하면 하향을 돌파하면 구매 신호를 생성하고, 가격이 하향을 돌파하면 판매 신호를 생성합니다. 따라서 가격 추세를 추적하는 적응된 상승 경로를 형성합니다.
상장 후, 전략은 목표 수익 포인트와 중지 손실 포인트를 설정하고, 가격이 목표 포인트에 도달하면 중지하고, 철회 시 중지 손실 포인트를 달성하면 중지한다.
이 전략의 가장 큰 장점은 뛰어난 트렌드 추적 능력에 있다. 상승 통로가 가격 트렌드의 변화를 적응적으로 조정하고 포착할 수 있다. 동시에, ATR 지표의 사용은 또한 어느 정도의 하향 동작을 보장한다. 또한, 전략의 중지 중지 메커니즘은 이익 손실 통제를 더 명확하게 만든다.
이 전략의 주요 위험 중 하나는 빈 포지션 기간이 더 많이 발생하기 쉽다는 것입니다. 가격이 흔들릴 때 상하 통로가 자주 유발되는 경우가 많으며, 더 많은 무효 거래가 발생합니다. 또한, 스톱 포인트 수 설정은 최종 수익에 직접적인 영향을 미칩니다.
이러한 위험을 줄이기 위해, ATR 파라미터를 최적화하거나 채널의 폭을 조정하여 채널을 실제 경향에 더 가깝게 만들 수 있습니다. 또한, 다른 지표와 결합하여 출시 시기를 필터링 할 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
ATR 변수를 최적화한다. ATR이 실제 변동을 더 잘 반영하도록 다양한 주기 변수를 테스트할 수 있다.
통로 너비 최적화. 다양한 배수 값을 테스트하여 최적의 파라미터를 결정할 수 있다.
다른 지표 필터링을 추가하십시오. 예를 들어 MACD 지표와 결합하여 매매 지점을 판단하면 무효 거래를 어느 정도 줄일 수 있습니다.
정지점과 정지점의 최적화. 최종 수익률에 대한 다양한 매개 변수의 영향을 테스트한다.
샤프 비율이나 수익 손실 비율을 최적화 목표로 고려하십시오. 전략의 질을 더 포괄적으로 평가하기 위해.
이 전략은 자기 적응 상승 통로와 돌파 원칙을 통해 우수한 트렌드 추적을 구현한다. 또한 상대적으로 명확한 스톱 스톱 로즈 논리를 갖추고 있다. 특정 매개 변수 및 규칙을 최적화함으로써 전략의 동적 추적 성능을 더욱 강화하여 보다 광범위한 시장 환경에 적용할 수 있을 것으로 기대된다.
/*backtest
start: 2024-02-26 00:00:00
end: 2024-02-26 20:20:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true)
// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")
target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")
// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)
// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed
// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)
// Strategy entry and exit
if long_condition
strategy.entry("Long", strategy.long)
if short_condition
strategy.entry("Short", strategy.short)
// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points
// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)