ARGO 밴드 브레이크아웃 전략


생성 날짜: 2023-10-07 16:04:16 마지막으로 수정됨: 2023-10-07 16:04:16
복사: 2 클릭수: 712
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

ARGO 파동 돌파구 전략은 채널 돌파구를 기반으로 한 4 시간 파동 거래 전략이다. 이 전략은 부린 채널과 돌파구 원칙을 결합하여 4 시간 동안 거래 신호를 형성하여 큰 가격 변동을 포착한다.

전략 원칙

이 전략은 먼저 일정 주기 동안의 최고 가격과 최저 가격으로 채널을 형성하는 범위를 계산한다. 그 다음 채널의 중간선과 채널의 위아래 경로의 브린 라인을 계산한다. 채널의 방향이 전환될 때, 구매 및 판매 신호를 형성한다.

구체적으로, 전략은 먼저 N주기 (대저 47주기) 내의 최고 가격 upBound와 최저 가격 downBound를 계산하여 통로의 상하 경계를 형성한다. 그리고는 오차율 point (대저 1) 와 용량차 tol (대저 1000) 을 설정하고, 통로의 상하 경계를 BoundUp와 하하 경계를 BoundDown으로 계산한다. 가격이 상하 경로를 통과할 때 구매 신호를 생성하고, 가격이 하하 경로를 통과할 때 판매 신호를 생성한다.

또한, 이 전략은 스톱스트로프 조건을 설정한다. 스톱스트로프를 하단 라인 근처에 구매하고, 스톱스트로프를 상단 라인 근처에 판매한다.

우위 분석

  • 부린 채널 원리를 사용하여 시장의 변동률에 따라 채널 범위를 조정하여 노이즈 거래의 영향을 받지 않도록합니다.
  • 4시간 주기로 운용되며, 큰 가격 변동을 포착하여 수익을 창출할 수 있습니다.
  • 브레이크 전략과 결합하여 트렌드 전환점에서 거래 신호를 형성하여 가격 폭등을 적시에 잡을 수 있습니다.
  • 스톱로스 스톱을 설정하여 거래당 리스크/이익 비율을 제어합니다.

위험과 해결

  • 부린 통로 거래는 가짜 해킹으로 인해 감금될 위험이 있습니다.
  • 대주기 운영, 손해 확산 위험
  • 추적 중지 설정이 부적절하며, 감당할 수 없는 큰 손실이 발생할 수 있습니다.
  • 해결책:
    • 허위 돌파구를 방지하기 위해 통로 파라미터를 합리적으로 설정합니다.
    • 조심스럽게 포지션과 스톱포드를 결정하세요.
    • 정지/손실 전략을 최적화하고 단편 거래 위험을 엄격히 통제합니다.

최적화 방향

  • 부린 통로 매개 변수를 최적화하여 통로를 시장의 변동에 가깝게 만듭니다.
  • 역동적인 리스크/이익 비율 조정을 위한 H&L 전략의 최적화
  • 거래 필터링 조건을 추가하여 고점을 쫓는 것을 피하십시오.
  • 가짜 침입을 방지하기 위한 여러 요소의 판단
  • 트렌드 및 변동률 지표와 결합하여 의사 결정의 정확성을 향상시킵니다.
  • 자본 관리 전략을 최적화하고 시장 상황에 따라 입장을 조정합니다.

요약하다

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)