Стратегия стоп-лосса на основе тренда


Дата создания: 2024-02-21 14:55:41 Последнее изменение: 2024-02-21 14:55:41
Копировать: 0 Количество просмотров: 629
1
Подписаться
1617
Подписчики

Стратегия стоп-лосса на основе тренда

Обзор

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

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

Сначала стратегия определяет условия для определения еженедельных тенденций:

isUptrend = close > close[1] 

isDowntrend = close < close[1]

Если текущая цена закрытия превышает цену закрытия предыдущего дня, это считается тенденцией к повышению, а наоборот - к снижению.

Затем определите внутридневный торговый сигнал:

buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

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

После входа в рынок, стоп-страх устанавливается как цена закрытия предыдущего дня за вычетом длины физической линии предыдущего дня в 1,382 раза:

stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) 

Стоп-стоп устанавливается как цена закрытия за предыдущий день плюс разница между стоп-стопом и ценой закрытия в 2 раза:

takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

Это позволит добиться прекращения убытков.

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

Эта стратегия имеет следующие преимущества:

  1. Торговля на основе тенденций, чтобы избежать риска дефолта
  2. Комбинированный сигнал с использованием солнечных лучей и проемов, чтобы избежать преждевременного входа в больницу.
  3. Разумная стоп-ориентация и контроль за единичными потерями
  4. Большая площадь, высокий потенциал прибыли

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

Однако эта стратегия также несет в себе некоторые риски:

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

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

  1. Настройка трейлеров вблизи остановочных точек для отслеживания остановочных точек
  2. Добавление модуля управления затратами, ограничивающего частоту открытия складов
  3. Добавление суждений о SUPPORT/RESISTANCE

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

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

  1. Тенденции, основанные на других факторах, таких как направление движущейся средней, изменение объема сделок и т.д.
  2. Оптимизация входного сигнала с добавлением K-линий
  3. Динамический отслеживающий стоп-стоп, автоматически корректирующийся в зависимости от колебаний цены
  4. Добавление модуля количественного контроля, чтобы контролировать размер позиции
  5. Многочасовая комбинация, использующая фильтрацию тенденций на более высоком уровне

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

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

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

//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)

// Function to get previous day's close and open
getPrevDayClose() =>
    request.security(syminfo.tickerid, "D", close[1])

getPrevDayOpen() =>
    request.security(syminfo.tickerid, "D", open[1])

// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]

// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

// Strategy logic
if (isUptrend)
    strategy.entry("Buy", strategy.long, when = buyCondition)
    strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
    
if (isDowntrend)
    strategy.entry("Sell", strategy.short)

// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)

// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)