移動平均クロスオーバー取引戦略


作成日: 2024-02-04 16:00:31 最終変更日: 2024-02-04 16:00:31
コピー: 0 クリック数: 706
1
フォロー
1617
フォロワー

移動平均クロスオーバー取引戦略

概要

移動平均線交差戦略は,比較的一般的な株式取引戦略である.この戦略は,急速な移動平均線と遅い移動平均線を計算し,それらの交差時に買入と売却のシグナルを生成する.具体的には,急速な移動平均線が,下から遅い移動平均線を横切るとき,買入のシグナルを生成する.そして,急速な移動平均線が,上から下から遅い移動平均線を横切るとき,売出のシグナルを生成する.

戦略原則

この戦略の核心的な論理は,高速移動平均線は,株式の短期的なトレンドを表し,遅い移動平均線は,株式の長期的なトレンドを表している.短期的なトレンドが上昇に転じるとき (金叉),株式が買取区間に入ることを示す;短期的なトレンドが低下に転じるとき (死叉),株式が売り出し区間に入ることを示す.

具体的には,この戦略は,迅速な移動平均maFastと遅い移動平均maSlowを定義している.maFastの長さは9,株式の9日間の短期トレンドを表す;maSlowの長さは18,株式の18日間の長期トレンドを表す.戦略は,二つの移動平均線の交差を計算することによって,短期と長期のトレンドの変化を判断する.maFast上のマスローを穿越すると,買入シグナルを生じ,maFastの下のマスローを穿越すると,売り出シグナルを生じます.

優位分析

この戦略の利点は以下の通りです.

  1. 原則はシンプルで分かりやすく,理解し,実行しやすい.
  2. 移動平均は,株価の騒音を効率的に消し去り,より信頼性の高い取引シグナルを生み出します.
  3. 遅い移動平均は,短期的傾向と長期的傾向を組み合わせ,取引の信号は比較的安定している.
  4. 移動平均のパラメータは,異なる株の特性に対応して柔軟に調整できます.
  5. 移動平均の周期パラメータを最適化することで,よりよい取引効果を得ることができます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 株価の変動が大きい場合,誤ったシグナルが多くなり,取引が多くなります.
  2. パラメータを正しく設定しない場合,取引頻度が高くなり,信号が遅れる.
  3. 市場や株価の急速な変化を 効率的に追跡できない
  4. 取引先の取引が遅れている場合, 取引先の取引が遅れている場合,

移動平均のパラメータを調整し,ストップダメージ戦略を設定するなど,上記のリスクを減らすことができる.

最適化の方向

この戦略はさらに改善できる余地があります.

  1. 取引量,STOCHなど,他の技術指標のフィルター信号と組み合わせる.
  2. トレンド判断の仕組みを高め,主要トレンドを見逃さないようにする.
  3. 移動平均のパラメータを最適化して,最適なパラメータの組み合わせを見つけます.
  4. ストップ・ロスの戦略を設定し,単一損失をコントロールする.
  5. ディープ・ラーニングなどのモデルと組み合わせた価格予測.

要約する

移動平均線交差策略は,全体的に非常に古典的で実用的な策略である。その原理はシンプルで,実行しやすくて,実際の取引で広く適用されている。パラメータ調整と補助技術指標の適用により,この策略をさらに改良して,よりよいリスク・リターン比率を得ることができる。全体的に,この策略は,量化取引の重要な基石であり,深入な研究と応用に値する。

ストラテジーソースコード
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Moving Average Cross", overlay=true, initial_capital=10000, currency='USD')



// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 9, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 18, title = "Slow MA Period", minval = 1)


// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)



// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)



// === LOGIC ===
enterLong = crossover(maFast, maSlow)
exitLong = crossover(maSlow, maFast)



// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong)
strategy.entry(id="Short Entry", long=false, when=exitLong)


// === FILL ====

fill(fast, slow, color = maFast > maSlow ? green : red)