该策略是一个综合性的趋势跟踪交易系统,结合了鳄鱼指标(Alligator)、动量震荡指标(AO)和加速震荡指标(AC)的多重信号确认机制。系统通过多重指标的交叉和趋势确认来识别市场趋势,并配合动态止盈止损来管理风险,实现可控的交易效果。
策略核心逻辑基于三个主要组件: 1. 鳄鱼指标系统:使用不同周期(13/8/5)的移动平均线,通过唇线(Lips)与牙齿线(Teeth)的交叉来确认趋势方向。 2. 动量确认系统:结合AO和AC指标,通过判断这两个指标的正负值来确认趋势强度。 3. 风险管理系统:采用动态止损设置,基于过去5根K线的最高/最低点设置止损,并采用1:2的风险收益比设置止盈点。
多重信号触发条件: - 多头入场:唇线上穿牙齿线 + AO为正 + AC为正 - 空头入场:唇线下穿牙齿线 + AO为负 + AC为负
该策略通过综合运用多个技术指标,建立了一个完整的交易系统。系统不仅注重信号的准确性,还通过严格的风险管理来保护资金。虽然存在一定的滞后性风险,但通过建议的优化方向,策略有望获得更好的表现。适合追求稳健收益的投资者使用。
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Alligator with AO and AC Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// ---------------------------- Индикатор Аллигатор ----------------------------
// Параметры Аллигатора
jawLength = input.int(13, title="Jaw Length")
teethLength = input.int(8, title="Teeth Length")
lipsLength = input.int(5, title="Lips Length")
jawOffset = input.int(8, title="Jaw Offset")
teethOffset = input.int(5, title="Teeth Offset")
lipsOffset = input.int(3, title="Lips Offset")
// Расчёт скользящих средних
jawLine = ta.sma(close, jawLength)
teethLine = ta.sma(close, teethLength)
lipsLine = ta.sma(close, lipsLength)
// Сдвиг линий
jaw = jawLine[jawOffset]
teeth = teethLine[teethOffset]
lips = lipsLine[lipsOffset]
// Отображение линий Аллигатора
plot(jaw, color=color.blue, linewidth=2, title="Jaw (13,8)")
plot(teeth, color=color.red, linewidth=2, title="Teeth (8,5)")
plot(lips, color=color.green, linewidth=2, title="Lips (5,3)")
// ---------------------------- Awesome Oscillator (AO) ----------------------------
// Расчёт AO
medianPrice = (high + low) / 2
ao = ta.sma(medianPrice, 5) - ta.sma(medianPrice, 34)
// Отображение AO
hline(0, "Zero Line", color=color.gray)
plot(ao, title="Awesome Oscillator", color=(ao >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)
// ---------------------------- Accelerator Oscillator (AC) ----------------------------
// Расчёт AC
ac = ao - ta.sma(ao, 5)
// Отображение AC
plot(ac, title="Accelerator Oscillator", color=(ac >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)
// ---------------------------- Логика сигналов и управление позицией ----------------------------
// Условия для открытия длинной позиции
longCondition = ta.crossover(lips, teeth) and ao > 0 and ac > 0
if (longCondition)
// Определение уровней stop-loss и take-profit
stopLevel = ta.lowest(low, 5) // Минимум за последние 5 свечей
takeProfit = close + (close - stopLevel) * 2 // Соотношение риска к прибыли 1:2
// Открытие длинной позиции
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", "Long", limit=takeProfit, stop=stopLevel)
// Условия для открытия короткой позиции
shortCondition = ta.crossunder(lips, teeth) and ao < 0 and ac < 0
if (shortCondition)
// Определение уровней stop-loss и take-profit
stopLevelShort = ta.highest(high, 5) // Максимум за последние 5 свечей
takeProfitShort = close - (stopLevelShort - close) * 2 // Соотношение риска к прибыли 1:2
// Открытие короткой позиции
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit Short", "Short", limit=takeProfitShort, stop=stopLevelShort)
// Отображение уровней на графике
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")