Стратегия торговли индикатором тренда Energy


Дата создания: 2023-11-15 17:36:46 Последнее изменение: 2023-11-15 17:36:46
Копировать: 0 Количество просмотров: 600
1
Подписаться
1617
Подписчики

Стратегия торговли индикатором тренда Energy

Обзор

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

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

Стратегия использует Smeared VCI индикатор витлота для определения направления тренда. Smeared VCI индикатор выполнен с гладкой обработкой на основе индекса переменных каналов (VCI). Он состоит из трех параметров: быстрая EMA, медленная EMA и период сглаживания.

В этой стратегии есть два условия:

  1. Smeared VCI сверху проходит через Trigger Line как многосигнальный; снизу проходит как пусковой сигнал

  2. Торговля только в обратном временном окне

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

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

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

  1. Использование индикаторов трендового типа позволяет эффективно отслеживать тенденции.

  2. Добавление гладкой обработки может уменьшить ложные сигналы

  3. Использование ретроспективных временных окон для тестирования на конкретные периоды времени

  4. Настройка стоп-пойнтов, чтобы контролировать риск

  5. Использование показателей для многопространственного суждения, правила просты и понятны

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

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

  1. Ошибки в оценке тенденций могут привести к убыткам

  2. Неправильная настройка параметров индикатора может привести к низкой прибыли

  3. Слишком маленькая стоп-позиция может привести к небольшим потерям

  4. Необоснованное окно времени отсчета может привести к искажению результатов тестирования

  5. Слишком частое переключение в многопространственном режиме может привести к давлению на транзакционные расходы.

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

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

  1. Испытание различных комбинаций параметров, чтобы найти оптимальный параметр

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

Оптимизация алгоритмов остановки убытков для динамического отслеживания остановки убытков

  1. Оптимизация условий открытия позиций, избежание частоты торгов

  2. Проверка более длительного окна для проверки стабильности стратегии

  3. Повышение точности принятия решений в сочетании с другими факторами, такими как объем сделок

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

В целом, эта стратегия является более простой стратегией отслеживания тенденций. Она использует показатели Smeared VCI, чтобы определить направление тенденции, открывать позиции, когда индикатор посылает торговый сигнал; контролировать риск путем остановки.

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

//@version=3
strategy("Smeared VCI Backtest", overlay=false, shorttitle="SVCI Backtest", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
// Smeared Variability Channel Index
//    a variation of the VCI indicator of the same author.
// The orange line over the lime line is bullish;
// The lime line over the orange one is bearish.
//
// vitelot/yanez/Vts
// Feb 2019
//
src = close

ep1 = input(5, minval=1, title="Fast EMA period")
ep2 = input(13, minval=2, title="Slow EMA period")

sm = input(34, minval=1, title="Smearing period")
tp = input(13, minval=1, title="Trigger line period")

fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=150)
trailTP = input(title="TP Trigger", defval=1)

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2030, title = "To Year", minval = 2017)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
startTimeOk()  => time >= start and time <= finish ? true : false // create function "within window of time" if statement true

atrP = 96

e1 = ema(src,ep1)
e2 = ema(src,ep2)

vci = (e1-e2)/atr(atrP)

svci = sma(vci,sm)
t = sma(svci,tp)

plot(svci, color=lime, linewidth=3, transp=0, title="Smeared VCI")
plot(t, color=orange, linewidth=3, transp=0, title="Trigger line")

hline(0, title="Reference line")

long = crossover(svci,t)
short = crossover(t,svci)

// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP) 
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)