移動平均値,価格パターン,および量に基づいたトレンド逆転戦略

作者: リン・ハーンチャオチャン開催日:2024年1月17日 17:48:40
タグ:

img

概要

この戦略は,移動平均値,価格パターン,およびボリュームを組み合わせて,市場の潜在的なトレンド逆転点を特定する.高速移動平均値がスロー移動平均値を超えると,上昇傾向の格好が現れ,レジスタンスレベルが破られ,取引量が急上昇する.逆の状況が発生すると短くなります.

原則

この戦略の主なアイデアは,移動平均値,価格アクションパターン,およびボリュームの組み合わせを,来年の逆転のシグナルとして使用することです.特に,移動平均値の黄金十字と死十字は,トレンドの変化を示します.ブリーッシュ/ベアッシュ・エングロフィング・パターンは,通常,短期的な逆転を意味しています.取引量の急上昇は,しばしばトレンド逆転を意味しています.この3種類の信号を組み合わせることで,戦略は,逆転のターニングポイントを正確に捉えることを目指しています.

論理的には,戦略はまず,高速および遅い移動平均を計算する.その後,上昇/下落の浸透パターンを識別するための条件を定義する. サポートとレジスタンスレベルは,増量拡大とともに追加条件として組み込まれます. 急速なMAが遅いMAを超えると,上昇パターンが現れ,レジスタンスが破られ,ボリュームが急上昇するときに購入信号が起動します. 反対条件は販売信号を誘発します.

利点

この戦略の最大の利点は,反転を確認するために複数の信号の組み合わせを使用することであり,偽信号を避けるのに役立ちます.移動平均値やキャンドルスタイクパターンのような単一の指標に依存すると,誤った取引が生じる傾向があります.すべての3つの要因の調整を必要とすることで,反転を正確に捕捉する確率は大幅に向上します.

この戦略は,トレンドと逆転の両方の概念を使用している.逆転は既存のトレンドの後のみ求められる. 言い換えれば,この戦略はトレンド市場内の反トレンドリトレースのみを探している.これはランダム性を軽減し,収益性を高めるのに役立ちます.

リスク

この戦略の最大のリスクは,エントリーシグナルの後も価格がトレード方向に逆らって動き続ける失敗の逆転である.これは通常,逆転シグナルが偽りであることが判明した場合,または持続するトレンド内の短期的修正のみである.

解決策には,よりよいトレンドを定義するために移動平均期間の調整,より広いストップ損失を使用し,逆転信号の取引前により多くの確認因子を組み込むが含まれます.より高いタイムフレームトレンドに基づくフィルターを追加することで,偽のブレイクアウト取引を避けるのに役立ちます.

改良

この戦略のための可能な最適化方法は以下の通りです.

  1. 移動平均期間の調整により,最適な長期/短期トレンドを特定する.

  2. ピボットポイントのような サポート/レジスタンスの計算方法のテスト

  3. チャイキン・マネーフロー,ボリューム・オシレーターなど

  4. 長期チャートパターンのような 逆転の確認要因を 組み込むこと

  5. 株式指数先物を使って 市場間のシグナルを 相互検証します

パラメータの組み合わせを厳格にテストすることで,パフォーマンスのさらなる改善が達成できます.

結論

この戦略は,トレンド市場でのみ移動平均値,価格アクション,取引量の逆転を巧みに組み合わせます.パラメータを最適化し,より多くの信号確認を追加することで,短期的な反トレンド取引のための強力なシステムになることができます.


/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Profit Table Strategy", overlay=true)

// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(20, title="Slow MA Length")
takeProfitPercent = input(1, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100
trailingStopPercent = input(1, title="Trailing Stop (%)") / 100

// Price action conditions
bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1]
bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1]

// Support and resistance levels
supportLevel = input(100, title="Support Level")
resistanceLevel = input(200, title="Resistance Level")

// Volume conditions
volumeCondition = volume > ta.sma(volume, 20)

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Buy condition
buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition

// Sell condition
sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition

// Strategy logic
strategy.entry("Buy", strategy.long, when=buyCondition)
strategy.close("Buy", when=sellCondition)

// Calculate take profit, stop loss, and trailing stop levels
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent)
trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent)

// Plotting levels on the chart
plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level")
plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level")
plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level")
plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level")
plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level")

// Plotting buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)


もっと