モメンタム移動平均クロスオーバー売買戦略


作成日: 2024-02-19 14:53:50 最終変更日: 2024-02-19 14:53:50
コピー: 0 クリック数: 564
1
フォロー
1617
フォロワー

モメンタム移動平均クロスオーバー売買戦略

概要

この戦略は,MACD指数に基づいて取引信号を判断する.MACD指数は,MACD線,SIGNAL線,柱状図HISTO線の3つの線で構成されている.MACD線が,上から上へ突破し,正に変化したとき,買入の信号である.MACD線が上から下へと突破し,負に変化したとき,売出の信号である.

戦略原則

  1. MACD線,SIGNAL線,HISTO線を計算する
  2. MACD線とSIGNAL線の交差を判断し,買取と販売の信号を決定する.
  3. さらに,34サイクルEMAをサポートレジスタンスとして利用し,EMAの上だけ多量化し,EMA下では空白化します.
  4. ストップ・ロスト・ストップを設定して,アベरेजを保証する.

具体的には,閉盤価格上から34EMAを突破し,MACD線上からSIGNAL線を突破して正値になり,株価の上昇勢いが強いことを示すとき,購入する.閉盤価格下から34EMAを突破し,MACD線下からSIGNAL線を突破して負値になり,株価の下落勢いが強いことを示すとき,売る.

戦略的優位性

  1. MACDは株価の変化を正確に判断し,信号は明確である.
  2. EMAフィルターと組み合わせると,誤った買出信号を防ぐことができます.
  3. ストップ・ロスト・ストップポイントを設定し,毎回の損失をコントロールします.

リスクと解決

  1. MACD指数は信号生成が遅れているため,最適な買出のポイントを逃す可能性があります.適切なパラメータを最適化し,平均周期を短縮することができます.
  2. 単一の指標は誤信号を発生しやすい.他の指標,例えばKDJ指標などにフィルタリングを行うことができる.
  3. ポジション開設回数に制限がないため,過剰な取引が起こりうる. ポジション開設回数に毎日または毎週上限を設定できます.

最適化の方向

  1. MACDパラメータを最適化して,最適なパラメータの組み合わせを探します.
  2. 他の指標の判断を加え,誤信号を避ける.一般的な組み合わせ指標にはMACD+KDJ,MACD+BOLLなどがある.
  3. ポジション開設の制限を加え,過剰な取引を避ける.
  4. ストップ・ローズ・ストップ戦略の最適化,利回りの向上.

要約する

この戦略は,MACD指数を使用して,買入販売のタイミングを判断し,With 34EMAフィルターエラーシグナルを使用し,株価が新しい動きの開始時に適切な機会を捕捉できます.同時に,ストップ・ローズ・ポイント・コントロール・リスクを設定し,安定した信頼性の高い取引戦略です.その後,パラメータ最適化,その他の指標判断などの方法によって,この戦略をさらに完善し,率を向上させることができます.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melihtuna

//@version=2
strategy("Jim's MACD", overlay=true)

Tendies = input(true, title="Check here for tendies")

// === MACD Setup ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)

//EMA
ma = ema(close, 5)
plot(ema(close,5))


//Entry
if (close > ma and cross(macdLine,signalLine) and histLine> 0.4 and signalLine > 0 or histLine > 0 and signalLine > 0 )
    strategy.entry("BUY", strategy.long)
if(close < ma and cross(macdLine,signalLine) and histLine < -0.4 and signalLine < 0 or close < ma and histLine < 0 and signalLine < 0 )
    strategy.entry("SELL", strategy.short)
    
//Exit 
strategy.close("BUY", when = histLine < 0  )
strategy.close("SELL", when = histLine > 0  )