该策略是一个融合了ICT(内部交易商概念)、吞没形态和供需区域分析的综合交易系统。它通过多维度分析市场结构,结合技术指标和价格行为来识别高概率交易机会。策略在15分钟时间框架上运行,采用百分比止损止盈方式来管理风险。
策略的核心逻辑基于三个主要组成部分: 1. 使用20个周期的最高价和最低价来建立供需区域,这些区域作为重要的支撑和阻力位。 2. 通过分析相邻蜡烛图之间的关系来识别看涨和看跌吞没形态。 3. 当价格突破供需区域且出现吞没形态时,系统会在考虑风险管理的情况下执行交易。
系统使用资金的10%进行每次交易,并设置了1.5%的止损和3%的止盈,这种设置提供了2:1的风险收益比。
风险控制建议: - 建议在不同市场条件下调整参数 - 考虑增加确认指标 - 可以根据波动率动态调整止损止盈水平
这是一个结构完善的综合交易系统,通过多维度分析提供了可靠的交易信号。系统的风险管理合理,但仍有优化空间。建议交易者在实盘使用前进行充分的回测,并根据具体市场条件调整参数。策略的模块化设计使其具有良好的可扩展性,可以根据需要添加新的分析维度。
/*backtest
start: 2025-01-26 00:00:00
end: 2025-02-25 00:00:00
period: 1h
basePeriod: 1m
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/
//@version=5
strategy("ICT + 吞没形态 + 供需区", overlay=true)
// 输入设置
use_snd = input(true, title="启用供需区") // 是否启用供需区功能
stopLossPerc = input(1.5, title="止损百分比") // 止损百分比
takeProfitPerc = input(3, title="止盈百分比") // 止盈百分比
// 识别吞没形态
bullishEngulfing = (close[1] < open[1]) and (close > open) and (close > open[1]) and (open < close[1]) // 看涨吞没:前一根K线为阴线且当前K线为阳线,且当前K线吞没前一根K线
bearishEngulfing = (close[1] > open[1]) and (close < open) and (close < open[1]) and (open > close[1]) // 看跌吞没:前一根K线为阳线且当前K线为阴线,且当前K线吞没前一根K线
// 供需区(基本识别)
highestHigh = ta.highest(high, 20) // 过去20个周期的最高价
lowestLow = ta.lowest(low, 20) // 过去20个周期的最低价
supplyZone = use_snd ? highestHigh : na // 如果启用供需区,则将最高价视为供给区
demandZone = use_snd ? lowestLow : na // 如果启用供需区,则将最低价视为需求区
// 进场和出场条件
longCondition = bullishEngulfing and close > demandZone // 当出现看涨吞没形态且当前价格高于需求区时,满足多头条件
shortCondition = bearishEngulfing and close < supplyZone // 当出现看跌吞没形态且当前价格低于供给区时,满足空头条件
// 止损和止盈计算
longSL = close * (1 - stopLossPerc / 100) // 多头止损价:当前价格减去止损百分比
longTP = close * (1 + takeProfitPerc / 100) // 多头止盈价:当前价格加上止盈百分比
shortSL = close * (1 + stopLossPerc / 100) // 空头止损价:当前价格加上止损百分比
shortTP = close * (1 - takeProfitPerc / 100) // 空头止盈价:当前价格减去止盈百分比
// 执行交易
if (longCondition) // 如果满足多头条件
strategy.entry("Long", strategy.long) // 执行开仓多头交易
strategy.exit("Long Exit", from_entry="Long", stop=longSL, limit=longTP) // 设置止损和止盈
if (shortCondition) // 如果满足空头条件
strategy.entry("Short", strategy.short) // 执行开仓空头交易
strategy.exit("Short Exit", from_entry="Short", stop=shortSL, limit=shortTP) // 设置止损和止盈
// 绘制供需区
plot(use_snd ? supplyZone : na, color=color.red, title="供给区") // 如果启用供需区,绘制供给区,颜色为红色
plot(use_snd ? demandZone : na, color=color.green, title="需求区") // 如果启用供需区,绘制需求区,颜色为绿色