ARGO 범위를 뚫는 전략

저자:차오장, 날짜: 2023-10-07 16:04:16
태그:

전반적인 설명

ARGO 범위 브레이크아웃 전략은 채널 브레이크아웃 원칙에 영감을 받은 4시간 범위 거래 시스템이다. 중요한 가격 움직임을 포착하기 위해 4시간 시간 내에 거래 신호를 생성한다.

전략 논리

이 전략은 먼저 채널 범위를 형성하기 위해 정의된 기간 동안 가장 높은 최고 (upBound) 및 가장 낮은 최저 (downBound) 를 계산합니다. 그 다음 볼링거 채널의 중간선, 상위 대역 및 하위 대역을 계산합니다. 채널 방향이 변경되면 구매 및 판매 신호가 유발됩니다.

구체적으로, 전략은 N 기간 동안의 상향 및 하향을 계산합니다. 그 다음 비율 포인트 (디폴트 1) 및 허용 Tol (디폴트 1000) 를 설정하여 채널의 상위 한계 BoundUp 및 하위 한계 BoundDown를 계산합니다. 가격이 하위 한계를 넘을 때 구매 신호가 유발됩니다. 가격이 상위 한계를 넘을 때 판매 신호가 유발됩니다.

또한 스톱 로즈 및 트레이프 조건이 구성되어 있습니다. 긴 트레이드의 스톱 로즈는 하위 한계 근처에, 짧은 트레이드의 경우 상위 한계 근처에 설정되어 있습니다. 트레이프 수익은 입력 목표 이익/손실 비율에 기반합니다.

이점 분석

  • 시장 변동에 적응하기 위해 볼링거 채널 원리를 사용합니다.
  • 4시간 시간 프레임은 중요한 가격 변동을 포착하는 것을 목표로합니다.
  • 브레이크아웃 전략을 결합하면 트렌드 반전을 감지 할 수 있습니다.
  • 스톱 로스 및 수익을 취하는 거래별 리스크/어워드 컨트롤

위험 과 해결책

  • 거짓 탈출에 취약하고 함정에 갇혀 있습니다.
  • 큰 시간 프레임은 손실을 확대 할 수 있습니다.
  • 부적절한 트레일링 스톱으로 인해 허용 할 수없는 손실이 발생할 수 있습니다.
  • 해결책:
    • 가짜 브레이크에 대한 채널 매개 변수를 최적화
    • 위치 크기와 스톱 로스 수준을 신중하게 결정합니다.
    • 엄격한 리스크 통제를 위해 스톱 로스/이익 취득을 강화합니다.

최적화 방향

  • 시장 변동성에 더 잘 적응하기 위해 채널 매개 변수를 최적화합니다.
  • 더 나은 위험/이익을 위해 스톱 로스/이익 취득을 동적으로 조정합니다.
  • 함정을 피하기 위해 무역 필터를 추가하고 높은 것을 추구하고
  • 거짓 신호 를 피하기 위해 추가 요인 을 포함 시키십시오
  • 더 나은 결정을 위해 트렌드 및 변동성 지표를 결합
  • 다른 시장 조건에 대비한 자본 관리 최적화

결론

ARGO 범위 브레이크아웃 전략은 볼링거 채널과 브레이크아웃 원리에 기반한 4시간 중장기 거래 시스템이다. 단기 거래와 비교하면 중장기 시간 프레임에서 트렌드 반전을 잡는데 더 초점을 맞추고 있다. 적절한 최적화와 함께, 다양한 시장 환경에 적응하고 위험을 조절하면서 상당한 이윤을 얻을 수 있다. 전략은 트렌드 추종과 위험 관리를 균형 잡는다. 그것은 권장 중장기 브레이크아웃 거래 시스템이다.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-06 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

// strategy("ARGO_BAND-STRATEGY", overlay=true,default_qty_value=10000,scale=true,initial_capital=100,currency=currency.USD)

// A 4hours Breakout Strategy work in progres..it's  a starting point, thanks to all tradingview community
//How to use: test it only on gbpjpy 240 min, wait the end of the candle to place next order, red and blue dots are short and long stop orders, Targets are Upper and lowerBands. Test it and enjoy but use at your own risk..
//2016 © F.Peluso


risk=input(title="Risk", defval=1)
length = input(title="Length",  minval=1, maxval=1000, defval=47)
stopBound=input(title="Previous",defval=10)
upBound = highest(high, length)
downBound = lowest(low, length)
point=1
tol=1000
stopT=input(title="Stop", defval=5,minval=1, maxval=5)
dev =input(title="Tolerance",defval=2,minval=1, maxval=5)
limitBoundUp=( highest(high, length))*(point-(dev/tol))
limitBoundDown=downBound/(point-(dev/tol))
plot(limitBoundUp[1],linewidth = 3,style = circles, color = navy,trackprice=true),transp=0
plot(limitBoundDown[1],linewidth = 3,style = circles, color = red,trackprice=true,transp=0)
mezzalinea=((upBound+downBound)/2)

// Color Bands

colo = ((close>limitBoundUp[1]) ? blue : (close<upBound[1]) ? white : na)
UpB = plot(upBound[1], title="Upper Bound", style=linebr, linewidth=1, color=colo)
DownB = plot(limitBoundUp[1] ,title="Lower Bound", style=linebr, linewidth=2, color=colo)
fill(UpB, DownB, color=colo, transp=90)

plot(limitBoundUp[2]/(point+(stopT/tol)),color=colo)

coloS = ((close<limitBoundDown[1]) ? red : (close>downBound[1]) ? white : na)
DB = plot(downBound[1], title="Upper Bound", style=linebr, linewidth=1, color=coloS)
DoB = plot(limitBoundDown[1] ,title="Lower Bound", style=linebr, linewidth=2, color=coloS)
fill(DB, DoB, color=coloS, transp=90)

plot(limitBoundDown[2]*(point+(stopT/tol)),color=coloS)

// Strategy

past=input(title="Past", defval=5)
buy=(crossover(close,limitBoundUp))
closebuy=cross(high[past],upBound[0])
stopbuy = limitBoundUp[2]/(point+(stopT/tol))

sell=crossunder(close,limitBoundDown)
closesell=cross(low[past],downBound[0])


if (not na(close[length]))
    if (buy)
        strategy.entry("ChBrkLE", strategy.long,stop=limitBoundUp - syminfo.mintick,comment="Long I")   

strategy.close("ChBrkLE",when=closebuy)

if (not na(close[length]))
    if (sell)
        strategy.entry("ChBrkSE", strategy.short,stop=limitBoundDown + syminfo.mintick,comment="Short I")   

strategy.close("ChBrkSE",when=closesell)

Target =input(0) * 10 
Stop = input(90) * 10 
Trailing = input(40) * 10
CQ = 100
TPP = (Target > 0) ? Target : na
SLP = (Stop > 0) ? Stop : na
TSP = (Trailing > 0) ? Trailing : na
strategy.exit("Out Short", "ChBrkSE", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Out Long", "ChBrkLE", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

더 많은