移動平均方向逆転取引戦略は,移動平均の連続した柱が同時に上昇または下落しているときに,トレンドの転換を判断する取引戦略である.この戦略は,移動平均の方向を判断して,継続的な看板または下落の取引機会を決定する.
移動平均の逆転戦略の核心的な論理は,
選択した移動平均を計算するには,単純移動平均SMA,指数移動平均EMA,加重移動平均WMAまたは線形回帰平均を選択できます.
現在の周期移動平均と前の周期移動平均の大きさの関係を判断する.現在の移動平均が前の周期より高い場合は,1を赋し,逆に0を赋する.
連続向上と連続下降の周期数を記録する.もし現在の周期移動平均が前の周期より高いなら,連続向上周期数+1で,連続下降周期数0になる.もし現在の周期移動平均が前の周期より低いなら,連続下降周期数+1で,連続向上周期数0になる.
連続した上方または連続した下方周期がユーザ定義の値を超えると,対応する多行または空行操作を行う.
K線柱の色と背景の色を染色して,傾向の方向を直感的に表示する.
移動平均の変化曲線を選択的に描画し,ターニングポイントをマークします.
この戦略は,統計的な移動平均が連続していくつ K 線の方向を判断するかを判断し,タイムアウトは,1 つの K 線の状況ではなく,継続的な看板または下落の時間の長さに取引し,取引に対する揺動の影響を効果的にフィルターすることができます.
移動平均方向の逆転取引戦略は以下の利点があります.
移動平均を使ってトレンドの方向を判断し,市場騒音を効果的にフィルターすることができます.
周期内移動平均の方向の継続的な変化を統計し,トレンドの逆転のタイミングを判断し,取引リスクを減らす.
移動平均のパラメータと統計周期のパラメータをカスタマイズして,異なる品種と行情環境に対応できます.
K線染色に直感的にトレンド方向の変化を示し,視覚的補助を形成する.
移動平均の種類を選択し,柔軟性があります.
移動平均の変化曲線を描画し,転向が起きているか明確に観察できます.
規則はシンプルでわかりやすく,理解しやすい実装で,初心者の学習に適しています.
移動平均の方向を逆転する取引戦略にはリスクがあります.
移動平均の遅延は,転換点の把握に影響を及ぼします.
統計学的に一定周期を遅らせて空白の決定を多めにすると,より早く反転する機会を逃してしまうかもしれない.
持続周期が長すぎるとトレンドが失われ,短すぎると騙される.
震動の状況では空頭取引のシグナルが大量に発生する可能性があります.
移動平均線の方向のみを頼りにして,真のトレンドの逆転を完全に判断することは不可能であり,偽信号の危険性がある.
状況が急激に変化すると,移動平均指数自体が急速に変化し,誤った信号が生じる可能性が高くなります.
移動平均の選択パラメータの合理性には注意が必要で,そうでなければ失効が発生する.
対応方法:
移動平均の周期を適切に短縮し,敏感性を高めます.
他の指標のフィルタリング信号と組み合わせると,トレンドの逆転が確認されます.
統計周期パラメータを最適化し,反応速度と安定性の間のバランスをとる.
利回り停止幅を拡大し,損失を抑制する.
複数の移動平均の組み合わせにより,精度が向上する.
移動平均方向の逆転取引戦略は,以下のいくつかの点で最適化できます.
移動平均のパラメータを最適化し,異なる長さの周期の移動平均をテストし,最適なパラメータを見つけます.SMA,EMA,WMAの3つの組み合わせを試してみることができます.
RSI,KDなどの他の補助指標と組み合わせて,信号の信頼性を高めます.
統計的な連続周期数パラメータを最適化して,トレンドの逆転を反映させながら,偽信号をできるだけフィルターします.
単一取引の損失を抑えるため,ストップ・損失メカニズムが追加されました.
異なる品種のパラメータの最適化効果をテストし,異なる取引品種に応じてパラメータを調整する.
固定統計周期を自主統計周期に変更し,戦略の柔軟性を高めることを検討する.
移動平均が実際に突破したときに入場します.
逆向きの取引を避けるため,全体的なトレンドの方向性についての判断を高めます.
移動平均の曲線を描く方法を改善し,曲線の平らさを増やすなど.
移動平均線方向逆転取引戦略は,統計的に移動平均線が連続して上昇または下降する周期数を用いて,継続的にトレンドを追跡するタイミングを判断する.それは市場騒音を効果的にフィルターし,トレンドが転じるときに適切な機会を掴むことができる.この戦略は,カスタマイズ可能な移動平均線パラメータと統計周期数を用いて,異なる取引品種と市場環境に柔軟に適応することができる.しかし,移動平均線自体が遅滞しているため,急速な逆転に認識の遅れが生じやすい.したがって,パラメータの最適化調整が必要であり,信号の正確性を高めるために他の技術指標を補助する.全体的に,移動平均線方向逆転取引戦略は,容易に掌握する利点があり,実用的で推奨すべき取引戦略である.
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Moving Average Consecutive Up/Down Strategy (by ChartArt)", overlay=true)
// ChartArt's Moving Average Consecutive Up/Down Strategy
//
// Version 1.0
// Idea by ChartArt on December 30, 2015.
//
// This strategy goes long (or short) if there are several
// consecutive increasing (or decreasing) moving average
// values in a row in the same direction.
//
// The bars can be colored using the raw moving average trend.
// And the background can be colored using the consecutive
// moving average trend setting. In addition a experimental
// line of the moving average change can be drawn.
//
// The strategy is based upon the "Consecutive Up/Down Strategy"
// created by Tradingview.
// Input
Switch1 = input(true, title="Enable Bar Color?")
Switch2 = input(true, title="Enable Background Color?")
Switch3 = input(false, title="Enable Moving Average Trend Line?")
ConsecutiveBars = input(4,title="Consecutive Trend in Bars",minval=1)
// MA Calculation
MAlen = input(1,title="Moving Average Length: (1 = off)",minval=1)
SelectMA = input(2, minval=1, maxval=4, title='Moving Average: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')
Price = input(close, title="Price Source")
Current =
SelectMA == 1 ? sma(Price, MAlen) :
SelectMA == 2 ? ema(Price, MAlen) :
SelectMA == 3 ? wma(Price, MAlen) :
SelectMA == 4 ? linreg(Price, MAlen,0) :
na
Last =
SelectMA == 1 ? sma(Price[1], MAlen) :
SelectMA == 2 ? ema(Price[1], MAlen) :
SelectMA == 3 ? wma(Price[1], MAlen) :
SelectMA == 4 ? linreg(Price[1], MAlen,0) :
na
// Calculation
MovingAverageTrend = if Current > Last
1
else
0
ConsecutiveBarsUp = MovingAverageTrend > 0.5 ? nz(ConsecutiveBarsUp[1]) + 1 : 0
ConsecutiveBarsDown = MovingAverageTrend < 0.5 ? nz(ConsecutiveBarsDown[1]) + 1 : 0
BarColor = MovingAverageTrend > 0.5 ? green : MovingAverageTrend < 0.5 ? red : blue
BackgroundColor = ConsecutiveBarsUp >= ConsecutiveBars ? green : ConsecutiveBarsDown >= ConsecutiveBars ? red : gray
MovingAverageLine = change(MovingAverageTrend) != 0 ? close : na
// Strategy
if (ConsecutiveBarsUp >= ConsecutiveBars)
strategy.entry("ConsUpLE", strategy.long, comment="Bullish")
if (ConsecutiveBarsDown >= ConsecutiveBars)
strategy.entry("ConsDnSE", strategy.short, comment="Bearish")
// output
barcolor(Switch1?BarColor:na)
bgcolor(Switch2?BackgroundColor:na)
plot(Switch3?MovingAverageLine:na, color=change(MovingAverageTrend)<0?green:red, linewidth=4)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)