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

モメントクロスオーバー 移動平均値とMACDフィルター ハイキン・アシ・キャンドルスタイク戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-02 12:18:03
タグ:

img

概要

この戦略は,トレンドフォロー戦略を構築するために,移動平均クロスオーバー信号とMACD指標のフィルタリングを組み合わせたハイキン・アシ・キャンドルスティック技術を活用する.この戦略は,異なるタイムフレームで市場のトレンドを捕捉し,移動平均クロスオーバーを通じて取引信号を生成し,その後MACD指標を通じて偽信号をフィルタリングし,バックテストで高い収益性を示します.

戦略の論理

戦略は主に3つの主要な技術指標を活用しています.

  1. ハイキン・アシ・キャンドルスティック. 閉店価格を修正し, "影のない"キャンドルスティックバーを構築し,過剰な市場騒音をフィルタリングすることで,真の価格傾向をより明確に示すことができます.

  2. 指数関数移動平均線 (EMA).速いEMAは短期的なトレンドを捉え,ゆっくりとしたEMAは長期的なトレンド方向を判断する.速いEMAがゆっくりとしたEMAを超えると購入信号が生成される.速いEMAがゆっくりとしたEMAを下回ると販売信号が生成される.

  3. MACD インディケーター. 速いEMAと遅いEMAを組み合わせます.MACD線がシグナルラインの上にあるとき,それは上昇信号であり,下にあるとき,それは下落信号です.

この戦略のトレードシグナルは,EMAの高速および遅いEMAの黄金/死十字から来ます.偽のシグナルをフィルタリングするために,MACDインジケーターは補助判断のために導入されます.MACDがEMAクロスオーバーに準拠するシグナルを出したときのみ,最終的なトレードシグナルが起動し,間違った取引の確率が大幅に減少します.

具体的には,高速EMAがスローEMA (黄金十字) を越え,MACD線が同時にシグナルライン (上昇信号) を越えると,買い信号が生成される.高速EMAがスローEMA (死十字) を越え,MACD線が同時にシグナルライン (下落信号) を越えると,売り信号が生成される.

この移動平均のクロスオーバーとMACDフィルタリングの組み合わせは,市場の重要な転換点を効果的に特定し,それに応じて価格動向を把握することができます.

利点

この戦略には以下の特徴があります.

  1. トレンドシグナルをキャプチャする確率が大幅に向上した.ハイキン・アシ技術によりトレンド判断がより明確になり,両EMAからのクロスオーバーシグナルの強さも強力である.MACDフィルターを統合した後に信頼性はさらに高まる.

  2. 引き下げリスクは比較的小さい.MACDは補助指標として機能し,ストップ・ロスのリスクを一定程度軽減し,不要な清算損失を効果的に減らすことができます.

  3. より調節可能なパラメータ.ハイキン・アシのキャンドルスタイルの期間,移動平均システムの速い/遅いEMA,MACDのパラメータなど,すべてが市場の状況に基づいて調整され,戦略をより適応させることができます.

  4. シンプルで明確な実装.価格を表示するためにハイキン・アシのろうそくを使用し,決定のための共通の指標を助け,理解しやすい整頓的で簡潔なコードでプログラミングが簡単です.

  5. 資本利用の効率が向上する.傾向を追跡することで,戦略はほとんどの場合,資本の動きを主要市場方向に調整し,より効率的に収益を生むことができます.

リスク

この戦略には,次の潜在的なリスクもあります.

  1. 市場における激しい変動は,大きな損失を引き起こす可能性があります.価格が短期的に著しく格差するか,急速に逆転した場合,ストップロスの措置は失敗し,予想を超える損失が発生します.

  2. MACDの誤判の可能性.MACDは補助指標として,誤った呼び出しを行い,戦略が誤ってポジションを設定または閉鎖することにつながります.

  3. 固定パラメータの組み合わせは,常に変化する市場に適応できず,良い取引機会を逃す可能性があります.

  4. 取引頻度が高く トレンドをフォローする方法は,頻繁に取引を誘発し,コストとスリップ損失を増加させる可能性があります.

