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

多期ハイキン・アシ移動平均トレンド 取引システム

作者: リン・ハーンチャオチャン, 日付: 2025-01-06 16:20:56
タグ:エイママックドHASMA購入する売る

img

概要

この戦略は,ハイキン・アシ・キャンドルストークと指数関数移動平均 (EMA) クロスオーバーに基づいたマルチタイムフレームトレンドフォローシステムである.これは,ハイキン・アシ・キャンドルストークのスムージング特性と,異なるタイムフレームにおける移動平均のトレンドフォロー機能を組み合わせ,MACDを追加のフィルターとして使用し,市場のトレンドを正確に把握する.この戦略は階層的タイムフレームデザインを使用して,60分,180分,および15分間のタイムフレームでシグナルを計算および検証する.

戦略の原則

基本的な論理にはいくつかの重要な要素が含まれます.

  1. ハイキン・アシ計算: 市場騒音を減らすために特別OHLC計算によって元の価格データを平滑化します.
  2. マルチタイムフレーム EMAシステム: 180 分間のタイムフレームでハイキン・アシ EMA を計算し,60 分間のタイムフレームで遅い EMA とクロスオーバー信号を形成します.
  3. MACDフィルター: 15分間の時間枠でMACD指標を計算し,取引信号を検証する.
  4. シグナル生成規則:高速ハイキン・アシ EMAが遅い EMAを MACD 確認で (有効であれば) 越えると購入信号を生成する.売却信号では逆転する.

戦略 の 利点

  1. 強い信号のスムーズ化:ハイキン・アシのろうそくは誤った信号を効果的に減少させる.
  2. 複数のタイムフレームの検証:異なるタイムフレームを使用することで,信号の信頼性が向上します.
  3. 効果的な傾向追跡: EMAのクロスオーバーシステムは,中長期の傾向を効果的に把握します.
  4. 柔軟なフィルタリングメカニズム:オプションのMACDフィルターは,追加の信号確認を提供します.
  5. 高いパラメータ適応性: 複数のキーパラメータを異なる市場特性に最適化できます.

戦略リスク

  1. 市場変動リスク:横向市場では頻繁に誤ったブレイクシグナルを生む可能性があります.
  2. 遅延リスク: 複数のタイムフレームの検証は,略微遅延したエントリにつながる可能性があります.
  3. パラメータの感度: 異なるパラメータの組み合わせにより,性能が大きく変化する可能性があります.
  4. 市場環境による依存: 戦略は強いトレンド市場ではよりうまく機能し,他の条件では劣る可能性があります.

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

  1. 波動性フィルタリングを追加する: 市場波動性の評価のために ATR またはボリンジャー帯を導入する.
  2. タイムフレーム選択を最適化: 特定の機器特性に基づいてタイムフレームの組み合わせを調整する.
  3. ストップ・ロスのメカニズムを改良する: トレイリング・ストップや変動に基づくダイナミック・ストップ・ロスを追加する.
  4. ポジションサイズを向上させる: 信号強さと市場の変動に基づいてポジションサイズを動的に調整する.
  5. 市場環境の分析を含める: 市場状況の差異化のために傾向強さの指標を追加する.

概要

この戦略は,MACDフィルタリングと組み合わせたマルチタイムフレームハイキン・アシとEMAシステムを使用した完全なトレンドフォロー取引システムを構築する.この戦略は,パラメータ最適化およびリスク管理メカニズムを通じて異なる市場環境に適応できる信号信頼性とシステム安定性を徹底的に考慮する.この戦略の核心強みは信号のスムーズ化とマルチ検証メカニズムにある.一方,不安定な市場リスクとパラメータ最適化問題には注意を払わなければならない.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=5
strategy("Heikin Ashi Candle Time Frame @tradingbauhaus", shorttitle="Heikin Ashi Candle Time Frame @tradingbauhaus", overlay=true)

// Inputs
res = input.timeframe(title="Heikin Ashi Candle Time Frame", defval="60")
hshift = input.int(1, title="Heikin Ashi Candle Time Frame Shift")
res1 = input.timeframe(title="Heikin Ashi EMA Time Frame", defval="180")
mhshift = input.int(0, title="Heikin Ashi EMA Time Frame Shift")
fama = input.int(1, title="Heikin Ashi EMA Period")
test = input.int(1, title="Heikin Ashi EMA Shift")
sloma = input.int(30, title="Slow EMA Period")
slomas = input.int(1, title="Slow EMA Shift")
macdf = input.bool(false, title="With MACD filter")
res2 = input.timeframe(title="MACD Time Frame", defval="15")
macds = input.int(1, title="MACD Shift")

// Heikin Ashi calculation
var float ha_open = na
ha_close = (open + high + low + close) / 4
ha_open := na(ha_open[1]) ? (open + close) / 2 : (ha_open[1] + ha_close[1]) / 2
ha_high = math.max(high, math.max(ha_open, ha_close))
ha_low = math.min(low, math.min(ha_open, ha_close))

// Adjusted Heikin Ashi Close for different timeframes
mha_close = request.security(syminfo.tickerid, res1, ha_close[mhshift])

// MACD calculation
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdl = request.security(syminfo.tickerid, res2, macdLine[macds])
macdsl = request.security(syminfo.tickerid, res2, signalLine[macds])

// Moving Averages
fma = ta.ema(mha_close[test], fama)
sma = ta.ema(ha_close[slomas], sloma)
plot(fma, title="Heikin Ashi EMA", color=color.green, linewidth=2)
plot(sma, title="Slow EMA", color=color.red, linewidth=2)

// Strategy Logic
golong = ta.crossover(fma, sma) and (macdl > macdsl or not macdf)
goshort = ta.crossunder(fma, sma) and (macdl < macdsl or not macdf)

// Plot Shapes for Buy/Sell Signals
plotshape(golong, color=color.green, text="Buy", style=shape.triangleup, location=location.belowbar)
plotshape(goshort, color=color.red, text="SELL", style=shape.triangledown, location=location.abovebar)

// Strategy Orders
strategy.entry("Long", strategy.long, when=golong)
strategy.close("Long", when=goshort)
strategy.entry("Short", strategy.short, when=goshort)
strategy.close("Short", when=golong)

// Alerts
alertcondition(golong, "Heikin Ashi BUY", "")
alertcondition(goshort, "Heikin Ashi SELL", "")




関連性

もっと