概要: この戦略は,特定の期間の最高値と最低値の差と閉値の幅の比率を計算して,価格がトレンド状態にあるかどうかを判断し,これを取引シグナル指標として使用します.
戦略原則: この戦略の基本指標は垂直水平フィルター (VHF) で,次の式で計算されます.
VHF = (最高(長さ) - 最低 ((長さ)) /SUM(ABS(近近[1]),長さ)
最長 (Highest) と最短 (Lowest) は,それぞれ長周期内の最高値と最低値である.数値は価格の幅範囲を反映し,分母は価格の実際の変動を反映する.それらの比率は価格の動向を判断することができる.VHFが特定の信号の
この戦略はシンプルで直感的です.トレンドを判断するために,価格変動範囲と実際の変動を比較することで,SMA,EMAおよび他の指標のみを頼る問題を回避し,価格そのものの特徴を無視します.しかし,この戦略はパラメータ最適化に敏感であり,長さおよび信号パラメータは,異なるサイクルと市場状況に適応するために調整する必要があります.
利点分析
リスク分析:
オプティマイゼーション方向:
概要: この戦略は,価格そのものの特徴に基づいて,傾向を直感的に決定し,単純で有効であり,さらなる調査,最適化,検証に値する. 基本的トレンド判断ツールとなり,定量的な取引戦略で広く使用することができます.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 27/04/2018 // Vertical Horizontal Filter was initiated by Adam White. It was first published // in a magazine called “Issues of Futures” in August, 1991. The Vertical Horizontal // Filter (VHF) is a very common Indicator used by traders to find out the Phase of // a Price Trend. Normally, a price trend can be in a Trending Phase or a Congestion // Phase/Choppy Movement Phase. Adam White created this particular Technical Indicator // to determine whether prices are trending in a particular direction or are they going // through a transitional period. He used it to measure the range of Futures available // in the market. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Vertical Horizontal Filter Backtest") Length = input(28, minval=1) Signal = input(0.4, step=0.01) reverse = input(false, title="Trade reverse") hline(Signal, color=blue, linestyle=line) xHH = highest(high, Length) xLL = lowest(low, Length) xNumerator = abs(xHH - xLL) xDenominator = sum(abs(close - close[1]), Length) xVHF = xNumerator / xDenominator pos = iff(xVHF > Signal, 1, iff(xVHF < Signal, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xVHF, color=blue, title="VHF")