モメント・ムービング・平均クロスオーバー・トレード戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-19 14:53:50
タグ:

img

概要

この戦略は,MACD指標に基づいて取引信号を生成する.MACD指標は,MACD線,SIGNAL線,ヒストグラム (HISTO) 線という3つの線で構成される.MACD線がSIGNAL線の上を横切って正転すると,購入信号を生成する.MACD線がSIGNAL線を下を横切って負転すると,売却信号を生成する.

戦略の論理

  1. MACD線,SIGNAL線,HISTO線を計算する
  2. MACD線とSIGNAL線の交差点を特定し,買い・売る信号を決定する.
  3. サポート/レジスタンスゾーンとして 34 期間の EMA を使って, EMA の上だけロング, EMA の下だけショートする.
  4. ストップ・ロスを設定して 利益を取ります

閉じる価格が 34 期間の EMA を越え,MACD 線が SIGNAL 線を越え,ポジティブな領域に入ると,強烈な上向きの勢いを示し,購入します.閉じる価格が 34 期間の EMA を越え,MACD 線が SIGNAL 線を下向きの負の領域を越え,強烈な下向きの勢いを示し,販売します.

利点

  1. MACDインジケーターは 明確なシグナルで 価格動きの変化を正確に識別します
  2. EMAフィルターと組み合わせると,偽の買/売シグナルが避けられます.
  3. ストップ・ロストと 取引損失毎の利益制御を行う

リスク と 解決策

  1. MACD信号は価格の動きを遅らせ,最良のエントリー/アウトプットポイントを見逃す可能性があります.移動平均期を短縮するためにパラメータを最適化することができます.
  2. フィルタリングのためにKDJなどの他の指標を追加することができます.
  3. 取引数に制限はありません.過剰取引につながる可能性があります. 日/週間の取引制限を設定できます.

増進 の 機会

  1. 最適なパラメータの組み合わせを見つけるために MACD パラメータを最適化します.
  2. 誤った信号を避けるために他の指標判断を追加します.例えば,MACD+KDJ,MACD+BOLLの組み合わせです.
  3. 過剰取引を防ぐために取引頻度制限を導入する.
  4. リスク/リターン比を改善するためにストップ損失/利益戦略を最適化します.

結論

この戦略は,MACD指標を使用して取引機会を特定し,34期EMAを使用してシグナルをフィルタリングする.ストップ・ロスト/テイク・プロフィートによってリスクを制御しながら,新しい価格動向が始まるときにタイムリーエントリを可能にします.この戦略は,パラメータ最適化,他の指標を追加などにより収益性を向上させることでさらに精製することができます.


/*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  )


もっと