上記のリスクを軽減し,減らすために,次の措置が可決されます.

  1. ストップ・ロスのポイントを設定し,単一の取引の損失を制限します.また,傾向を追いかけて,ポジションサイズを制御するのを避けます.

  2. MACD パラメータを調整し,誤った信号の確率を減らす.マルチ確認のためにより多くの指標も導入できます.

  3. パラメータ最適化メカニズムを構築する.より高い適応性のためにパラメータ組み合わせを自動調整するために機械学習などを使用する.

  4. 取引の頻度を減らすために,取引信号のトリガー条件を適切に緩和するか,最低価格変化の値を設定する.

最適化

戦略のさらなる最適化には大きな可能性があります.

  1. ハイキン・アシ・キャンドルスタイク期間を最適化します.市場傾向を最もよく表す期間を見つけるために,より長いまたは短い期間をテストします.

  2. 移動平均のパラメータを調整し,最適なパラメータセットを見つけるために,速い/遅いEMAの期間を修正する.

  3. MACDのマルチパラメータ最適化.優れた構成を特定するために,高速/遅いEMAとMACD信号ラインのパラメータを微調整する.

  4. リスク管理モジュールを強化し,より科学的ストップ・ロスト/テイク・プロフィートルールを策定し,ポジションサイズ,資本管理を統合する.

  5. 補助指標を導入し,KD,RSIなどの他の指標を導入し,多要素確認により信号の質を向上させます.

  6. 機械学習技術を活用する. ニューラルネットワーク,遺伝子アルゴリズムなどを利用して,戦略パラメータをリアルタイムで最適化して,より高い適応性を高める.

技術指標の繰り返し組み合わせ,パラメータの継続的な最適化,より強力なリスク管理モジュールなどにより,戦略の業績は著しく向上し,より安定して効率的な収益性が期待できる.

結論

この戦略は,ハイキン・アシ・キャンドルと移動平均クロスオーバーを組み合わせて市場動向を把握し,高い信頼性のあるターニングポイントと取引信号を検出するためにMACDフィルタリングによって助けられています.バックテスト結果は優れたもので,高い勝利確率,低い引き下げ,高い調節性などの利点を備えています.一方,リスク管理は極端な市場の動きからのヘッジの影響にも注意が必要です.継続的な改善と最適化により,戦略は非常に効果的な定量的な取引戦略として大きな可能性を示しています.


/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Heikin Ashi Strategy  V1 by nachobuey

strategy("Heikin Ashi Strategy  V2",shorttitle="HAS V2",overlay=true)
res = input(title="Heikin Ashi Candle Time Frame",  defval="15")
hshift = input(0,title="Heikin Ashi Candle Time Frame Shift")
//res1 = input(title="Heikin Ashi EMA Time Frame", type=resolution, defval="180")
res1   = input(title="Time frame (Minutes. Not lower than chart)",defval="300")
mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift")
fama = input(16,"Heikin Ashi EMA Period")
test = input(0,"Heikin Ashi EMA Shift")
sloma = input(21,"Slow EMA Period")
slomas = input(0,"Slow EMA Shift")
macdf = input(false,title="With MACD filter")
res2 = input(title="MACD Time Frame",  defval="60")
macds = input(1,title="MACD Shift")




//Heikin Ashi Open/Close Price
ha_t = heikinashi(syminfo.tickerid)
ha_open = request.security(ha_t, res, open[hshift])
ha_close = request.security(ha_t, res, close[hshift])
mha_close = request.security(ha_t, res1, close[mhshift])

//macd
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdl = request.security(ha_t,res2,macdLine[macds])
macdsl= request.security(ha_t,res2,signalLine[macds])

//Moving Average
fma = ema(mha_close[test],fama)
sma = ema(ha_close[slomas],sloma)
plot(fma,title="MA",color=lime,linewidth=2,style=line)
plot(sma,title="SMA",color=red,linewidth=2,style=line)


//Strategy
golong =  crossover(fma,sma) and (macdl > macdsl or macdf == false )
goshort =   crossunder(fma,sma) and (macdl < macdsl or macdf == false )


strategy.entry("Long",strategy.long,when = golong)
strategy.entry("Short",strategy.short,when = goshort)

plotchar(golong,char="L", color=green)
plotchar(goshort,char="S", color=red)

alertcondition(golong, "HAS GO LONG", "OPEN LONG")
alertcondition(goshort, "HAS GO SHORT", "OPEN SHORT")



もっと