该策略是一个基于均线趋势判断和支撑位假突破的交易系统。策略通过50周期和200周期简单移动平均线判断市场趋势,结合支撑位的假突破形态产生交易信号,并使用ATR(平均真实波幅)指标动态设置止损位置,在突破点位设置获利目标。这种策略充分利用了市场的趋势特性和价格运动规律,通过捕捉假突破后的反弹机会来获取收益。
策略的核心逻辑包含以下几个关键要素: 1. 趋势判断:使用50周期和200周期均线的位置关系判断市场趋势,当短期均线位于长期均线之上时,确认上升趋势。 2. 支撑位计算:通过枢轴点公式计算支撑位,利用前一周期的最高价、最低价和收盘价的加权平均。 3. 假突破确认:当价格在上升趋势中短暂跌破支撑位后又收于支撑位之上时,形成做多信号。 4. 风险管理:使用14周期ATR计算动态止损位置,确保在市场波动加剧时扩大止损范围。 5. 获利目标:通过计算前10个周期的最高价作为获利目标,保证盈利空间充足。
多重均线支撑位假突破策略是一个结合了趋势跟随和价格形态的完整交易系统。通过均线系统的趋势判断和支撑位假突破的形态识别,配合ATR动态止损,构建了一个风险可控的交易策略。该策略的核心优势在于系统化的操作流程和清晰的风险管理方法。通过持续优化和改进,策略可以更好地适应不同市场环境,提高交易效果。在实盘应用中,建议投资者根据自身风险承受能力和市场特征,对策略参数进行针对性调整。
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-26 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("False Break Trading Strategy", overlay=true)
// Define inputs for strategy parameters
sma50Length = input.int(50, title="SMA 50 Length")
sma200Length = input.int(200, title="SMA 200 Length")
atrLength = input.int(14, title="ATR Length")
lookbackPeriod = input.int(10, title="Swing High Lookback Period")
// Calculate SMAs
sma50 = ta.sma(close, sma50Length)
sma200 = ta.sma(close, sma200Length)
// Calculate ATR
atr = ta.atr(atrLength)
// Check if we are in an uptrend
isUptrend = sma50 > sma200
// Calculate Pivot, Support, and Target Profit (Swing High)
pivot = (high[1] + low[1] + close[1]) / 3
support = (2 * pivot) - high[1]
swingHigh = ta.highest(high, lookbackPeriod)
// Create signals for entry
var float entryPrice = na
var float stopLoss = na
var float targetProfit = na
longCondition = isUptrend and low[1] < support and close > support
if (longCondition)
entryPrice := open
stopLoss := low - atr
targetProfit := swingHigh
// Plot signals and lines on chart
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
// Plot levels for entry, stop loss, and target
plot(entryPrice, title="Entry Price", color=color.blue, linewidth=2, style=plot.style_linebr)
plot(stopLoss, title="Stop Loss", color=color.red, linewidth=2, style=plot.style_linebr)
plot(targetProfit, title="Target Profit", color=color.green, linewidth=2, style=plot.style_linebr)
// Backtest: Simulate exit points for the strategy
if (longCondition)
strategy.entry("Long", strategy.long)
if (na(stopLoss) == false and na(targetProfit) == false)
strategy.exit("Take Profit/Stop Loss", "Long", stop=stopLoss, limit=targetProfit)