この戦略は,シンプル・ムービング・平均値 (SMA) のクロスオーバーとフェア・バリューギャップ (FVG) のプルバックを組み合わせた包括的な取引システムである. 8 期間のSMAと 20 期間のクロスオーバーを使用して,潜在的なトレンド変化を特定し,FVGを使用してより正確なエントリーポイントを決定する.このアプローチは,主要なサポート/レジスタンス領域への価格のプルバックを待つことでエントリータイミングを最適化しながら,市場のトレンドシフトを把握することを目的としている.
SMAクロスオーバー: 8期および20期の単純な移動平均値を使用する.短期SMAが長期SMAを上回るときに上昇信号,短期SMAが長期SMAを下回るときに下落信号が生成される.
フェアバリューギャップ (FVG):現在のキャンドル高値が前のキャンドル高値よりも高く,現在のキャンドル低値が前のキャンドル低値よりも低いとき,FVGが形成される.この価格帯は市場が"フェアバリュー"を求めている場合と考えられる.
入国条件:
出口条件:逆のSMAクロスオーバーが発生するとポジションを閉じる.
トレンドフォローとプルバックを組み合わせます.SMAクロスオーバーとFVGプルバックを統合することで,戦略はより有利な価格レベルに入っていながら主要なトレンドを把握することができます.
偽信号を減らす:価格がFVGに戻るのを待つことで,潜在的な偽クロスオーバー信号をフィルタリングし,取引の精度を向上させることができます.
リスク管理:FVGをエントリーポイントとして使用すると,自然にストップロスの配置が厳しくなり,リスクを制御するのに役立ちます.
適応性: 戦略は,SMA期間とFVGパラメータを調整することによって,異なる市場環境と取引手段に適応できます.
客観性: 明確な技術指標と価格行動に基づいて,主観的な判断の影響を軽減する.
乱交市場リスク: 範囲限定または乱交市場では,頻繁なSMAクロスオーバーが過剰な取引と損失につながる可能性があります.
遅延:遅延指標として,SMAはトレンドの開始時にいくつかの機会を逃す可能性があります.
誤ったブレイクリスク:価格が短期間FVGを突破し,その後後退し,誤った信号を引き起こす可能性があります.
市場格差リスク: 不安定な市場では,価格がFVG領域を超えて格差し,取引機会を逃す可能性があります.
パラメータ敏感性:戦略のパフォーマンスはSMA期間とFVG定義パラメータに敏感であり,注意深く最適化する必要があります.
ダイナミック・SMA・ペリオード: 異なる市場状況に適応するために,市場の変動に基づいて,ダイナミック・SMA・ペリオードを調整することを検討する.
追加フィルター: 傾向を確認し,誤った信号を減らすために,追加の技術指標 (RSIやMACDなど) を導入します.
FVGの定義を改善する: FVGを定義するために複数のキャンドルを使用してみるか,FVGの有効性を検証するためにボリュームを検討してください.
脱出戦略を最適化する: 利潤をより良く保護するために,トラッキングストップまたは変動に基づくダイナミックストップを実施する.
時間フィルターを追加する: FVGの形成時間を考慮し,FVGの有効性を確保するための時間窓を設定する可能性があります.
リスク管理の最適化: より洗練されたリスク管理のために,市場の変動に基づいてポジションサイズを動的に調整する.
/*backtest start: 2023-07-25 00:00:00 end: 2024-07-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("8 SMA and 20 SMA with FVG Pullback", overlay=true) // Input parameters smaShortLength = input.int(8, title="Short SMA Length") smaLongLength = input.int(20, title="Long SMA Length") // Calculate SMAs smaShort = ta.sma(close, smaShortLength) smaLong = ta.sma(close, smaLongLength) // Plot SMAs plot(smaShort, title="8 SMA", color=color.blue) plot(smaLong, title="20 SMA", color=color.red) // Identify SMA crossovers longCondition = ta.crossover(smaShort, smaLong) shortCondition = ta.crossunder(smaShort, smaLong) // Fair Value Gaps (FVG) logic var float fvgHigh = na var float fvgLow = na if (ta.valuewhen(high[1] < high and low[1] > low, high, 0) and ta.valuewhen(high[1] < high and low[1] > low, low, 0)) fvgHigh := high fvgLow := low plot(fvgHigh, title="FVG High", color=color.purple, linewidth=1, style=plot.style_line) plot(fvgLow, title="FVG Low", color=color.orange, linewidth=1, style=plot.style_line) // Entry conditions if (longCondition) if (low <= fvgLow) strategy.entry("Long", strategy.long) if (shortCondition) if (high >= fvgHigh) strategy.entry("Short", strategy.short) // Exit conditions (optional, you can modify these as per your risk management strategy) if (ta.crossunder(smaShort, smaLong)) strategy.close("Long") if (ta.crossover(smaShort, smaLong)) strategy.close("Short")