
これは,スマートマネーコンセプト (SMC) と機関取引における価格不均衡理論にインスパイアされた,フェア・バリュー・ギャップ (FVG) に基づく量的な取引戦略である.この戦略は,市場内の微小な不均衡点を認識し,価格がこれらの領域に戻ると,シグナル取引を誘発する.この戦略は,0.10%の固定ストップ・ロースとストップ・ストップの設定を採用し,ショートライントレーダーとアルゴリズムトレーダーを対象に設計されており,市場における微小な波動を捉えるための厳密なリスクコントロールを目的としています.
この戦略の核心は,公正価値のギャップ (FVG) を認識し,利用することである.FVGは,価格が短期間に飛び越えた領域であり,市場が十分に取引されていない価格レベルを代表し,通常は価格が将来的に再測される可能性がある領域と考えられている.
戦略は主に2種類のFVGに基づいています.
取引の論理は以下の通りです.
策略には,微小な市場騒音を回避するために十分な大きなギャップをフィルターするための値フィルターも含まれている.ユーザーは,手動で値のパーセントを設定するか,または,戦略が歴史的な変動の動向に基づいて値を調整するように自動モードを選択することができます.
マイクロ市場構造の識別戦略は,通常技術分析では無視されるかもしれない微小市場の構造と不均衡を捉えることができ,これらの構造は,しばしば機関資金の活動痕跡を表します.
入り口の正確な位置: 明確に定義されたFVG条件によって,戦略は客観的で正確な入場信号を提供し,主観的な判断による誤りを減らす.
リスクのコントロール固定0.10%の止損設定により,取引ごとにリスクが厳格に管理され,資金管理に厳格なトレーダーに適しています.
拡張性がある: 戦略の枠組みは柔軟に設計されており,追加のフィルターを追加したり,パラメータを調整したりすることで,異なる市場条件に適応できます.
書き換える問題なし: コード実装は,再描写の問題を回避し,履歴回測結果とリッドディスクのパフォーマンスが一致することを保証します.
多時間枠の適応性: ユーザは時間枠のパラメータをカスタマイズすることができ,戦略が1分からそれ以上の時間周期の異なる取引環境に適応できるようにします.
ショートライン取引の頻度が高い戦略が微小な不均衡を狙っているため,大量取引信号が生み出され,取引コストが増加し,特に高周波取引環境では顕著である.
騒音による干渉: 低波動性または横盤市場では,FVG信号はより多くのノイズを含み,偽信号が増える可能性があります.
固定ストップリスク固定0.10%のストップは,厳格なリスクコントロールを提供しているものの,波動性高い市場では過密になり,頻繁にトリガーされる可能性があります.
トレンドの逆転のリスク: 強いトレンドの市場では,逆のFVG信号は,主動トレンドと逆の取引を誘導し,損失の可能性を増加させる可能性があります.
パラメータ感度: 値パラメータの設定は,戦略の性能に顕著な影響を及ぼし,不適切なパラメータは,過度に最適化または有効な信号を逃す可能性があります.
リスクの軽減には以下の方法があります.
値に適応するシステム:現在の戦略には自動減価償却のオプションが含まれていますが,市場波動性指標 (ATRなど) に基づく自己適応システムとしてさらに最適化され,FVGが現在の市場状況により正確に適応できるようにすることができます.
複数時間枠確認: 複数の時間枠分析を導入し,より高い時間枠のトレンド方向がFVG信号と一致する時にのみ取引を実行し,勝利率を向上させる.
ダイナミック・ストップ・ストップ: 固定0.10%のストップ/ストップを市場の変動に基づくダイナミックな設定に置き換えて,変動が増加すると自動的にストップ範囲を拡大し,変動が減少すると範囲を縮小します.
取引量確認:FVG形成と価格再入場の過程に取引量分析を加え,十分な取引量サポートがある場合にのみ取引を実行し,偽信号を減らす.
市場状況の分類: 市場状態の自動識別システム ((トレンド,区間,高/低変動) を実現し,異なる市場状態に応じて戦略パラメータを調整するか,取引を一時停止する.
機械学習の強化: 機械学習アルゴリズムを使用して,FVGパターンの成功率を分析し,現在のFVG信号の潜在的成功率を評価する予測モデルを構築する.
これらの最適化方向は,戦略の安定性を向上させるだけでなく,異なる市場環境に適応する能力を高め,潜在的に全体的な収益率を向上させ,撤退を減らすことができます.
公平価値ギャップ戦略は,市場微細構造の価格不均衡を捕捉することに専念する技術的に精巧な量化取引システムである.FVGの正確な識別と精密な実行により,この戦略は,ショートライントレーダーとアルゴリズムトレーダーに明確なルールと厳格なリスク管理を備えた取引の枠組みを提供します.
策略は,基本版では微小価格不均衡を捕捉する能力を示しているが,提案された最適化方向,特に自在パラメータシステムと複数時間枠の確認を実行することによって,策略の性能をさらに向上させることができる.短時間枠で厳格に規律された量化取引戦略を実行しようとするトレーダーにとって,これは考慮すべき方法である.
最終的に,この戦略の成功は,FVGの概念の深い理解と,異なる市場条件に応じてパラメータを調整する能力のトレーダーに依存します.適切なリスク管理と継続的な最適化と組み合わせた,フェア・ヴァリュー・ギャップ・ストラテジーは,量化取引ポートフォリオの有効なツールになります.
/*backtest
start: 2024-07-09 00:00:00
end: 2025-07-04 08:00:00
period: 4d
basePeriod: 4d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("FVG Strategy [algo ] - 0.10% TP/SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === INPUTS ===
thresholdPer = input.float(0, "Threshold %", minval = 0, maxval = 100, step = .1, inline = 'threshold')
auto = input(false, "Auto", inline = 'threshold')
tf = input.timeframe("", "Timeframe")
// SL/TP settings (0.10% each)
sl_pct = 0.10
tp_pct = 0.10
// === TYPE ===
type fvg
float max
float min
bool isbull
int t = time
// === DETECTION FUNCTION ===
detect() =>
var new_fvg = fvg.new(na, na, na, na)
threshold = auto ? ta.cum((high - low) / low) / bar_index : thresholdPer / 100
bull_fvg = low > high[2] and close[1] > high[2] and (low - high[2]) / high[2] > threshold
bear_fvg = high < low[2] and close[1] < low[2] and (low[2] - high) / high > threshold
if bull_fvg
new_fvg := fvg.new(low, high[2], true)
else if bear_fvg
new_fvg := fvg.new(low[2], high, false)
[bull_fvg, bear_fvg, new_fvg]
// === FVG Detection ===
[bull_fvg, bear_fvg, new_fvg] = request.security(syminfo.tickerid, tf, detect())
var fvg_records = array.new<fvg>(0)
var t = 0
if (bull_fvg or bear_fvg) and new_fvg.t != t
array.unshift(fvg_records, new_fvg)
t := new_fvg.t
// === ENTRY STRATEGY ===
if array.size(fvg_records) > 0
latest = array.get(fvg_records, 0)
// BUY Logic
if latest.isbull and close <= latest.max and close >= latest.min and strategy.position_size <= 0
sl = close * (1 - sl_pct / 100)
tp = close * (1 + tp_pct / 100)
strategy.entry("Buy FVG", strategy.long)
strategy.exit("TP/SL Long", from_entry="Buy FVG", stop=sl, limit=tp)
// SELL Logic
if not latest.isbull and close >= latest.min and close <= latest.max and strategy.position_size >= 0
sl = close * (1 + sl_pct / 100)
tp = close * (1 - tp_pct / 100)
strategy.entry("Sell FVG", strategy.short)
strategy.exit("TP/SL Short", from_entry="Sell FVG", stop=sl, limit=tp)
// === VISUALIZE FVG ZONES ===
plotshape(bull_fvg, title="Bullish FVG", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(bear_fvg, title="Bearish FVG", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)