가격 채널에 의해 인도되는 가격 역전 전략은 가격 채널의 중심선을 계산하여 가격 변동의 트렌드 방향을 결정합니다. 가격이 채널 중심선에 접근 할 때 길고 짧은 신호를 생성합니다. 이 전략은 높은 확률의 거래 기회를 검색하기 위해 여러 필터 조건을 결합합니다.
이 전략의 핵심 지표는 가격 채널 중앙선이다. 가장 최근의 30 개의 촛불의 가장 높은 가격과 가장 낮은 가격의 평균으로 계산됩니다. 낮은 값이 중앙선보다 높을 때 상승 추세로 간주됩니다. 높은 값이 중앙선보다 낮을 때 하락 추세로 간주됩니다.
이 전략은 트렌드 배경이 변할 때만 거래 신호를 생성합니다. 즉, 상승 트렌드 배경에서는 촛불이 빨
또한, 전략은 또한 촛불체 필터와 가격 채널 바 필터라는 이중 필터 조건을 설정합니다. 신호는 촛불체 부피가 평균 값의 20% 이상일 때만 활성화되며 포지션을 열기 위해 필터 사이클 내에서 연속 트렌드 신호가 있어야합니다.
이 전략은 트렌드, 가치 영역 및 촛불 패턴을 결합하여 효율적인 반전 거래 전략입니다. 주요 장점은 다음과 같습니다.
이 전략의 주요 위험은 가격 반전 지점이 없어지고 신호를 불필요하게 기다리는 것에서 비롯됩니다. 다음과 같은 방법으로 최적화 될 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
가격 채널에 의해 인도되는 가격 반전 전략은 가격 채널을 통해 반전 지점을 결정하고 고품질 신호를 생성하기 위해 이중 필터 조건을 설정합니다. 매개 변수 조정 및 위험 통제를 기반으로 신뢰할 수있는 수치 전략입니다.
/*backtest start: 2023-11-19 00:00:00 end: 2023-11-26 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's PriceChannel for D1 v1.0", shorttitle = "PriceChannel D1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) //Settings needlong = input(true, "long") needshort = input(true, "short") slowlen = input(30, defval = 30, minval = 2, maxval = 200, title = "PriceChannel Period") pcbars = input(1, defval = 1, minval = 1, maxval = 20, title = "PriceChannel Bars") usecol = input(true, "Use color-filter") usebod = input(true, "Use body-filter") needbg = input(false, defval = false, title = "Need trend Background?") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") src = close //PriceChannel lasthigh = highest(src, slowlen) lastlow = lowest(src, slowlen) center = (lasthigh + lastlow) / 2 //Trend ub = low > center ? 1 : 0 db = high < center ? 1 : 0 trend = sma(ub, pcbars) == 1 ? 1 : sma(db, pcbars) == 1 ? -1 : trend[1] //Body body = abs(close - open) abody = sma(body, 10) //Signals up = trend == 1 and (close < open or usecol == false) and (body > abody / 5 or usebod == false) dn = trend == -1 and (close > open or usecol == false) and (body > abody / 5 or usebod == false) //Lines plot(center, color = blue, linewidth = 3, transp = 0, title = "PriceChannel Center") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()