Стратегии стоп-лосса и тейк-профита, следующие за трендом


Дата создания: 2024-01-24 14:17:28 Последнее изменение: 2024-01-24 14:17:28
Копировать: 1 Количество просмотров: 661
1
Подписаться
1617
Подписчики

Стратегии стоп-лосса и тейк-профита, следующие за трендом

Обзор

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

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

  1. Расчет верхних и нижних полос Брин-Бенда.
  2. Оценить, является ли цена закрытия выше, чем в верхней полосе, или ниже, чем в нижней полосе, если это так, то оценить как трендовый рынок, а также как многоголовый и пустой рынок.
  3. Если это трендовый рынок, то рассчитывается линия окружающей среды. Линия окружающей среды основана на минимальной цене минус ATR (в многоголосном рынке) или на максимальной цене плюс ATR (в свободном рынке).
  4. Если это не трендовый рынок, то окружающая линия остается такой же, как и окружающая линия предыдущей линии K.
  5. Сравните ENVIRONMENT линию, чтобы определить направление тренда. Если повышение является многоголовым, то падение является пустым.
  6. При смене направления линии ENVIRONMENT, генерируется сигнал покупки/продажи.
  7. Установка стоп-лосса: фиксированный стоп-лосса в 100 раз выше начальной цены; плавающий стоп-лосса в 1,1 раза выше начальной цены (в многоголовном) или в 0,9 раза выше начальной цены (в пустом голове).

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

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

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

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

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

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

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

Это стратегия, основанная на определении тренда в бринде, с использованием ENVIRONMENT-линии для установки стоп-стоп. Основным преимуществом является четкое определение тренда, разумная установка стоп-стоп и эффективное управление рисками. Основной риск заключается в ошибке определения тренда в бринде и слишком близкой точке остановки.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zhuenrong

// © Dreadblitz
//@version=4
strategy(shorttitle="FLI", title="Follow Line Indicator", overlay=true)
// 
BBperiod      = input(defval = 21,     title = "BB Period",    type = input.integer, minval = 1)
BBdeviations  = input(defval = 1.00,     title = "BB Deviations",    type = input.float, minval = 0.1, step=0.05)
UseATRfilter  = input(defval = true, title = "ATR Filter",  type = input.bool)
ATRperiod     = input(defval = 5,     title = "ATR Period",    type = input.integer, minval = 1)
hl            = input(defval = false, title = "Hide Labels",  type = input.bool)
//
BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations
BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations
//
TrendLine = 0.0
iTrend = 0.0
buy = 0.0
sell = 0.0
//
BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0
// 
if BBSignal == 1 and UseATRfilter == 1
    TrendLine:=low-atr(ATRperiod)
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
    TrendLine:=high+atr(ATRperiod)
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
    TrendLine:=TrendLine[1]
//
if BBSignal == 1 and UseATRfilter == 0
    TrendLine:=low
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
    TrendLine:=high
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
    TrendLine:=TrendLine[1]
//
iTrend:=iTrend[1]
if TrendLine>TrendLine[1] 
    iTrend:=1
if TrendLine<TrendLine[1] 
    iTrend:=-1
//
buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na
sell:=iTrend[1]==1 and iTrend==-1? 1 : na
//
plot(TrendLine, color=iTrend > 0?color.blue:color.red ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") 
plotshape(buy == 1 and hl == false? TrendLine-atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 and hl == false ?TrendLine+atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto)
//
alertcondition(sell == 1 ,title="Sell",message="Sell")
alertcondition(buy == 1 ,title="Buy",message="Buy")
alertcondition(buy == 1 or sell == 1 ,title="Buy/Sell",message="Buy/Sell")
if (buy==1)
    strategy.entry("Buy", strategy.long)
if (sell==1)
    strategy.entry("Sell", strategy.short)
// === Stop LOSS ===

if strategy.position_size>0
    strategy.exit("Stop Loss/Profit Long","Buy", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)
if strategy.position_size<0
    strategy.exit("Stop Loss/Profit Short","Sell", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*0.9)