
이 전략은 부린띠와 평선 조합을 사용하여 트렌드를 판단하고 입장을 취하는 양적 거래 전략이다. 부린띠의 트렌드 인식 능력과 이동 평균의 파동 효과를 결합하여 시장의 트렌드 방향을 효과적으로 식별하여 트렌드 방향의 상황에서 입장을 취한다.
부린 벨트 통로를 이용한 최고 가격과 최저 가격을 계산하여 시장의 추세를 판단하는 방법
태양열 개체 크기를 계산하여 정지 및 역 신호를 판단한다.
트렌드 방향을 확인한 후 통로 방향으로 입구
이동 평균을 사용하여 필터링하여 잘못된 신호를 피하십시오.
브린 띠는 가격 채널과 트렌드 방향을 명확하게 판단하고, 이동 평균은 파동을 가합니다. 두 가지 결합으로 트렌드를 효과적으로 식별하고, 시장의 갑작스러운 사건의 영향을 피하고, 시스템의 안정성을 보장합니다.
일선 주체의 크기의 평균값을 계산하여 현재 주기의 주체 크기와 비교하면 트렌드 반전을 명확하게 판단하고, 손해 줄이는 포지션을 수행하여 전략 위험을 효과적으로 제어 할 수 있습니다.
전략은 이동 평균과 통로 방향이 조화를 이루는 조건에서 입금하고, 일선 실체 크기 규칙을 사용하여 중지하여 전체 시스템 입금 및 중지 규칙을 매우 명확하게 체계화한다.
위기상황에서 가격이 여러 번 하락을 경험할 수 있어 반복적으로 소액 손실이 발생할 수 있다. 이 시점에서는 포지션 규모를 줄여서 단편 손실을 줄여야 한다.
강세를 보인 경우, 단기간의 가격 회전은 스톱로스 규칙을 수 있습니다. 이 경우 스톱로스가 적절하게 완화되어 트렌드에 따라 움직일 수 있습니다.
이동 평균과 브린 밴드의 파라미터 설정이 잘못되어 신호를 잘못 인식하는 경우가 발생할 수 있다. 신호가 안정적이고 신뢰할 수 있도록 파라미터를 적절히 최적화해야 한다.
이동 평균의 변수를 조정하여 부드러움을 줄이고 추세 변화를 더 빨리 발견 할 수 있습니다.
추적 중지, ATR 중지 등과 같은 다른 중지 규칙을 시도하여 최적의 중지 방법을 선택하십시오.
트렌드를 판단하고 거래 신호를 내보내는 데 도움을 주는 많은 역사 데이터에 기반한 훈련 모델
이 전략은 종합적으로 트렌드 판단과 위험 통제를 고려하고, 브린 밴드 통로와 이동 평균을 사용하여 트렌드 식별을 하고, 반사선 엔터티 크기를 사용하여 상실을 저지한다. 전략은 체계성이 강하며, 양적 규칙이 명확하여 과잉 수익을 얻기 위해 위험을 효과적으로 제어 할 수 있다. 이후 변수 최적화 및 기계 학습과 같은 방법으로 계속 개선하여 전략을 더 안정적으로 신뢰할 수 있다.
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Bands Scalper Strategy v1.3", shorttitle = "Scalper str 1.3", 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 = ema(body, 30)
candle = high - low
//Engulfing
min = min(open, close)
max = max(open, close)
bar = close > open ? 1 : close < open ? -1 : 0
upeng = bar == 1 and bar[1] == -1 and min >= min[1] and max <= max[1] ? 1 : 0
dneng = bar == -1 and bar[1] == 1 and min >= min[1] and max <= max[1] ? 1 : 0
//Signals
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)