
Cette stratégie forme une plage de fluctuation adaptative en calculant les valeurs maximales et minimales des transactions de la dernière période donnée. Elle génère un signal de transaction lorsque le volume des transactions de la période en cours dépasse cette plage. La direction du signal est considérée comme une stratégie simple et efficace pour suivre les grandes surprises du marché.
La logique centrale est de calculer le plus haut minimum de transactions positives et négatives sur les N cycles les plus récents, formant une plage d’oscillation adaptative. Sur la base de cette plage, il est possible de déterminer si une rupture a eu lieu à ce moment-là.
Le processus de calcul est le suivant:
Les principaux avantages de cette stratégie sont les suivants:
Cette stratégie comporte aussi des risques:
L’optimisation peut être réalisée en ajustant le cycle des paramètres, en combinant le filtrage avec d’autres indicateurs.
Cette stratégie peut être optimisée dans les directions suivantes:
Cette stratégie est globalement simple et pratique et permet de capturer efficacement les situations unilatérales soudaines grâce à la combinaison de la portée et du coût de l’adaptation. Cependant, il existe un certain risque de fausses informations, qui nécessitent un ajustement approprié des paramètres et l’utilisation d’autres outils pour obtenir le maximum d’efficacité.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EvoCrypto
//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)
// INPUTS {
Range_Length = input(5, title="Range Length", minval=1)
Heikin_Ashi = input(true, title="Heikin Ashi Colors")
Display_Bars = input(true, title="Show Bar Colors")
Display_Break = input(true, title="Show Break-Out")
Display_Range = input(true, title="Show Range")
// }
// SETTINGS {
Close = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
Open = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
Positive = volume
Negative = -volume
Highest = highest(volume, Range_Length)
Lowest = lowest(-volume, Range_Length)
Up = Highest > Highest[1] and Close > Open
Dn = Highest > Highest[1] and Close < Open
Volume_Color =
Display_Break and Up ? color.new(#ffeb3b, 0) :
Display_Break and Dn ? color.new(#f44336, 0) :
Close > Open ? color.new(#00c0ff, 60) :
Close < Open ? color.new(#000000, 60) : na
// }
//PLOTS {
plot(Positive, title="Positive Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Negative, title="Negative Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Display_Range ? Highest : na, title="Highest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
plot(Display_Range ? Lowest : na, title="Lowest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
barcolor(Display_Bars ? Volume_Color : na)
// }
if (Up)
strategy.entry("Long Entry", strategy.long)
if (Dn)
strategy.entry("Short Entry", strategy.short)