Динамическая стратегия остановки потерь

Автор:Чао Чжан, Дата: 2024-01-31 15:05:30
Тэги:

img

Обзор

Эта стратегия основана на динамическом механизме стоп-лосса для установки линий стоп-лосса для длинных и коротких позиций на основе наивысшей и самой низкой цены акции. Когда цена достигает линии стоп-лосса, она закрывает текущую позицию и открывает новую позицию в противоположном направлении. Стратегия проста и эффективна в управлении риском одной сделки.

Принцип

Основными этапами этой стратегии являются:

  1. Входные параметры: выбирать длинный или короткий, устанавливать длину периода, отставание от задержки
  2. Вычислить самые высокие и самые низкие цены: получить самые высокие и самые низкие цены на основе длины ввода
  3. Вычислить последующие линии стоп-лосса: для длинной, самой низкой цены минус скольжение; для короткой, самой высокой цены плюс скольжение
  4. Открытые и закрытые позиции: когда цена достигает линии стоп-лосса, закрывается позиция текущего направления и открывается позиция противоположного направления.

Выше приведенная основная логика стратегии. По мере движения цены линия стоп-лосса постоянно обновляется для динамического отслеживания. Следя за стоп-лосом, она может эффективно контролировать потери на одну сделку.

Анализ преимуществ

Основные преимущества этой стратегии:

  1. Простая и чистая логика, легкая для понимания и реализации
  2. Динамический контроль остановки потерь после одной сделки
  3. Гибкий выбор длинного или короткого, адаптируемый к различным рыночным условиям
  4. Настройка периода и скольжения для оптимизации

В целом, с помощью простых механизмов остановки потерь эта стратегия может эффективно управлять позициями и является типичной стратегией управления рисками.

Анализ рисков

Следует также отметить некоторые риски:

  1. Волатильность цен может часто вызывать стоп-лосс, что приводит к чрезмерной торговле.
  2. Неправильные настройки периодов могут привести к неподходящим линиям стоп-лосса
  3. Слишком высокая настройка скольжения может привести к ослабленной стоп-потере, неспособной вовремя остановить потерю.

Эти риски могут быть оптимизированы путем корректировки периода, разумного сокращения скольжения для создания более разумных линий стоп-лосса.

Руководство по оптимизации

Стратегия может быть улучшена в следующих аспектах:

  1. Добавьте оптимизацию для динамической регулировки линии остановки потери, избегайте неправильно плотной или свободной линии остановки потери
  2. Добавление условий открытой позиции для предотвращения открытия позиций в неподходящее время
  3. Включить индикаторы тенденций для следования тенденциям с большим потенциалом прибыли
  4. Добавление размеров позиций для динамической корректировки позиций на основе уровня риска

Заключение

Стратегия трейдинга реализует динамическое управление позициями с помощью простых методов остановки потерь. Она проста в понимании и реализации и может эффективно контролировать потерю одной сделки. Мы проанализировали преимущества, потенциальные риски и будущие направления оптимизации. В заключение, это очень типичная и практичная стратегия управления рисками.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's Trailing-Stop Strategy", shorttitle = "Trailing", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, minval = 1)
shift = input(0.0, minval = 0, title = "Trailing Stop")
background = input(false)

//Levels
max = highest(high, length)
min = lowest(low, length)

//Trailing
size = strategy.position_size
longtrailing = 0.0
shorttrailing = 0.0
longtrailing := size <= 0 ? min - ((min / 100) * shift) : max(min - ((min / 100) * shift), longtrailing[1])
shorttrailing := size >= 0 ? max + ((max / 100) * shift) : min(max + ((max / 100) * shift), shorttrailing[1])
trailing = size <= 0 ? shorttrailing : longtrailing
col = size == size[1] ? size > 0 ? color.red : color.lime : na
plot(trailing, color = col, linewidth = 2, transp = 0)

//Background
bgcol = background ? size > 0 ? color.lime : color.red : na
bgcolor(bgcol, transp = 80)

if trailing > 0 and size <= 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = trailing)
if trailing > 0 and size >= 0
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = trailing)

Больше