
この戦略は,価格と取引量の累積的な変化を計算し,移動平均と組み合わせて長短のポジションのリストを構築し,トレンドを追跡する目的を達成する.
この戦略の核心指標は,価格の累積変化指標 ((MPVT) である.この指標は,価格と取引量の変化を介して,市場の人気と資金の流入と流出を反映している.具体的計算式は以下のとおりである.
rV = 交易量 / 50000
xCumPVT = 昨日xCumPVT + (rV * (最新收盘价 - 昨日收盘价) / 昨日收盘价)
LevelとScaleのパラメータを組み合わせて,価格変動のResidence指標を構成する.
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)