
Стратегия представляет собой количественную торговую систему, которая объединяет принцип средней величины регрессии с техническими показателями MACD и ATR. Стратегия идентифицирует ценовые отклонения через Bollinger Bands, используя подтвержденную динамику MACD и в сочетании с ATR для динамического управления рисками.
Стратегия использует трехмерный метод синхронизации технических показателей: во-первых, чтобы определить, есть ли значительное отклонение от цены, с помощью поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения от поперечного отклонения.
Это стратегия, которая объединяет классический технический анализ с современными методами количественной торговли. Благодаря совместному использованию нескольких показателей, сохраняются основные преимущества стратегии среднезначного возвращения, а также преодолеваются ограничения одного показателя. Стратегия обладает большой масштабируемостью, благодаря оптимизации параметров и добавлению функциональных модулей, позволяющих постоянно повышать ее производительность в различных рыночных условиях.
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Enhanced Mean Reversion with MACD and ATR", overlay=true)
// Nastavenia Bollinger Bands
bbLength = input(20, title="Bollinger Bands Length")
bbMult = input(2, title="Bollinger Bands Multiplier")
basis = ta.sma(close, bbLength)
dev = ta.stdev(close, bbLength)
upperBand = basis + bbMult * dev
lowerBand = basis - bbMult * dev
// MACD indikátor
macdShort = input(12, title="MACD Short Length")
macdLong = input(26, title="MACD Long Length")
macdSignal = input(9, title="MACD Signal Length")
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)
// ATR pre dynamický Stop Loss a Take Profit
atrLength = input(14, title="ATR Length")
atrMultiplier = input(1.5, title="ATR Multiplier")
atrValue = ta.atr(atrLength)
// Vstupné podmienky pre long pozície
longCondition = ta.crossover(close, lowerBand) and macdLine > signalLine
if (longCondition)
strategy.entry("Long", strategy.long)
// Vstupné podmienky pre short pozície
shortCondition = ta.crossunder(close, upperBand) and macdLine < signalLine
if (shortCondition)
strategy.entry("Short", strategy.short)
// Dynamický Stop Loss a Take Profit na základe ATR
longSL = strategy.position_avg_price - atrValue * atrMultiplier
longTP = strategy.position_avg_price + atrValue * atrMultiplier * 2
shortSL = strategy.position_avg_price + atrValue * atrMultiplier
shortTP = strategy.position_avg_price - atrValue * atrMultiplier * 2
// Pridanie stop loss a take profit
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longSL, limit=longTP)
if (strategy.position_size < 0)
strategy.exit("Take Profit/Stop Loss", "Short", stop=shortSL, limit=shortTP)
// Vizualizácia Bollinger Bands a MACD
plot(upperBand, color=color.red, title="Upper Bollinger Band")
plot(lowerBand, color=color.green, title="Lower Bollinger Band")
plot(basis, color=color.blue, title="Bollinger Basis")
hline(0, "MACD Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")
plot(macdLine, color=color.red, title="MACD Line")
plot(signalLine, color=color.green, title="Signal Line")
// Generovanie alertov
alertcondition(longCondition, title="Long Alert", message="Long Entry Signal")
alertcondition(shortCondition, title="Short Alert", message="Short Entry Signal")