
市場では90%のトレーダーが 落とし穴を狙っているのに,本当の高手たちは “価格の空白”を探している!Advanced FVG Strategy Pro+は,これらの謎の穴を捕まえるためのスーパー武器です.
FVG (フェアバリューギャップ) は,単に価格が跳ね上がったときに残される”空白地帯”であり,まるであなたが水槽を横切って歩いているように,いつか戻ってきて”穴を補う”のです.
1. 多時間枠分析 戦略は5分間の図で実行できますが,1時間のFVG信号で,望遠鏡で遠くの山を見るようなもので,拡大鏡で細部を見て,視野はより広範囲です!
2. IIRトレンドフィルター
これは普通の移動平均値ではありません! 工学的なIIR低通波フィルターで,トレンドの方向を正確に識別できます. 想像してみて下さい,これはあなたの取引に”トレンドレーダー”を装着して,風が通っているときにのみ攻撃します!
3. スマートリスクマネジメント パーセンテージと固定金利の2つのリスクモードをサポートし,防爆貯金保護機能もあります. 車の安全帯と安全袋の2つの保護があるように,あなたの口座はより安全です!
適切な状況とは
洞窟のガイドライン:
伝統的な戦略では,信号が少ないからチャンスを逃すか,信号が多すぎて偽突破の穴に突入する.この戦略は,複数のフィルタリングメカニズムを介して, “むしろ欠けていた”の精度の攻撃を成し遂げた!
調律師の調律のように,様々な市場の状況に合わせて,最も適切な取引のリズムを”調律”することができます.
FVGの魅力とは,あなたが毎日取引するのではなく,あなたが最も確実なときに取引することを意味します.
/*backtest
start: 2024-09-01 00:00:00
end: 2025-08-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Advanced FVG Strategy Pro+ (v6)", overlay=true,
initial_capital=10000,
default_qty_type=strategy.fixed,
default_qty_value=1,
commission_type=strategy.commission.percent,
commission_value=0.05,
calc_on_every_tick=true,
process_orders_on_close=true)
// ---------------- Inputs ----------------
fvg_tf = input.timeframe("", "FVG Timeframe (MTF)")
bodySens = input.float(1.0, "FVG Body Sensitivity", step=0.1, minval=0.0)
mitigate_mid = input.bool(true, "Mitigation on Midpoint")
rr_ratio = input.float(2.0, "Risk/Reward Ratio", step=0.1)
risk_mode = input.string("Percent", "Risk Mode", options=["Percent","Fixed $"])
risk_perc = input.float(1.0, "Risk % (of Equity)", minval=0.1, maxval=10.0)
risk_fixed = input.float(100.0, "Fixed $ Risk", minval=1.0)
useTrend = input.bool(true, "Filter with FVG Trend")
rp = input.float(10.0, "Trend Filter Ripple (dB)", minval=0.1, step=0.1)
fc = input.float(0.1, "Trend Filter Cutoff (0..0.5)", minval=0.01, maxval=0.5, step=0.01)
extendLength = input.int(10, "Extend Boxes (bars)", minval=0)
// ---------------- MTF candles ----------------
c1 = fvg_tf == "" ? close : request.security(syminfo.tickerid, fvg_tf, close, lookahead = barmerge.lookahead_on)
o1 = fvg_tf == "" ? open : request.security(syminfo.tickerid, fvg_tf, open, lookahead = barmerge.lookahead_on)
h1 = fvg_tf == "" ? high : request.security(syminfo.tickerid, fvg_tf, high, lookahead = barmerge.lookahead_on)
l1 = fvg_tf == "" ? low : request.security(syminfo.tickerid, fvg_tf, low, lookahead = barmerge.lookahead_on)
h2 = fvg_tf == "" ? high[2] : request.security(syminfo.tickerid, fvg_tf, high[2], lookahead = barmerge.lookahead_on)
l2 = fvg_tf == "" ? low[2] : request.security(syminfo.tickerid, fvg_tf, low[2], lookahead = barmerge.lookahead_on)
// ---------------- FVG detection ----------------
float wick = math.abs(c1 - o1)
float avg_body = ta.sma(wick, 50)
bool bullFVG = (l1 > h2) and (c1 > h2) and (wick >= avg_body * bodySens)
bool bearFVG = (h1 < l2) and (c1 < l2) and (wick >= avg_body * bodySens)
// ---------------- Trend Filter (IIR low-pass) ----------------
float src = (h1 + l1) / 2.0
float epsilon = math.sqrt(math.pow(10.0, rp/10.0) - 1.0)
float d = math.sqrt(1.0 + epsilon * epsilon)
float c = 1.0 / math.tan(math.pi * fc)
float norm = 1.0 / (1.0 + d * c + c * c)
float b0 = norm
float b1 = 2.0 * norm
float b2 = norm
float a1 = 2.0 * norm * (1.0 - c * c)
float a2 = norm * (1.0 - d * c + c * c)
var float trend = na
var float trend1 = na
var float trend2 = na
trend := bar_index < 2 ? src : (b0 * src + b1 * src[1] + b2 * src[2] - a1 * nz(trend1) - a2 * nz(trend2))
trend2 := trend1
trend1 := trend
bool trendUp = trend > nz(trend[1])
bool trendDown = trend < nz(trend[1])
// ---------------- Strategy Conditions ----------------
bool longCond = bullFVG and (not useTrend or trendUp)
bool shortCond = bearFVG and (not useTrend or trendDown)
// stop loss / take profit (based on MTF gap edges)
float longSL = l1
float shortSL = h1
float longRisk = close - longSL
float shortRisk = shortSL - close
float longTP = close + (close - longSL) * rr_ratio
float shortTP = close - (shortSL - close) * rr_ratio
// ---------------- Position sizing ----------------
float equity = strategy.equity
float riskCash = risk_mode == "Percent" ? (equity * risk_perc / 100.0) : risk_fixed
float longQty = (longRisk > 0.0) ? (riskCash / longRisk) : na
float shortQty = (shortRisk > 0.0) ? (riskCash / shortRisk) : na
// safety cap: avoid ridiculously large position sizes (simple protective cap)
float maxQty = math.max(1.0, (equity / math.max(1e-8, close)) * 0.25) // cap ~25% equity worth of base asset
if not na(longQty)
longQty := math.min(longQty, maxQty)
if not na(shortQty)
shortQty := math.min(shortQty, maxQty)
// small extra guard (do not trade if qty becomes extremely small or NaN)
bool canLong = longCond and not na(longQty) and (longQty > 0.0)
bool canShort = shortCond and not na(shortQty) and (shortQty > 0.0)
// ---------------- Orders ----------------
if canLong
strategy.entry("Long", strategy.long, qty = longQty)
strategy.exit("Long TP/SL", "Long", stop = longSL, limit = longTP)
if canShort
strategy.entry("Short", strategy.short, qty = shortQty)
strategy.exit("Short TP/SL", "Short", stop = shortSL, limit = shortTP)
// ---------------- Visuals ----------------
plotshape(longCond, title="Bull FVG", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(shortCond, title="Bear FVG", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar, size=size.small)
plot(useTrend ? trend : na, title="FVG Trend", color=trendUp ? color.lime : trendDown ? color.red : color.gray, linewidth=2)