Стратегия выхода из люстры


Дата создания: 2024-01-05 15:57:51 Последнее изменение: 2024-01-05 15:57:51
Копировать: 2 Количество просмотров: 1214
1
Подписаться
1664
Подписчики

Стратегия выхода из люстры

Обзор

Эта стратегия использует подвесный индикатор для определения направления и силы ценового прорыва, что приводит к появлению сигналов покупки и продажи.

Стратегический принцип

Эта стратегия основана на подвесной индикатор, подвесной индикатор, чтобы установить линию остановки в соответствии с максимальной ценой, минимальной ценой и средней величиной реального колебания цены. В частности, эта стратегия рассчитывает среднюю величину реального колебания на 22 день и умножается на коэффициент (по умолчанию 3).

Эта стратегия выполняет только покупку и продажу. В частности, она генерирует сигнал покупки, когда цена пробивает последнюю длинную линию остановки. Затем она генерирует сигнал продажи и ликвидации, когда цена пробивает короткую линию остановки.

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

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

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

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

Решение риска:

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

Направление оптимизации

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chandelier Exit Strategy", overlay=true)

length = input(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
showLabels = input(title='Show Buy/Sell Labels ?', defval=true)
useClose = input(title='Use Close Price for Extremums ?', defval=true)
highlightState = input(title='Highlight State ?', defval=true)

atr = mult * ta.atr(length)

longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir

var color longColor = color.green
var color shortColor = color.red

longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.new(longColor, 0))
buySignal = dir == 1 and dir[1] == -1
plotshape(buySignal ? longStop : na, title='Long Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(longColor, 0))
plotshape(buySignal and showLabels ? longStop : na, title='Buy Label', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(longColor, 0), textcolor=color.new(color.white, 0))

shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.new(shortColor, 0))
sellSignal = dir == -1 and dir[1] == 1
plotshape(sellSignal ? shortStop : na, title='Short Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(shortColor, 0))
plotshape(sellSignal and showLabels ? shortStop : na, title='Sell Label', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(shortColor, 0), textcolor=color.new(color.white, 0))

changeCond = dir != dir[1]
alertcondition(changeCond, title='Alert: CE Direction Change', message='Chandelier Exit has changed direction!')
alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!')
alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')

// Define initial capital
initial_capital =25

// Trigger buy order and close buy order on sell signal
if buySignal
    strategy.entry("Buy", strategy.long, qty = initial_capital / close)

if sellSignal
    strategy.close("Buy")