MACD暗号取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-26 14:20:04
タグ:

img

概要

これは,暗号通貨市場のために特別に設計されたシンプルで効率的なMACD暗号取引戦略であり,1時間,4時間,1日などより高いタイムフレームチャートに適しています.この戦略は,市場傾向の方向性を決定するためにMACD指標を使用し,取引信号は単純な移動平均値で生成されます.この戦略の最大の利点は,非常に不安定な暗号市場に特に適したシンプルで,効率的で,理解し,実装しやすいことです.しかし,さらなる最適化と改善を必要とするいくつかのリスクもあります.

戦略の論理

この戦略は,市場傾向を決定し,トレード信号を生成するためにMACD指標を利用する.MACDは,高速線,スローライン,MACDヒストグラムから構成される.高速線は短期移動平均線であり,スローラインは長期移動平均線である.高速線がスローラインを超えると,それは買い信号である.高速線がスローラインを下回ると,それは売り信号である.MACDヒストグラムは高速線とスローラインの違いである.ポジティブなヒストグラムは上昇傾向の牛市場を意味し,ネガティブなヒストグラムは下落傾向の市場を意味する.この戦略は,シグナルをさらに検証し,偽のシグナルを避けるために単純な移動平均を使用する.具体的には,MACDヒストグラムと単純な移動平均線の両方が正である場合にのみ,戦略は長期に進むための長い信号を生成する.ヒストグラムと単純な移動平均線の両方が負である場合,戦略は短期に行く信号を生成する.マイナストレンドの方向性を判断するためにMACDヒストグラムを使用することができます.

利点分析

このシンプルで効率的な戦略の最大の利点は以下の通りです

  1. 市場指向を決定するためにMACDを使用し,傾向を正確に判断するための成熟した信頼性の高い技術指標です.

  2. 信号フィルタリングのための単純な移動平均を組み合わせて,偽信号を回避し,精度を向上させる.

  3. 特にMACDがベストなパフォーマンスを発揮する非常に不安定な暗号市場のために設計されています.

  4. 論理はシンプルで明快で 理解し実行しやすい 採用に障壁が低い

  5. 取引頻度を低くし,取引コストを削減するために,より長い時間枠で実行できます.

リスク分析

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

  1. フィルタリングのための単純な移動平均値を使用すると,ある市場条件では最高のエントリー価格が失われる可能性があります.

  2. 利益を得たり 損失を止めたりしない場合 巨大な単一の取引損失につながる可能性があります

  3. 遅延信号や偽信号は不必要な損失を引き起こす可能性があります.

  4. 取引の時間枠と頻度が全体的な収益性に与える影響を考慮していない.

これらのリスクは,さらなる最適化によって対処する必要があります.

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

上記のリスクに基づいて,戦略は以下の方向で改善できます.

  1. 最適な設定を見つけるために,異なるパラメータと指標の組み合わせを試験する.

  2. ストップ・ロストと/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または/または

  3. 高品質の信号を確保するために,より厳格な信号確認により入力ロジックを最適化する.

  4. 異なる取引時間枠と頻度が全体的な収益性に与える影響を考慮してください.

これらの方向での最適化により,この戦略の安定性,収益性,可動性が大幅に向上できます.

概要

概要すると,これは非常に実用的な価値を持つMACD取引戦略です. シンプルで効率的で実行が簡単で,アルゴ取引を迅速に始めたい人にとって最適です. 同時に,長期間のライブ取引に適した安定したマネーメーニングアルゴリズムに変えるためのさらなる最適化のための十分な余地があります.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © SoftKill21

//@version=4
strategy("MACD crypto strategy", overlay=true)

// Getting inputs
//fast_length = input(title="Fast Length", type=input.integer, defval=12)
//slow_length = input(title="Slow Length", type=input.integer, defval=26)
//src = input(title="Source", type=input.source, defval=close)
//signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
//sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
//sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

fast_length = 12
slow_length = 26
src = input(title="Source", type=input.source, defval=close)
signal_length = 9
sma_source = true
sma_signal = false

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal



longcondition = hist > 0 
shortcondition = hist < 0 

//sl = input(0.5, title="SL")
//tp = input(0.1, title="tp")

strategy.entry("long",1,when=longcondition)
strategy.entry("short",0,when=shortcondition)

//strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong")
//strategy.entry("short",0, when= loss = close * sl / syminfo.mintick)

//strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit  = close * tp / syminfo.mintick,alert_message = "closeshort")

// risk = input(2, type=input.float,title="Risk percentage of BALANCE")
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)

もっと