価格と数量の変化に基づくトレンド戦略


作成日: 2023-12-01 14:56:17 最終変更日: 2023-12-01 14:56:17
コピー: 0 クリック数: 601
1
フォロー
1619
フォロワー

価格と数量の変化に基づくトレンド戦略

概要

この戦略は,価格と取引量の累積的な変化を計算し,移動平均と組み合わせて長短のポジションのリストを構築し,トレンドを追跡する目的を達成する.

戦略原則

この戦略の核心指標は,価格の累積変化指標 ((MPVT) である.この指標は,価格と取引量の変化を介して,市場の人気と資金の流入と流出を反映している.具体的計算式は以下のとおりである.

rV = 交易量 / 50000
xCumPVT = 昨日xCumPVT + (rV * (最新收盘价 - 昨日收盘价) / 昨日收盘价)

LevelとScaleのパラメータを組み合わせて,価格変動のResidence指標を構成する.

nRes = Level + Scale * xCumPVT

住居指数は,価格と取引量の総合的な変化を反映している. N 日間のシンプル・モビング・エーバーを上を通るときは多; N 日間のシンプル・モビング・エーバーを下を通るときは空である.

優位分析

この戦略の利点は以下の通りです.

  1. 市場の人気と資金の流れを価格指数で判断することで,トレンドの転換点を間に合うように捉えることができます.
  2. パラメータ最適化と組み合わせて,戦略のパラメータを柔軟に調整し,異なる市場環境に適応させることができる.
  3. 逆入力パラメータで空き策を実現し,策略の使用シナリオを拡張できます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 価格指標は誤信号を発生しやすいため,突破が成立しない場合がある.パラメータを適切に調整したり,他の指標と組み合わせてフィルタリングを行うことができます.
  2. トレンド行情の適用性が優れ,整合行情は誤信号を発生しやすい.トレンドと波動率指標との組み合わせを検討することができる.
  3. パラメータ最適化の効果は,歴史周期に依存し,過適合のリスクが生じることがあります.パラメータを適切に調整するか,ステップアップ最適化方法を使用してください.

最適化の方向

この戦略は,以下の点で最適化できる:

  1. 異なる移動平均をテストし,加重移動平均,EMAなどを組み合わせて,どちらがより効果的かを調べることができます.

  2. RSI,KDなどの他の指標と組み合わせてフィルタリング信号を行うことで,誤信号発生の確率を減らすことができる.

  3. 異なるパラメータの組み合わせをテストして,最適なパラメータペアを探せます。また,パラメータをリアルタイムに更新させるステップ・オプティマイズ方法も採用できます。

  4. 戦略の安定性を高めるには,ブリン帯のようなトレンドフォロー指標と組み合わせることができます.

要約する

この戦略は,価格と取引量の変化の累積値を計算して,価格の変化の居住指標を設計し,市場資金の流入と流出状況を効果的に反映できる.これは典型的な価格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)