この戦略は,トレンド逆転を検知するためにハイキン・アシと組み合わせて,主要取引信号として移動平均を使用し,短期的な価格の勢いを把握することを目的としています.これは,非遅延信号を生成するために再塗装機能を削除することによって,グスタヴォ・ブラマオのハイキン・アシMA戦略から最適化されています.
ハイキン・アシ閉値 nAMAn を価格ベースラインとして計算する.
nAMAnに基づいて,高速移動平均fmaと遅い移動平均smaを計算する.
FMAがSMAを超えると買い信号を生成し, FMAがSMAを下回ると売り信号を生成する.
この戦略では,リペインティングは削除され,リアルタイム取引信号を生成し,バックテストバイアスを回避します.
ハイキン・アシは傾向の逆転点を より正確に決定するのに役立ちます
MAクロスオーバーは 誤った信号を効果的にフィルタリングします
シグナル生成の遅延がなくして 信頼性の高いライブパフォーマンスを保証します
柔軟なパラメータ調節 異なる製品に適応可能
シンプルで明快な論理で 分かりやすく実行できます
手動取引のリスクを最小限にするために完全に自動化できます
価格の変動で 市場が悪調だ
偽信号を生成する傾向がある
不適切なMFAパラメータは,トレンドが欠落したり,引き上げが増加したりする可能性があります.
取引コストは,ライブ取引における純利益に影響を与える.
単一の取引損失を制御するために必要な厳格なストップ損失.
メカニカルな取引戦略には引き上げリスクがあり,適切な資本管理が必要です.
リスク管理ソリューション:
波動性フィルターを追加して,範囲限定市場を避ける.
シグナル品質を保証するためにフィルターを追加します.
徹底的なテストを通して MA パラメータを最適化します
取引頻度を調整してコストを削減する.
適切なストップロスを設定して 単一の取引で損失を制御します
ポジションのサイズを制御するために資本管理を最適化します
MAパラメータを最適化して信号品質を向上させる
トレンドフィルターを追加して,ウィップソー市場を回避します.
トレンドを確認するために,ボリューム指標を組み込む.
ダイナミックなストップ・ロストと利益採取を実装し,利益を最適化します.
資本管理モジュールを統合して ポジションのサイズを制御する
アルゴリズム取引モジュールを追加して 完全に自動化します
この戦略は,ハイキン・アシとMAクロスオーバーテクニックを統合し,シンプルで実践的な短期トレンドフォロー戦略を作成する.信頼性の高いリアルタイム取引信号を生成し,ライブ取引で良いパフォーマンスを示します.パラメータ,リスク管理,アルゴリズム取引モジュールのさらなる最適化は,信頼性の高い完全に自動化された戦略に変えることができます.
/*backtest start: 2022-10-25 00:00:00 end: 2023-10-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //Heikin/Kaufman by Gustavo v5 // strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR) // Settings - H/K res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D') test = input(0, 'Heikin Ashi EMA Shift') sloma = input(20, 'Slow EMA Period') nAMA = hlc3 //Kaufman MA Length = input.int(5, minval=1) xPrice = input(hlc3) xvnoise = math.abs(xPrice - xPrice[1]) Fastend = input.float(2.5, step=.5) Slowend = input(20) nfastend = 2 / (Fastend + 1) nslowend = 2 / (Slowend + 1) nsignal = math.abs(xPrice - xPrice[Length]) nnoise = math.sum(xvnoise, Length) nefratio = nnoise != 0 ? nsignal / nnoise : 0 nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2) nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1])) //Heikin Ashi Open/Close Price ha_t = ticker.heikinashi(syminfo.tickerid) ha_close = request.security(ha_t, timeframe.period, nAMAn) mha_close = request.security(ha_t, res1, hlc3) //Moving Average fma = ta.ema(mha_close[test], 1) sma = ta.ema(ha_close, sloma) plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line) plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line) //Strategy golong = ta.crossover(fma, sma) goshort = ta.crossunder(fma, sma) strategy.entry('Buy', strategy.long, when=golong) strategy.entry('Sell', strategy.short,when=goshort)