この戦略の名称は,価格とボリュームの変化に基づいた修正価格・ボリュームトレンド戦略である.この戦略は,トレンドを追跡するために,ロングとショートポジションを確立するために移動平均線と組み合わせて,価格とボリュームの累積変化を計算する.
この戦略の核心指標は,修正価格量傾向 (MPVT) 指標である.この指標は,価格と取引量の変化を通じて市場の熱意と資本の流入と流出を反映している.具体的な計算式は以下のとおりである.
rV = Volume / 50000
xCumPVT = Yesterday's xCumPVT + (rV * (Latest Close Price - Yesterday's Close Price) / Yesterday's Close Price)
次に,レベルとスケールパラメータと組み合わせて,価格・容量変化住宅指標を構成します.
nRes = Level + Scale * xCumPVT
レジデンス指標は価格とボリュームの組み合わせた変化を反映する. N日間の単純な移動平均値を超えると,ロング. N日間の単純な移動平均値を下回ると,ショート.
この戦略の主な利点は以下の通りです.
市場熱意と資本流通の方向性を価格・量指標によって判断することで 傾向の転換点を及ばせるのです
戦略パラメータを柔軟に調整し,パラメータを最適化して異なる市場環境に適応する.
短縮戦略は,戦略の適用シナリオを拡大するために逆入力パラメータを設定することによって実現できます.
この戦略にはいくつかのリスクもあります:
価格・ボリューム指標は誤った信号に易易く,突破が成立しない場合もあります.パラメータは調整またはフィルタリングのために他の指標と組み合わせることができます.
トレンド・マーケットに適しており,レンジ・バインド・マーケットで誤った信号を生む可能性があります.トレンド・ボラティリティ・インジケーターと組み合わせることを検討できます.
パラメータ最適化の効果は,過去サイクルに依存し,過剰なフィットメントリスクを引き起こす可能性があります. パラメータを適切に調整するか,段階的な最適化方法を採用する必要があります.
この戦略を最適化するために,次の側面を考慮することができます:
異なる移動平均値,例えば重度の移動平均値,EMAなどをテストして,どちらの組み合わせがうまくいくか確認します.
RSI,KDなど他の指標と組み合わせてシグナルをフィルターし,誤ったシグナルの可能性を減らす.
最適パラメータペアを見つけるために異なるパラメータ組み合わせをテストする. ステップバイズ最適化方法もリアルタイムでパラメータを更新するために採用することができます.
戦略の安定性を向上させ,ボリンジャー・バンドなどのトレンド指数と組み合わせる.
この戦略は,価格とボリュームの累積的変化を計算し,資本の流入と流出を効果的に反映できる価格・ボリューム変化居住指標を設計する.これは典型的な価格・ボリュームCOMBO戦略である.この戦略はシンプルで実用的で,トレンド市場に適しており,パラメータ最適化と指標組み合わせ最適化を通じて大きな最適化スペースを有し,非常に推奨されるトレンド戦略である.
/*backtest start: 2023-10-31 00:00:00 end: 2023-11-20 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/07/2018 // The related article is copyrighted material from // Stocks & Commodities. // Strategy by HPotter. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Modified Price-Volume Trend Backtest", shorttitle="MPVT") Level = input(0) Scale = input(1) Length = input(23) reverse = input(false, title="Trade reverse") xOHLC4 = ohlc4 xV = volume rV = xV / 50000 xCumPVT = nz(xCumPVT[1]) + (rV * (xOHLC4 - xOHLC4[1]) / xOHLC4[1]) nRes = Level + Scale * xCumPVT xMARes = sma(nRes, Length) pos = iff(nRes > xMARes, 1, iff(nRes < xMARes, -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(nRes, color=red, title="MPVT", linewidth = 2) plot(xMARes, color=blue, title="MPVT", linewidth = 2)