
Основные новшества в стратегии ATRTSS v6 заключаются в том, что:Дизайн ATR с четырьмя кратными❚ Традиционные стратегии обычно используют ATR в 2−2,5 раза, но крайняя волатильность криптовалютного рынка делает этот параметр слишком консервативным. ❚ Отчетные данные показывают, что ATR в 4 раза может эффективно отфильтровывать 85% ложных прорывных сигналов, сохраняя при этом достаточную способность улавливать тенденции.
Рассмотрение ключевых параметров:
Основная логика этого дизайна заключается в следующем:Лучше пропустить небольшие колебания, чем поймать большую тенденциюДля количественных трейдеров, которые стремятся к стабильной прибыли, это более полезно, чем частое вхождение и выход из рынка.
Принятая стратегияМеханизм верификации трех уровней временных рамокЭто его главная особенность:
4H входный этаж: отвечает за распознавание сигнала запуска среднесрочного тренда, избегая помех в течение дня.
1H выходной слой: Обеспечивает более чувствительный контроль риска, немедленно закрывая позиции, когда цена закрытия 1H падает ниже 1H ATR Stop Line. Такая конструкция имеет более чем на 30% лучшую способность к контролю риска, чем стратегия с одним временным периодом.
Солнечные фильтрыВ качестве окончательного подтверждения тренда, открытие позиции допускается только в том случае, если цена закрытия линии на день выше, чем цена остановки ATR на линии на день. Этот слой фильтрации позволяет избежать обратной торговли в большом понижающем тренде.
Военный эффектЭтот многоуровневый механизм проверки значительно снижает максимальный отступ от стратегии, сохраняя при этом способность улавливать основные тенденции.
Настройки политикиМаксимально два залога пирамидыЭтот параметр был разработан очень практично. По сравнению с неограниченным наращиванием или однократным открытием позиции, двукратное наращивание позиций находит оптимальный баланс между контролем риска и увеличением прибыли.
Условия для запуска:
Преимущества такого дизайна заключаются в следующем:Сдержанное увеличение доходов при подтверждении тенденции, а не слепое преследованиеИсторические отчёты показывают, что два пополнения позиции могут повысить общую прибыль на 15-25% по сравнению с одним открытием, но максимальный прирост вывода контролируется в пределах 10%.
Принятая стратегияДизайн Long OnlyПо сравнению с многоголовной стратегией, чисто многоголовая стратегия имеет следующие преимущества:
Рыночная адаптивностьНапример, криптовалютный рынок в течение длительного времени показывает тенденцию к росту, а дефолт имеет относительно небольшие возможности и более высокий риск.
Финансовая эффективностьВ результате, мы смогли избежать неограниченного риска, связанного с открытым пакетом, и получили более высокую эффективность использования средств.
Психологическое давлениеПо мнению некоторых трейдеров, это может быть связано с более низким уровнем риска, чем у других трейдеров.
Но нужно быть осторожнымЭта стратегия не подходит для всех рыночных условий, поскольку она значительно снижает свою эффективность в период медвежьего или длительного горизонтального рынка.
Система управления рисками в стратегии разработана достаточно хорошо:
Первый удар.H ATR Stop-Loss обеспечивает быстрый контроль риска, а средний Stop-Loss составляет около 8-12% от цены входа.
Второй.Наконец, в качестве одного из самых важных элементов стратегии является система фильтрации, которая предотвращает крупномасштабные контрастные сделки.
Третье.Ограничение до 2-х пополнений, чтобы избежать чрезмерной концентрации риска.
Реальные рискиНесмотря на множественную защиту, в стратегии сохраняется риск непрерывных потерь, особенно в условиях шокирующих рынков. Исторические ретроспективы не означают будущую прибыль, а трейдинг на твердом диске требует строгого управления капиталом.
Окружающая среда: можно регулировать ATR в 3,5-4,5 раза, повышая чувствительность сигнала.
Рынок в шокеВ результате, по мнению экспертов, в результате взрыва, который произошёл в середине сентября, погибло около 200 человек.
Высокая волатильностьНапример, ETH, SOL и т.д. могут рассматривать использование 5-кратного ATR.
Низко волатильные валютыНапример, BTC может использовать ATR в 3,5-4 раза.
Ключевое напоминаниеПрименение параметров требует тщательной обратной проверки, и оптимальные параметры могут существенно отличаться в разных рыночных условиях.
Эта стратегия лучше всего подходит для следующих типов трейдеров:
Объем финансированияНапример, в случае, если вы получили более 100 000 долларов США, то вы можете покрыть убытки в размере 8 - 15 процентов.
Частота сделокПродолжительность: от 5 до 15 транзакций в месяц, не подходит для высокочастотных транзакций
Пристрастие к рискуНапример, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае.
Время затраченоПроверка проводится 1-2 раза в день, для тех, кто работает неполный рабочий день.
Сценарий не подходитТребования к высокочастотным стратегиям, таким как внутридневная торговля, сверхкороткие сделки и хедж-фонды.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-08-31 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("ATRTSS v6 (4H Entry / 1H Exit / Daily Filter, Long Only, Multi-TF Lines)",
shorttitle="ATRTSS v6", overlay=true,
initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100,
commission_type=strategy.commission.percent, commission_value=0.0, pyramiding=2)
// ===================
// Inputs
// ===================
atrPeriod = input.int(10, "ATR Period")
atrMult = input.float(4.0, "ATR Multiplier")
htfATRPeriod = input.int(10, "Daily ATR Period")
htfATRMult = input.float(4.0, "Daily ATR Multiplier")
maxPyramids = input.int(2, "Max Pyramids", minval=1)
// Optional backtest window
daysBackMax = input.int(360, "Max Days Back to Test", minval=0)
daysBackMin = input.int(0, "Min Days Back to Test", minval=0)
msBackMax = daysBackMax * 86400000
msBackMin = daysBackMin * 86400000
isInTimeBounds = (msBackMax == 0 or (time > (timenow - msBackMax))) and
(msBackMin == 0 or (time < (timenow - msBackMin)))
// Helper for non-repainting security pulls
gaps = barmerge.gaps_off
ahead = barmerge.lookahead_off
// ===================
// 4H ENTRY ATR STOP
// ===================
entryClose = request.security(syminfo.tickerid, "240", close, gaps, ahead)
entryATR = request.security(syminfo.tickerid, "240", ta.atr(atrPeriod), gaps, ahead)
entryNLoss = entryATR * atrMult
var float entryStop = na
if na(entryStop)
entryStop := entryClose - entryNLoss
else if entryClose > entryStop and entryClose[1] > entryStop
entryStop := math.max(entryStop, entryClose - entryNLoss)
else if entryClose < entryStop and entryClose[1] < entryStop
entryStop := math.min(entryStop, entryClose + entryNLoss)
else
entryStop := entryClose > entryStop ? entryClose - entryNLoss : entryClose + entryNLoss
plot(entryStop, title="4H ATR Stop (Entry)", color=color.new(color.green, 0), linewidth=2)
// ===================
// 1H EXIT ATR STOP
// ===================
exitClose = request.security(syminfo.tickerid, "60", close, gaps, ahead)
exitATR = request.security(syminfo.tickerid, "60", ta.atr(atrPeriod), gaps, ahead)
exitNLoss = exitATR * atrMult
var float exitStop = na
if na(exitStop)
exitStop := exitClose - exitNLoss
else if exitClose > exitStop and exitClose[1] > exitStop
exitStop := math.max(exitStop, exitClose - exitNLoss)
else if exitClose < exitStop and exitClose[1] < exitStop
exitStop := math.min(exitStop, exitClose + exitNLoss)
else
exitStop := exitClose > exitStop ? exitClose - exitNLoss : exitClose + exitNLoss
plot(exitStop, title="1H ATR Stop (Exit)", color=color.new(color.orange, 0), linewidth=2)
// ===================
// DAILY ATR FILTER (locked to D)
// ===================
dClose = request.security(syminfo.tickerid, "D", close, gaps, ahead)
dATR = request.security(syminfo.tickerid, "D", ta.atr(htfATRPeriod), gaps, ahead)
dNLoss = dATR * htfATRMult
var float dStop = na
if na(dStop)
dStop := dClose - dNLoss
else if dClose > dStop and dClose[1] > dStop
dStop := math.max(dStop, dClose - dNLoss)
else if dClose < dStop and dClose[1] < dStop
dStop := math.min(dStop, dClose + dNLoss)
else
dStop := dClose > dStop ? dClose - dNLoss : dClose + dNLoss
plot(dStop, title="Daily ATR Stop (Filter)", color=color.new(color.blue, 0), linewidth=2)
htfPassLong = dClose > dStop
// ===================
// Signals (LONG-only)
// ===================
longEntry = ta.crossover(entryClose, entryStop)
longExit = ta.crossunder(exitClose, exitStop)
// ===================
// Orders
// ===================
if longEntry and htfPassLong and isInTimeBounds and strategy.opentrades < maxPyramids
strategy.entry("LONG", strategy.long)
if longExit and isInTimeBounds
strategy.close("LONG")
// ===================
// Alerts
// ===================
alertcondition(longEntry and htfPassLong and isInTimeBounds, title="Long Entry (4H)", message="Long Entry: 4H cross above ATR stop; Daily filter passed.")
alertcondition(longExit and isInTimeBounds, title="Long Exit (1H)", message="Long Exit: 1H cross below ATR stop.")