モメンタム加速拡張価格ボリュームトレンド戦略


作成日: 2024-01-18 16:32:28 最終変更日: 2024-01-18 16:32:28
コピー: 2 クリック数: 556
1
フォロー
1617
フォロワー

モメンタム加速拡張価格ボリュームトレンド戦略

概要

拡張価格量トレンド (EPVT) 戦略は,技術指標の組み合わせ戦略である.それは,潜在的トレンド反転点と動力の転換のタイミングを識別するために,動力の加速指標を他の補助指標と組み合わせる.

戦略原則

この戦略の核心指標は,拡大価格トレンド ((EPVT) である.計算方法は,累積取引量 * 価格の上昇・下降である.それから,一定の周期におけるEPVTの最大値と最小値を計算して,基準区間を得る.EPVT指標曲線は,EPVTと基準区間の差値曲線である.

EPVT指針曲線が0軸を上に向かって通過すると,買取圧力の強化を示し,多信号が発生する。反対にEPVTが0軸を下に向かって通過すると,空気信号が発生する。

信号の質を向上させるために,戦略は,トレンドの転換の信頼性を確認するために,シンプル・ムービング・アベアンの使用を補助する.

優位分析

この戦略は,トレンド,動力,取引量の3次元指標を組み合わせて,市場での買買の意向と強さをより全面的に判断できます. 拡張価格量トレンド指標を使用すると,短期間に突発的な過剰な動きを識別するのに良い作用があり,市場の転換点を捉えることができます.

3列のストップポジションをオフに設定し,自分のリスク好みに応じて異なるストップ比率を選択できます.

リスク分析

この戦略は指標曲線の形状特性に依存し,非典型な動きが誤った信号を発する.また,3バーの反転などの状況も,不必要な反転開設につながる.

適切なパラメータを調整したり,他の波指標を追加して最適化することができる. 止損策は,単発損失を減らすこともできる.

最適化の方向

  1. パラメータ最適化.例えば,EPVT周期のパラメータを調整し,最適なパラメータ組み合わせを探します.

  2. 傾向フィルター条件を追加する.例えば,EPVT信号に基づいて価格チャネルまたは均等線の方向を判断する.

  3. 固定数値のストップまたはATRのストップを設定する.

要約する

動力の加速拡大価格トレンド戦略は,EPVT指標を通して市場の売買意向の変化を掘り下げ,潜在的トレンド転換点を捕捉する. 投資家の異なるリスク好みを満たすため,3基の異なる割合の止まり出場を設定する. この戦略は,さらなるテストと最適化の価値があり,市場の短期的な動きの転換を識別する効果的なツールになる.

ストラテジーソースコード
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Extended Price Volume Trend", overlay=true )//@version=5
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
    runtime.error("No volume is provided by the data vendor.")
src = close
lenght = input(200,"Trend Lenght")   
vt = ta.cum(ta.change(src)/src[1]*volume)
upx = ta.highest(vt,lenght)
downx = ta.lowest(vt,lenght)
basex = (upx +downx)/2
VTX = vt - basex
VTY = ta.valuewhen(ta.cross(VTX,0),close,0)
plot(VTY, color=color.black, title="Extended-PVT")

/////////////////////// STRATEGY ////////////////
/////////////////////// TAKE PROFIT SECTION ////////////////
longConditionx = ta.crossover(close,VTY)
ShortConditionx = ta.crossunder(close,VTY)
tp1 = input.int(10, minval=1,title = "TP-1")
tp2 = input.int(20, minval=1,title = "TP-2")
tp3 = input.int(30, minval=1,title = "TP-3")

ematp = ta.ema(close,2)
TPTAKA1S = VTY*(1-tp1/100)
plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1)
TPTAKA2S = VTY*(1-tp2/100)
plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1)
TPTAKA3S = VTY*(1-tp3/100)
plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1)

TPTAKA1B = VTY*(1+tp1/100)
plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1)
TPTAKA2B = VTY*(1+tp2/100)
plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1)
TPTAKA3B = VTY*(1+tp3/100)
plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1)

BUYTP = ta.crossunder(close,VTY) or ta.crossunder(ematp,TPTAKA1B) or ta.crossunder(ematp,TPTAKA2B) or ta.crossunder(ematp,TPTAKA3B) 
SELLTP = ta.crossover(close,VTY) or ta.crossover(ematp,TPTAKA1S) or ta.crossover(ematp,TPTAKA2S) or ta.crossover(ematp,TPTAKA3S)
/////////////////////// STRATEGY ////////////////
// Check for Long Entry
longCondition = longConditionx==true
if longCondition
    strategy.entry('Long', strategy.long, comment = "ENTER-LONG")

buyclose = ShortConditionx==true or BUYTP==true 
// Exit condition 
strategy.close('Long', when=buyclose or BUYTP==true, comment = "EXIT-LONG")

// Check for Short Entry
ShortCondition = ShortConditionx==true
if ShortCondition
    strategy.entry('Short', strategy.short, comment = "ENTER-SHORT")

sellclose = longConditionx==true or SELLTP ==true
// Exit condition 
strategy.close('Short', when=sellclose or SELLTP==true, comment = "EXIT-SHORT")
///// END OF STRATEGY ///////////