この戦略はボリューム重量トレンド逆転戦略と呼ばれています.価格が平均値から逸脱したときの潜在的なトレンド逆転ポイントと利益を特定することを目的としています.これは取引信号を生成するためにボリューム重量平均価格 (VWAP) と定量定性推定修正 (QQE Mod) 指標を組み合わせます.
この戦略はVWAPとQQE Modという2つの指標を利用している.
VWAPは"ボリューム・ウェイト・平均価格"を表す.これは,時間枠における資産の平均価格を,ボリューム・ウェイトで計算する.
QQE Modは,相対強度指数 (RSI) と指数関数移動平均値 (EMA) の要素を組み込んだ定量定性推定指標の改変版である.潜在的なトレンド逆転を特定し,トレンドの強さを評価するのに役立ちます.
閉じる価格がVWAPとQQE Modの両方の値を超えると購入信号が生成される.これは価格が平均値を超えてQQE Modに従って強さを示す場合,潜在的な購入機会を示します.
閉店価格がVWAPとQQE Modの両方の値を下回るときにセールシグナルが生成される.これは価格が平均を下回り,QQE Modによると弱さを示す場合の潜在的なセールチャンスを示します.
この戦略は,VWAPとQQE Modを組み合わせることで,価格が極端な水準から反発するときに,トレンド逆転を及ばなく特定し,利益を得ることを目指しています.
この戦略の利点は以下の通りです.
価格と量分析を組み合わせます.VWAPは価格を量に応じて重量化し,分析をより有意義にします.
傾向とランダムな変動を区別する.QQE Modは,価格動向が持続的な傾向なのか,単なるランダムな騒音なのかを判断するのに役立ちます.
価格が逆転するときに 早期信号を出す
パラメータはカスタマイズできます.指標の入力は,異なる市場やタイムフレームに最適化できます.
簡単なバックテストと実装.戦略は,TradingView用のPine Scriptで直接記述したり,MT4/MT5自動取引のためのMQLに変換することができます.
合理的な論理にもかかわらず,以下のような取引リスクは依然として存在します.
すべての指標と同様に,VWAPとQQEは 誤った信号を生成し,損失をもたらす可能性があります.
引き下げリスク. 重要な変動がポートフォリオの引き下げにつながる可能性があります. ストップ損失によってリスクは制御できます.
パラメータは過去データに 最適化されてるけど サンプル外のデータでは失敗する
バックテスト対ライブパフォーマンス偏差.実際のパフォーマンスはバックテスト結果と異なる可能性があります.
自動取引リスク 自動取引に使用される場合,サーバーの切断,ネットワークエラーなどによる追加のリスク
この戦略はいくつかの点で改善できる.
適正な株を選びます.より流動な株は,より良いVWAPとQQE信号を与える可能性があります.
QQEの入力値を最適化して
ストップ・ロスを組み込む.合理的なストップ・ロストレベルとトラッキング・ストップはリスクを制御するのに役立ちます.
取引コストを計算し,シミュレーションをより現実的にするために,手数料と滑り込みを含みます.
フィルターを追加します. 音量ブレイクや波動性に関する追加のフィルターは 誤った信号を減らす可能性があります.
ボリューム重量トレンド逆転戦略は,価格動向の潜在的なターニングポイントを特定するために,VWAPとQQE Modを組み合わせています.短期的な逆転を把握するために,ボリュームとモメンタム分析の両方を組み込みます.実装が簡単で,市場の条件に合わせて最適化され,トレーダーにとって実行可能なオプションです.それでも,ウィップソーや引き下げからのリスクは持続し,慎重なバックテストとリスク管理が必要です.
/*backtest start: 2024-01-21 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("VWAP and QQE Mod Strategy", overlay=true) // Input parameters length = input(14, title="QQE Length") m = input(5, title="QQE Smoothing") filterLength = input(5, title="QQE Filter Length") // Calculate VWAP vwapValue = ta.sma(close * volume, length) / ta.sma(volume, length) // Calculate QQE Mod indicator qqeMod(source, length, m, filterLength) => emaSource = ta.ema(source, length) rsiValue = ta.rsi(source, length) var float j = na j := (1.0 - 1.0 / m) * nz(j[1]) + 1.0 / m * (rsiValue - 50) upperBand = emaSource + filterLength * ta.stdev(source - emaSource, length) lowerBand = emaSource - filterLength * ta.stdev(source - emaSource, length) qqeModValue = j > 0 ? upperBand : lowerBand [qqeModValue, upperBand, lowerBand] [qqeModValue, upperBand, lowerBand] = qqeMod(close, length, m, filterLength) // Generate trading signals buySignal = close > vwapValue and close > qqeModValue sellSignal = close < vwapValue and close < qqeModValue // Plot signals on the chart bgcolor(buySignal ? color.new(color.green, 90) : na) bgcolor(sellSignal ? color.new(color.red, 90) : na) // Print trading signals strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal)