ARGO Range Breakout Strategy
The ARGO Range Breakout Strategy is a 4-hour range trading system inspired by channel breakout principles. It generates trading signals within a 4-hour timeframe to capture significant price movements.
Overview
The ARGO Range Breakout Strategy is a 4-hour range trading system inspired by channel breakout principles. It generates trading signals within a 4-hour timeframe to capture significant price movements.
Strategy Logic
The strategy first calculates the highest high (upBound) and lowest low (downBound) over a defined period to form the channel range. It then computes the midline, upper band and lower band of the Bollinger Channel. Buy and sell signals are triggered when the channel direction changes.
Specifically, the strategy computes the upBound and downBound over N periods (default 47). It then sets a ratio point (default 1) and tolerance tol (default 1000), to calculate the upper limit limitBoundUp and lower limit limitBoundDown of the channel. A buy signal is triggered when the price breaks above the lower limit. A sell signal is triggered when the price breaks below the upper limit.
In addition, stop loss and take profit conditions are configured. The stop loss for long trades is set near the lower limit, while that for short trades is near the upper limit. The take profit is based on the input target profit/loss ratio.
Advantage Analysis
- Utilizes Bollinger Channel principles to adapt to market volatility
- 4-hour timeframe aims to capture significant price swings
- Combining breakout strategy helps detect trend reversals
- Stop loss and take profit controls risk/reward per trade
Risks and Solutions
- Vulnerable to false breakouts and being trapped
- Large timeframes may lead to widened losses
- Improper trailing stop may cause unacceptable losses
- Solutions:
- Optimize channel parameters against false breakouts
- Carefully determine position sizing and stop loss levels
- Enhance stop loss/take profit for strict risk control
Optimization Directions
- Optimize channel parameters for better fit to market volatility
- Dynamically adjust stop loss/take profit for better risk/reward
- Add trade filters to avoid traps and chasing highs
- Incorporate additional factors to avoid false signals
- Combine trend and volatility indicators for better decisions
- Optimize capital management for different market conditions
Conclusion
The ARGO Range Breakout Strategy is a 4-hour medium-term trading system based on Bollinger Channel and breakout principles. Compared to short-term trading, it focuses more on catching trend reversals on medium-term timeframes. With proper optimization, it can adapt to different market environments and achieve significant profits while controlling risk. The strategy balances trend following and risk management. It is a recommended medium-term breakout trading system.
Parameters
| Name | Default | What it controls |
|---|---|---|
| v_input_1 | true | Risk |
| v_input_2 | 47 | Length |
| v_input_3 | 10 | Previous |
| v_input_4 | 5 | Stop |
| v_input_5 | 2 | Tolerance |
| v_input_6 | 5 | Past |
| v_input_7 | false | Target |
| v_input_8 | 90 | Stop |
| v_input_9 | 40 | Trailing |
Source Pine Script
/*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)Published by ChaoZhang on the FMZ strategy square · last modified 2023-10-07. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/ARGO-Range-Breakout-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- Adaptive Bollinger Breakout with Moving Average Quantitative Strategy SystemPine Script · Breakout · 1h
- BB Breakout StrategyPine Script · Breakout · 1d
- Bollinger Band Breakout Trend Following StrategyPine Script · Breakout · 1d
- Bollinger Band Channel Breakout Trading StrategyPine Script · Breakout · 1d
- Bollinger Band T3 Moving Average StrategyPine Script · Breakout · 10m
- Bollinger Bands Breakout Trading StrategyPine Script · Breakout · 1h