
多層雲動量EMA戦略は,一目均衡雲 ((イチモク・クラウド) と指数移動平均 ((EMA) を組み合わせたトレンド追跡システムである.この戦略は,雲の位置,取引量フィルター,EMA技術指標に対する価格を判断することによって,市場のトレンド方向を識別し,適切な時に買入・売却シグナルを発信する.この戦略は,同時に,ダイナミック・ストップ・メカニズムを使用してリスクを制御し,比較的完全な取引システムになる.
この戦略は以下の核心原則に基づいています.
ブログの記事ではこう述べています.
取引量確認:
EMAの指標のフィルター:
ストップダスト設定:
論理的なプロセスを実行する戦略:
複数の指標の確認信号の信頼性を高め,偽信号のリスクを低減する.
フレキシブルな条件配置: 策略は,EMAフィルタリング条件を満たす必要があるかどうかをユーザーにカスタマイズさせ,異なる市場環境に適応性を提供します.
リスクの管理: パーセンテージ・ストップ・ロスの設定により,明確なリスク管理パラメータを提供し,資金の安全性を保護します.
トレンドを捉える能力EMAの確認は,中長期のトレンドを捉える戦略の能力を強化しています.
流動性の考慮取引量フィルターで,十分な流動性のある市場での取引のみを保証し,低流動性の環境の不確実性を回避します.
明確な入場・出場論理策略は,明瞭な入場 ((クラウドブレイク+取引量)) と出場 ((EMAブレイクまたはストップ) の条件を備えており,取引意思決定プロセスを明確にする.
横盤市場も不振だった.: トレンド追跡戦略として,横軸振動の状況で誤信号が頻繁に発生し,連続的な損失を引き起こす可能性があります. 解決策: 波動率フィルターを追加して,低波動率環境で取引を一時停止することができます.
遅滞のリスク一目,均衡雲指標は,特に先行帯が26周期の位移を設定しているため,遅滞性があるため,入場タイミングが望ましくない可能性があります. 解決策:位移パラメータを調整するか,より敏感な短期指標を併用することを補助として検討することができます.
トリガー周波数停止解決方法: 取引品種の波動性特性に応じてストップパーセンテージを動的に調整する.
パラメータ感度: 戦略効果はパラメータ設定 (EMA周期,初等均衡雲パラメータなど) に敏感であり,異なる市場環境では異なるパラメータが必要になる可能性がある. 解決策:パラメータ最適化テストを行い,より安定したパラメータ組み合わせを見つける.
収益目標の欠如策略:明瞭な止損が定義されているが,利益目標が設定されていないため,リコールで既に利益が失われた可能性があります. 解決策:移動止損または利益目標のパラメータを増やす.
動態参数調整:
市場環境のフィルターを増やすこと:
止装置の最適化:
入場と出場は:
逆転確認の指標を追加する:
多層雲動力EMA戦略は,一目平衡の雲,EMA,取引量フィルターの統合されたトレンド追跡システムである.複数の技術指標の組み合わせによる使用により,この戦略は,トレンドをよりよく識別し,明確な入場および出場シグナルを提供することができる.同時に,内蔵されたストップダメージメカニズムは,リスク管理を保証する.
戦略の核心的な優位性は,価格位置,トレンド方向,取引量,動的ストップなど,複数の重要な取引要因を総合的に考慮して,比較的完全な取引意思決定の枠組みを構築することにある.しかし,トレンド追跡システムとして,この戦略は横断市場ではうまく機能しない可能性があり,パラメータ設定にはある種の感度がある.
この戦略は,推奨された方向の最適化,特に動的パラメータの調整,市場環境のフィルタリング,および停止メカニズムの最適化によって,異なる市場環境でより安定したパフォーマンスを期待しています. 最終的には,この戦略は,トレンドをフォローするトレーダーに構造化された技術分析の枠組みを提供し,トレンドの機会を把握しながらリスクを制御するのに役立ちます.
/*backtest
start: 2024-08-04 00:00:00
end: 2025-08-02 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud Buy & Sell w/ Custom EMA & Volume Filters", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === INPUTS ===
conversionPeriods = input.int(9, title="Tenkan-sen Periods")
basePeriods = input.int(26, title="Kijun-sen Periods")
displacement = input.int(26, title="Cloud Displacement")
laggingSpan = input.int(52, title="Senkou Span B Periods")
emaPeriod = input.int(44, title="EMA Length for Exit", minval=1)
avgVolLen = input.int(10, title="Average Volume Length for Filter")
useStopLoss = input.bool(true, title="Use Stop Loss for Exits")
stopLossPerc = input.float(2.0, title="Stop Loss (%)", minval=0.1, step=0.1)
requireAboveEMA = input.bool(true, title="Only Buy Above EMA?")
requireBelowEMA = input.bool(true, title="Only Sell Below EMA?")
// === ICHIMOKU CALCULATIONS ===
tenkan = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2
kijun = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2
senkouA = (tenkan + kijun) / 2
senkouB = (ta.highest(high, laggingSpan) + ta.lowest(low, laggingSpan)) / 2
senkouA_now = senkouA[displacement]
senkouB_now = senkouB[displacement]
// === EMA CALC ===
emaVal = ta.ema(close, emaPeriod)
// === VOLUME CONDITION ===
avgVol = ta.sma(volume[1], avgVolLen) // Excludes current candle's volume
volCondition = volume > avgVol
// === BUY CONDITION ===
buyCondition = (close > senkouA_now and close > senkouB_now and volCondition and (not requireAboveEMA or close > emaVal))
if buyCondition
stopLevel = useStopLoss ? close * (1 - stopLossPerc / 100) : na
strategy.entry("Buy", strategy.long)
if useStopLoss
strategy.exit("Buy SL", from_entry="Buy", stop=stopLevel)
// === SELL CONDITION ===
sellCondition = (close < senkouA_now and close < senkouB_now and volCondition and (not requireBelowEMA or close < emaVal))
if sellCondition
stopLevelSell = useStopLoss ? close * (1 + stopLossPerc / 100) : na
strategy.entry("Sell", strategy.short)
if useStopLoss
strategy.exit("Sell SL", from_entry="Sell", stop=stopLevelSell)
// === EXIT CONDITIONS ===
exitBuy = close < emaVal // Exit long if close < EMA
if exitBuy
strategy.close("Buy")
exitSell = close > emaVal // Exit short if close > EMA
if exitSell
strategy.close("Sell")
// === PLOTS ===
plot(emaVal, color=color.yellow, linewidth=2, title="EMA")
plot(senkouA, color=color.green, title="Senkou Span A", offset=displacement)
plot(senkouB, color=color.red, title="Senkou Span B", offset=displacement)