该策略结合了多种技术指标和价格行为分析,旨在识别市场结构变化并利用趋势进行交易。策略核心包括:20日和200日指数移动平均线(EMA)判断趋势方向,相对强弱指数(RSI)和商品通道指数(CCI)确认动量,市场结构概念(SMC)识别关键支撑阻力位,突破结构(BOS)确认趋势延续,以及吞没形态/锤子线等蜡烛形态增强入场信号。最后通过追踪止损(ATR-based Trailing)动态管理风险。
||
The strategy combines multiple technical indicators and price action analysis to identify market structure changes and capitalize on trends. Key components include: 20-day and 200-day Exponential Moving Averages (EMA) for trend direction, Relative Strength Index (RSI) and Commodity Channel Index (CCI) for momentum confirmation, Smart Money Concepts (SMC) for identifying key support/resistance levels, Break of Structure (BOS) for trend continuation confirmation, and engulfing/hammer candlestick patterns to enhance entry signals. Finally, it uses ATR-based trailing stops for dynamic risk management.
||
||
||
||
本策略通过融合传统技术指标(SMC+EMA)与现代量化技术(ATR自适应风控),构建了一个具备机构级逻辑的零售交易系统。其核心价值在于:①严格的多条件验证框架 ②符合市场微观结构理论 ③动态风险调整机制。最佳应用场景为趋势初现阶段(通过BOS确认),需规避重要经济数据发布前后的高不确定性时段。
||
This strategy combines traditional technical indicators (SMC+EMA) with modern quant techniques (ATR-adaptive risk control) to create an institutional-grade retail trading system. Key value propositions include: ① Rigorous multi-condition verification ② Alignment with market microstructure theory ③ Dynamic risk adjustment. Optimal application is during early trend phases (confirmed by BOS), avoiding high-uncertainty periods around major economic releases.
/*backtest
start: 2025-04-22 00:00:00
end: 2025-04-23 00:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy("SMC + EMA + Candles + RSI/CCI + BOS + Trailing", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === EMAs
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)
plot(ema20, color=color.orange, linewidth=1)
plot(ema200, color=color.blue, linewidth=1)
// === RSI and CCI
rsi = ta.rsi(close, 14)
cci = ta.cci(close, 20)
rsi_ok_long = rsi > 50
rsi_ok_short = rsi < 50
cci_ok_long = cci > 0
cci_ok_short = cci < 0
// === ATR
atr = ta.atr(14)
tp_mult = 2.0
sl_mult = 1.0
trail_offset = atr * 1.0
trail_step = atr * 0.5
// === Price Action Candles
bull_engulf = close[1] < open[1] and close > open and close > open[1] and open <= close[1]
bear_engulf = close[1] > open[1] and close < open and close < open[1] and open >= close[1]
bull_pinbar = (high - math.max(open, close)) > 2 * (math.min(open, close) - low)
bear_pinbar = (math.min(open, close) - low) > 2 * (high - math.max(open, close))
doji = math.abs(close - open) <= (high - low) * 0.1
bull_marubozu = close > open and high - close < atr * 0.1 and open - low < atr * 0.1
bear_marubozu = open > close and high - open < atr * 0.1 and close - low < atr * 0.1
bull_candle = bull_engulf or bull_pinbar or bull_marubozu or doji
bear_candle = bear_engulf or bear_pinbar or bear_marubozu or doji
// === Smart Money Concept (SMC) Zones
swing_high = ta.pivothigh(high, 10, 10)
swing_low = ta.pivotlow(low, 10, 10)
var float supply_zone = na
var float demand_zone = na
if not na(swing_high)
supply_zone := swing_high
if not na(swing_low)
demand_zone := swing_low
// === Break of Structure (BOS) Confirmation
bos_long = ta.crossover(close, supply_zone)
bos_short = ta.crossunder(close, demand_zone)
// === Proximity to Structure Zones
near_demand = not na(demand_zone) and close >= demand_zone * 0.98 and close <= demand_zone * 1.01
near_supply = not na(supply_zone) and close <= supply_zone * 1.02 and close >= supply_zone * 0.99
// === Long Entry Condition
longCondition = (close > ema20 or close > ema200) and near_demand and bull_candle and bos_long and rsi_ok_long and cci_ok_long
// === Short Entry Condition
shortCondition = (close < ema20 or close < ema200) and near_supply and bear_candle and bos_short and rsi_ok_short and cci_ok_short
// === Entry and Exit (with Trailing Stop)
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", trail_points=trail_offset, trail_offset=trail_step)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", trail_points=trail_offset, trail_offset=trail_step)
// === Plotting Structure Zones
plot(supply_zone, title="Supply", color=color.red, style=plot.style_linebr, linewidth=1)
plot(demand_zone, title="Demand", color=color.green, style=plot.style_linebr, linewidth=1)
plot(rsi, title="RSI", color=color.fuchsia)
plot(cci, title="CCI", color=color.teal)