Cette stratégie calcule le volume de transaction le plus élevé et le plus bas au cours d'une certaine période récente pour former une plage de fluctuation adaptative. Lorsque le volume de transaction du cycle actuel dépasse cette plage, des signaux de trading sont générés.
La logique de base consiste à calculer les valeurs les plus élevées et les plus faibles des volumes de transactions positifs et négatifs dans les N cycles les plus récents pour former une plage de fluctuation adaptative. Déterminez si une percée se produit dans la période en cours en fonction de cette plage tout en tenant compte du signal de ligne Yin Yang pour compléter le jugement.
Le processus de calcul spécifique est le suivant:
Les principaux avantages de cette stratégie sont les suivants:
La stratégie comporte également certains risques:
L'ajustement des paramètres du cycle et l'intégration d'autres indicateurs de filtrage peuvent être optimisés.
La stratégie peut être optimisée de plusieurs façons:
La stratégie est globalement simple et pratique. En combinant l'analyse de la fourchette adaptative et l'analyse des prix en volume, elle peut effectivement capturer des marchés explosifs unilatéraux. Cependant, il existe également un certain risque de faux signaux, nécessitant des ajustements de paramètres appropriés et des outils complémentaires avant de pouvoir obtenir un impact maximal.
/*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)