この戦略は,適応性波動範囲を形成するために,特定の最近の期間で最も高い取引量と最も低い取引量を計算する.現在のサイクルの取引量がこの範囲を突破すると,取引シグナルが生成される.シグナル方向は,市場での突然の大規模な単一の取引を追跡するためのシンプルで効果的な戦略であるインヤングキャンドルスティックによって決定される.
基本的な論理は,最も最近のNサイクルにおける正と負の取引量の最高値と最低値を計算して適応性変動範囲を形成することです.判断を完了するために,陰陽線信号を考慮しながら,この範囲に基づいて現在の期間に突破が起こるかどうかを決定します.
特定の計算方法は次のとおりです.
この戦略の主な利点は以下の通りです.
この戦略にはいくつかのリスクもあります:
サイクルのパラメータを調整し,フィルタリングのための他の指標を組み込むことで最適化できます.
戦略はいくつかの方法で最適化できます.
この戦略は全体的にシンプルで実用的です.適応範囲とボリューム価格分析を組み合わせることで,一方的な爆発的な市場を効果的に捕捉することができます.しかし,最大限の効果を達成する前に,適切なパラメータの調整と補完ツールを必要とする誤った信号のリスクもあります.
/*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)