Эта стратегия использует индикатор ATR для расчета динамической линии стоп-лосса для контроля рисков.
Стратегия использует индикатор ATR для расчета динамической линии стоп-лосса. Когда цены растут, линия стоп-лосса будет двигаться вверх с ценами, чтобы закрепить прибыль. Когда цены падают, линия стоп-лосса остается неизменной, чтобы избежать остановки. Индикатор ATR может измерять волатильность рынка и риск. Умножение его на коэффициент генерирует линию стоп-лосса, таким образом контролируя риск по торговле.
Стратегия использует индикатор ATR и функцию Highest для расчета динамической линии стоп-лосса.
TS=highest(high-Mult*atr(Atr),Hhv)
где Atr - параметр периода ATR, Hhv - параметр периода просмотра функции Highest, а Mult - коэффициент ATR.
Логика заключается в том, чтобы сначала рассчитать значение ATR, а затем умножить его на коэффициент Mult, чтобы получить диапазон буферной зоны стоп-лосса. Затем используйте функцию Высочайший, чтобы найти самый высокий максимум в прошлых периодах Hhv, и вычесть зону буферного стоп-лосса, чтобы получить динамическую линию стоп-лосса TS.
Когда цены растут, самый высокий максимум будет постоянно обновляться, заставляя линию стоп-лосса двигаться вверх и блокировать прибыль. Когда цены падают, линия стоп-лосса будет поддерживать предыдущий максимум, чтобы избежать остановки.
Линия стоп-лосса динамически регулируется, чтобы отслеживать самую высокую точку после роста цены, что позволяет своевременно получать прибыль.
Фиксированные линии стоп-лосса могут быть легко задействованы при нормальных выводах или перенапряженных остановках. Эта стратегия сохраняет стоп-лосс неизменным во время снижения цен, чтобы избежать ненужных остановок.
С помощью настройки периода ATR и параметров мультипликатора чувствительность регулирования стоп-потери может контролироваться для различных степеней остановок.
ATR динамически рассчитывает диапазон стоп-лосса, позволяя разумные диапазоны стоп-лосса в зависимости от волатильности рынка для контроля риска на одну сделку.
Когда волатильность поднимается, ATR быстро повышается и быстро поднимает линию стоп-лосса, увеличивая вероятность ненужных остановок.
Стратегия не может адаптироваться к резким переломам, поэтому линия стоп-лосса может отставать слишком сильно и требует своевременного сокращения позиции.
Оптимизация периода ATR, максимального периода и параметров мультипликатора вместе может быть сложной задачей.
Увеличить период ATR, чтобы уменьшить чрезмерно частое регулирование линии остановки, но ценой большей потери за остановку.
Увеличьте максимальный период, чтобы сделать линию более стабильной, но сбалансируйте скорость отслеживания.
Выберите подходящие мультипликаторы ATR в соответствии с характеристиками прибора.
Добавление фильтра тренда уменьшает вероятность того, что остановки будут вызваны реверсиями.
Стратегия имеет преимущество динамических остановок и контролируемых рисков. Она подходит для трендовых рынков, но следите за пиками волатильности и сложной оптимизацией параметров. При правильном настройке, оптимизации и дополнительных методах она может применяться для живой торговли.
/*backtest start: 2023-10-17 00:00:00 end: 2023-10-24 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ceyhun //@version=4 strategy("ATR Trailing Stoploss Strategy ",overlay=true) Atr=input(defval=5,title="Atr Period",minval=1,maxval=500) Hhv=input(defval=10,title="HHV Period",minval=1,maxval=500) Mult=input(defval=2.5,title="Multiplier",minval=0.1) Barcolor=input(true,title="Barcolor") TS=highest(high-Mult*atr(Atr),Hhv),barssince(close>highest(high-Mult*atr(Atr),Hhv) and close>close) Color=iff(close>TS,color.green,iff(close<TS,color.red,color.black)) barcolor(Barcolor? Color:na) plot(TS,color=Color,linewidth=3,title="ATR Trailing Stoploss") Buy = crossover(close,TS) Sell = crossunder(close,TS) if Buy strategy.entry("Buy", strategy.long, comment="Buy") if Sell strategy.entry("Sell", strategy.short, comment="Sell")