
이 전략은 동적 통로 지표를 사용하여 통로의 돌파 상황에 따라 시장의 방향을 판단하여 트렌드의 방향을 포착합니다. 이 전략은 주로 일정 기간 동안의 최고 가격과 최저 가격을 계산하여 상하 통로를 형성하여 통로 돌파 시 거래 신호를 생성합니다.
이 전략은 input 함수를 사용하여 채널 주기 길이를 length로 설정합니다. 20 일. 그리고는 최근 20 일간의 최고 가격 (highest, length) 을 상반도로, 최근 20 일간의 최저 가격 (lowest, length) 을 하반도로 계산합니다.
통로 내부에 색을 채우십시오. 동적인 통로를 형성하기 위해 상반면에는 녹색을 채우고 하반면에는 빨간색을 채우십시오.
동시 200일 이동 평균 (EMA) 을 도출하여, 동향을 판단하는 데 참고로 사용한다.
전략은 이마 값으로 큰 트렌드를 판단하는 기준이다. 클로즈가 200일선보다 크면 부진, 클로즈가 200일선보다 작면 하락이다.
부시시에는 종결 가격close가 경로를 돌파하면 다중 신호가 발생한다. 하락시에는 종결 가격close가 경로를 돌파하면 하위 신호가 발생한다.
다수 스톱은 길고 짧은 규칙에 따라 하계 또는 중선으로 설정하고, 공백 스톱은 길고 짧은 규칙에 따라 상계 또는 중선으로 설정한다.
동적 채널을 사용하여 시장의 변화 추세를 파악할 수 있습니다.
트렌드 트레이딩에 따라 트레이딩 신호를 생성합니다.
이동 평균을 기반으로 큰 트렌드 방향을 판단하고, 통로 돌파구와 결합하여 사용한다.
손해배상 방식은 시장에 따라 유연하게 조정할 수 있습니다.
“대 추세에 대한 잘못된 판단으로 인해 시장에서 벗어날 수 있습니다”.
통로 주기가 잘못 설정되면 잘못된 거래의 확률이 증가합니다.
정지점은 통로에 가깝고, 정지가 유발될 확률을 높일 수 있다.
뚫림 신호가 다소 지연되어 가장 좋은 입구 지점을 놓칠 수 있다.
대책:
여러 지표들을 조합하여 큰 경향을 판단하여 오류의 확률을 줄일 수 있다.
채널 사이클 파라미터를 최적화하여 다른 시장의 리듬에 맞게 조정한다.
충분한 완충 공간이 있는지 확인하기 위해 정지 위치를 조정하십시오.
다른 지표와 함께 진입 신호를 필터링한다.
큰 트렌드 판단 지표를 증가시키고, 지표 포트폴리오를 형성하고, 판단 정확도를 향상시킨다.
거래량 지표를 추가하여 가짜 돌파구를 피하십시오.
채널 사이클 파라미터를 최적화하여 다양한 품종 특성에 더 적합하게 만듭니다.
손해 중지 전략을 최적화하고, 손해 중지 동적 추적을 구현한다.
필터를 추가하여 신호 품질을 향상시키고 불필요한 거래를 줄여줍니다.
이 전략은 전체적으로 트렌드 트레이딩 사고방식을 따르고, 동적 통로를 사용하여 변동 범위를 판단하고 거래 신호를 형성하여 트렌드 변화를 효과적으로 추적 할 수 있습니다. 이것은 신뢰할 수있는 트렌드 추적 전략입니다. 그러나 여전히 큰 트렌드 판단과 중지 방법을 최적화하고 전략의 안정성을 높이기 위해 필터링 조건을 추가해야합니다. 이 전략은 중장선 트렌드를 추적하는 데 적합하며, 다른 전략과 결합하여 다중 전략 포트폴리오를 구성 할 수 있습니다.
/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pratyush_trades
//@version=4
strategy("Donchian Indexes", overlay=true)
length = input(20)
longRule = input("Higher High", "Long Entry", options=["Higher High", "Basis"])
shortRule = input("Lower Low", "Short Entry", options=["Lower Low", "Basis"])
longSL=input("Lower Low", "LONG SL", options=["Lower Low", "Basis"])
shortSL=input("Higher High", "SHORT SL", options=["Higher High", "Basis"])
hh = highest(high, length)
ll = lowest(low, length)
up = plot(hh, 'Upper Band', color = color.green)
dw = plot(ll, 'Lower Band', color = color.red)
mid = (hh + ll) / 2
midPlot = plot(mid, 'Basis', color = color.orange)
fill(up, midPlot, color=color.green, transp = 95)
fill(dw, midPlot, color=color.red, transp = 95)
plot(ema(close,200), "ema", color=color.orange)
if (close>ema(close,200))
if (not na(close[length]))
strategy.entry("Long", strategy.long, stop=longRule=='Basis' ? mid : hh)
if (close<ema(close,200))
if (not na(close[length]))
strategy.entry("Short", strategy.short, stop=shortRule=='Basis' ? mid : ll)
if (strategy.position_size>0)
strategy.exit(id="Longs Exit",stop=longSL=='Basis' ? mid : ll)
if (strategy.position_size<0)
strategy.exit(id="Shorts Exit",stop=shortSL=='Basis' ? mid : hh)