
이 전략은 부린띠 기반의 트렌드 추적 전략이다. 부린띠를 사용하여 주식 가격의 상하 범위를 계산하고, K선 엔티티와 결합하여 트렌드 방향을 판단하고, 트렌드 범위를 돌파할 때 롱링/쇼팅 작업을 수행한다. 이 전략은 명백한 트렌드가있는 주식에 적용되며, 트렌드의 중장선 수익 기회를 잡을 수 있다.
이 전략은 부린띠의 상단, 중선, 하단으로 가격대를 판단한다. 부린띠의 상단과 하단 두 대의 대선으로 가격을 포괄한다. 중선은 평균선이며, 대역폭은 가격의 변동 정도에 따라 변한다. 가격이 아래에서 부린띠를 깰 때, 가격이 상단으로 부린띠를 깰 때, 가격이 상단으로 부린띠를 깰 때, 가격이 아래로 부린띠를 깰 때, 가격이 아래로 부린띠를 깰 때, 공백 신호이다.
브린지대 간격 돌파가 트렌드 방향을 판단한 후, 전략은 K선 개체 방향과 결합하여 확인한다. K선 개체 방향이 트렌드 방향과 일치하는 경우, 다목적 트렌드에서 양선 (陽線) 이 나타나면, 포지션 개시 작업을 수행한다. K선 개체 방향이 트렌드 방향과 반대되는 경우, 다목적 트렌드에서 음선 (陰線) 이 나타나면, 신호를 건너 낸다.
구체적으로, 전략의 거래 신호 생성 규칙은 다음과 같습니다.
부린의 상단과 중간에 있는 2개의 선을 계산해서 가격의 범위를 알 수 있습니다
가격의 하향이 브린을 넘어서 오프라인으로 올 때, 다중 신호로 판단합니다.
K선이 양선인 경우, 트렌드를 확인하고 포지션을 개시합니다.
가격이 위에서 아래로 브린의 하락선을 통과하면 공백 신호로 판단됩니다.
K 선이 음선이라면, 트렌드를 확인하고, 빈 포지션을 수행합니다.
주어진 비율로 정지 또는 중지
브린 벨트 영역을 통해 진입을 돌파하고, K선 엔티티 방향과 결합하여 2차 확인을 수행하면, 트렌드 방향을 효과적으로 식별할 수 있으며, 트렌드 초기에 더 나은 ENTRY를 얻고, 트렌드 중기에 더 나은 출구를 얻을 수 있다.
이것은 전형적인 트렌드 추적 전략으로 다음과 같은 장점이 있습니다.
브린 띠를 사용하여 다양한 변동률의 주식에 대해 파격 범위를 동적으로 조정할 수 있습니다.
K선 엔티티와 결합하여 2차 확인을 수행하여 가짜 돌파구를 필터링 할 수 있습니다.
중장선 지분을 사용하여 거래 빈도를 낮추고 거래 비용과 슬라이드 손실을 줄이는데 도움이 됩니다.
중장기 트렌드를 추적하고, 단기적인 흔들림을 피하면, 더 나은 위험-수익 비율을 얻을 수 있습니다.
프로그램 양적 실행, 피드백 결과 우수, 리드 디스크 성능은 안정적이다
전략 개념 명확하고 이해하기 쉽고 확장할 수 있는 공간
브린줄을 통해 트렌드 방향을 판단하고, K선으로 진입 시기를 확인하여 중·장선 수적 우위를 가져오는 수익 기회를 효과적으로 포착할 수 있다. 이것은 강력한 실전성을 가진 전략이다.
이 전략에는 몇 가지 위험도 있습니다.
돌파 실패의 위험. 린 벨트 돌파는 본질적으로 확률 사건이며, 반드시 가짜 돌파가 있을 가능성이 있다.
반전 위험. 중장선 추세에도 반전이 발생할 수 있으며, 위험을 제어하기 위해 합리적인 스톱 스포트 포인트를 설정해야 한다.
매개 변수 최적화 위험. 브린 대역과 스톱포트는 상이한 주식에 따라 합리적으로 최적화해야 하며, 그렇지 않으면 전략 안정성에 영향을 미칩니다.
과도한 최적화 위험. 역사 데이터에 대한 과도한 최적화 매개 변수는 전략 커브 피팅을 초래할 수 있다.
실 디스크 실행 위험. 프로세스 리테크와 실 디스크 실행에도 약간의 편차가 있을 수 있다.
위와 같은 위험은 다음과 같은 방법으로 개선될 수 있습니다.
부린 대역 변수를 최적화하여 적절한 대역폭을 선택하십시오.
거래량과 같은 다른 요소들과 함께 트렌드를 확인합니다.
동적으로 스톱로스를 조정하여 과도한 반전이 손실을 초래하지 않도록 한다.
Walk Forward Analysis와 같은 방법을 사용해서 너무 잘 어울리지 않도록 한다.
주문 방식을 최적화하고, 실디 디스크 실행 효율을 제어한다.
이 전략은 다음과 같은 부분에서 더 개선될 수 있습니다.
KDJ, MACD 등과 같은 더 많은 지표 확인 추세와 결합하여 신호 정확도를 향상시킵니다.
기계학습 방법을 사용하여 고정된 변수보다는 브린띠 변수를 동적으로 최적화한다.
거래 시점 근처에 거래 장을 설정하여 더 정확한 거래 신호를 생성합니다.
동적 추적 중지 또는 부분 중지 방법을 사용하여 중지 중지 손실 전략을 최적화하십시오.
자금 관리 최적화를 도입하고, 동적으로 포지션을 조정하고, 단위 위험을 제어한다.
고급 실행 방식과 결합하여 실 디스크 효과를 개선하고 거래 비용과 미끄러짐을 줄입니다.
시장 환경에 대한 판단을 높이고, 특정 상황에서 전략을 종료하고, 위험을 통제한다.
더 많은 기술 지표와 최적화 방법을 도입함으로써 전략의 안정성과 수익성을 더욱 강화할 수 있으며, 더 나은 피드백과 실적 효과를 얻을 수 있습니다.
이 전략은 전형적인 트렌드 추적 전략으로, 핵심 아이디어는 부린대를 동적 영역으로 사용하여 가격 트렌드 방향을 판단한다. K선 엔티티와 결합하여 두 번째 확인을 하고, 트렌드 초기에 부린대를 돌파점으로 입시하고, 트렌드 중기에서의 양적 우위를 목표로 한다.
이 전략은 브린 띠 판단 트렌드, K 라인 확인 신호, 거래 빈도 감소, 프로그램 실행 등의 장점을 가지고 있다. 또한 특정 가짜 돌파구 위험, 스톱 로저 최적화 어려움, 실장 효과 편차 등의 문제가 있다. 더 많은 기술 지표, 동적 최적화 매개 변수 및 고급 실행 수단 등을 도입함으로써 전략의 안정성과 실장 성능을 더욱 향상시킬 수 있다.
전반적으로, 이 전략은 전형적인 트렌드 추적 전략으로, 핵심 아이디어는 명확하고, 구현하기 쉽고, 강력한 실행 가능성을 가지고 있다. 지속적인 최적화와 엄격한 위험 통제 하에서, 양적 거래 시스템의 효과적인 전략 모듈이 될 수 있다.
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close
//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd1 = center + distsma / 2
ld1 = center - distsma / 2
//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]
//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Body
body = abs(close - open)
smabody = sma(body, 100)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0
if up7 == 1 or up8 == 1
strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)
if dn7 == 1 or dn8 == 1
strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)