資源の読み込みに... 荷物...

平均逆転戦略

作者: リン・ハーンチャオチャン,日付: 2024-06-17 14:57:59
タグ:SMADEVマルチ

img

概要

この戦略は,移動平均値からの価格偏差を活用して取引決定を行う,平均逆転の原則に基づいています.価格は上部帯を超えるとショートになり,下部帯を下回るとロングになります.価格は移動平均値に戻るとポジションは閉鎖されます.この戦略の基本的な仮定は,価格は常に平均値に戻るということです.

戦略の原則

  1. 指定された期間の単純な移動平均値 (SMA) (デフォルト 20) を平均価格レベルとして計算する.
  2. 価格の標準偏差 (DEV) を計算し,それを上位および下位帯を構築するために使用します.上位帯はSMAプラス標準偏差の倍数 (デフォルト1.5) で,下位帯はSMAマイナス標準偏差の倍数です.
  3. 価格が上位帯を突破するとショートで,下位帯を突破するとロングです.
  4. 価格がSMAを下回るとロングポジションを閉じるし,価格がSMAを下回るとショートポジションを閉じる.
  5. グラフに移動平均値,上帯,下帯,買/売シグナルをマークします.

利点分析

  1. 平均値逆転戦略は,価格が常に平均値に戻るという統計的原則に基づい,長期的に見れば収益性の確率が一定である.
  2. 上部と下部帯の設定は,実行と管理に便利な明確なエントリーと出口ポイントを提供します.
  3. 戦略の論理は シンプルで明快で 分かりやすく実行できます
  4. 明らかに平均逆転特性を示す計器や時間枠に適しています.

リスク分析

  1. 市場傾向が変わると,価格は長期間に渡って逆転せずに平均値から逸脱し,戦略が失敗する可能性があります.
  2. 標準偏差倍数の不適切な設定は,取引頻度が高すぎたり低すぎたりして,収益に影響を与える可能性があります.
  3. 極端な市場環境では,価格変動が激しくなり,上と下の帯は有効性を失う可能性があります.
  4. 手段や時間枠が平均逆転特性を有していない場合,戦略は収益性がない可能性があります.

オプティマイゼーションの方向性

  1. 最適なパラメータを見つけるため,SMA期間と標準偏差倍数で最適化テストを行う.
  2. トレンドがはっきりしているときに反トレンド取引を避けるためにトレンド判断指標を導入する.
  3. 動的帯を構成するために,標準偏差に加えて,ATRのような変動指標を追加します.
  4. バックテストの真性を制御するために,スライドや手数料などの取引コストを考慮してください.
  5. ストップ・ロスト,テイク・プロフィート,ポジション管理などのリスク管理モジュールを追加します.

概要

平均逆転戦略 (mean reversal strategy) は,統計的原則に基づく定量的な取引戦略で,平均価格の周りに上下帯を作ることで取引決定を下す.この戦略はシンプルな論理と明確な実行を持っていますが,楽器の選択とパラメータの最適化に注意を払う必要があります.実用的な応用では,戦略の堅牢性と収益性を向上させるために,トレンド,取引コスト,リスク管理などの要因も考慮する必要があります.一般的に,平均逆転戦略は定量的な取引の分野で一般的なものであり,深く研究されるべきものです.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Mean Regression Strategy", overlay=true)

// Define the lookback period for the moving average
length = input.int(20, title="Moving Average Length")
mult = input.float(1.5, title="Standard Deviation Multiplier")

// Calculate the moving average and standard deviation
ma = ta.sma(close, length)
dev = mult * ta.stdev(close, length)

// Calculate upper and lower bands
upper_band = ma + dev
lower_band = ma - dev

// Plot the moving average and bands
plot(ma, color=color.blue, linewidth=2, title="Moving Average")
plot(upper_band, color=color.red, linewidth=2, title="Upper Band")
plot(lower_band, color=color.green, linewidth=2, title="Lower Band")

// Entry conditions
long_condition = ta.crossover(close, lower_band)
short_condition = ta.crossunder(close, upper_band)

// Exit conditions
exit_long_condition = ta.crossunder(close, ma)
exit_short_condition = ta.crossover(close, ma)

// Strategy orders
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")

// Plot signals on the chart
plotshape(series=long_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=short_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")


関連性

もっと