Стратегия ARGO Range Breakout - это 4-часовая торговая система диапазона, вдохновленная принципами прорыва канала.
Стратегия сначала вычисляет самый высокий максимум (upBound) и самый низкий минимум (downBound) за определенный период, чтобы сформировать диапазон канала. Затем она вычисляет среднюю линию, верхнюю полосу и нижнюю полосу канала Боллинджера. Сигналы покупки и продажи запускаются при изменении направления канала.
В частности, стратегия рассчитывает расходный период (по умолчанию 47). Затем устанавливается точка соотношения (по умолчанию 1) и толерантность (по умолчанию 1000), чтобы рассчитать верхний предел BoundUp и нижний предел BoundDown канала. Сигнал покупки запускается, когда цена превышает нижний предел. Сигнал продажи запускается, когда цена превышает верхний предел.
Кроме того, конфигурируются условия стоп-лосса и стоп-лосса прибыли. Стоп-лосс для длинных сделок устанавливается близко к нижней границе, в то время как для коротких сделок - близко к верхней границе. Прибыль основана на вводном целевом соотношении прибыли/убытка.
Стратегия ARGO Range Breakout - это 4-часовая среднесрочная торговая система, основанная на принципе Bollinger Channel и принципе Breakout. По сравнению с краткосрочной торговлей, она больше фокусируется на поимке обратных тенденций в среднесрочных временных рамках. При надлежащей оптимизации она может адаптироваться к различным рыночным условиям и достигать значительной прибыли, контролируя риск. Стратегия балансирует следующее за трендом и управление рисками.
/*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)