Динамическая стратегия стоп-профита и стоп-лосса для длинных и коротких позиций, основанная на VWAP и кросс-периодных сигналах


Дата создания: 2024-03-08 17:37:21 Последнее изменение: 2024-03-08 17:37:21
Копировать: 7 Количество просмотров: 693
1
Подписаться
1617
Подписчики

Динамическая стратегия стоп-профита и стоп-лосса для длинных и коротких позиций, основанная на VWAP и кросс-периодных сигналах

Обзор

В качестве сигнала для входа и выхода стратегия использует VWAP (Value-weighted average price (VWAP)) на солнечной линии. При прохождении VWAP над ценой закрытия, сделайте больше, а остановка будет установлена на предыдущем низком уровне K-линии ниже VWAP, а целевая цена будет установлена на 3 пунктах выше цены открытия; при прохождении VWAP под ценой закрытия, сделайте пустоту, а остановка будет установлена на предыдущем высоком уровне K-линии выше VWAP, а целевая цена будет установлена на 3 пунктах ниже цены открытия.

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

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

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

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

  1. Простая и эффективная: логика стратегии ясна, только один индикатор VWAP может быть использован для определения тенденций и сигналов, которые легко реализовать и оптимизировать.
  2. Динамический стоп: стоп-пост, установленный на основе высоких и низких точек предыдущей K-линии, может лучше адаптироваться к рыночным колебаниям и снижать риск.
  3. Фиксированные пункты: фиксированные пункты, которые помогают заблокировать прибыль вовремя, чтобы избежать ее обратного обращения.
  4. Своевременный стоп-стоп: стратегия сразу же ликвидирует позиции, когда вызывается обратный сигнал, не вызывая дополнительных потерь для уже прибыльных позиций, а также открывает новые позиции для захвата новых тенденций.

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-03-06 00:00:00
end: 2024-03-07 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
// fastEMA = ta.ema(close, 24)
// slowEMA = ta.ema(close, 200)
// Higher Time Frame
float sl = na
float tgt = na
posSize = 1
vwap_1d = request.security(syminfo.tickerid, "1D", ta.vwap(close))
// plot(vwap_1d)

// To avoid differences on historical and realtime bars, you can use this technique, which only returns a value from the higher timeframe on the bar after it completes:
// indexHighTF = barstate.isrealtime ? 1 : 0
// indexCurrTF = barstate.isrealtime ? 0 : 1
// nonRepaintingVWAP = request.security(syminfo.tickerid, "1D", close[indexHighTF])[indexCurrTF]
// plot(nonRepaintingVWAP, "Non-repainting VWAP")

enterLong = ta.crossover(close, vwap_1d)
exitLong  = ta.crossunder(close, vwap_1d)

enterShort = ta.crossunder(close, vwap_1d)
exitShort  = ta.crossover(close, vwap_1d)

if enterLong
    sl := low[1]>vwap_1d ?low[1]:vwap_1d
    tgt:=close+3
    strategy.entry("EL", strategy.long, qty=posSize)
    strategy.exit('exitEL', 'EL', stop=sl, limit=tgt)
if enterShort
    sl := high[1]<vwap_1d ?high[1]:vwap_1d
    tgt := close-3
    strategy.entry("ES", strategy.short, qty=posSize)
    strategy.exit('exitES', 'ES', stop=sl, limit=tgt)

// if exitLong
//     strategy.close("EL")
// if exitShort
//     strategy.close("ES")





// goLongCondition1 = ta.crossover(close, vwap_1d)
// timePeriod = time >= timestamp(syminfo.timezone, 2021, 01, 01, 0, 0)
// notInTrade = strategy.position_size <= 0
// if goLongCondition1 and timePeriod and notInTrade
//     stopLoss = low[1]
//     takeProfit = close+3
//     strategy.entry('long', strategy.long)
//     strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
plot(close, color=color.new(#00c510, 0))
plot(vwap_1d, color=color.new(#f05619, 0))
plot(sl, color=color.new(#fbff00, 0))
plot(tgt, color=color.new(#00e1ff, 0))