Стратегия отслеживания тенденций на основе отклонений

Автор:Чао Чжан, Дата: 2024-01-22 11:51:28
Тэги:

img

Обзор

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

Логика стратегии

Стратегия использует VWAP в качестве линии середины цены. Затем вычисляются верхние и нижние полосы стандартного отклонения колебаний цен 1.618 и 2.618. Длинный сигнал генерируется, когда цена проходит через нижнюю полосу вверх. Короткий сигнал генерируется, когда цена проходит через верхнюю полосу вниз.

Сигналы Stop Loss EXIT после открытия длинных или коротких позиций следуют: линия Stop Loss для длинных позиций - это нижняя полоса, а для коротких позиций - верхняя полоса.

В частности, он включает следующие шаги:

  1. Вычислить VWAP как середину цены

  2. Вычислить стандартное отклонение sd цены как показатель волатильности цен

  3. Вычислить верхние и нижние полосы на основе sd. Верхние полосы VWAP + 1.618sd и VWAP + 2,618Нижние диапазоны VWAP - 1,618sd и VWAP - 2,618СД.

  4. Долгий сигнал генерируется, когда цена проходит через нижнюю полосу 1,618 вверх.

  5. Длинный стоп-лосс EXIT: цена проходит через нижнюю полосу 2,618; короткий стоп-лосс EXIT: цена проходит через верхнюю полосу 2,618.

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

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

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

  2. Площади ретрациации Фибоначчи делают выходы из зоны входа и остановки потерь более ясными

  3. VWAP как линия середины цены также повышает базовое значение показателя

  4. Параметры могут быть настроены в соответствии с различными продуктами и временными рамками

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

Стратегия также сопряжена с некоторыми рисками:

  1. В случае перемены тренда он может понести большие убытки

  2. Неправильные параметры также могут повлиять на эффективность стратегии

  3. Существует более высокий риск остановки потерь во время сильных колебаний цен

Контрмеры:

  1. Соответственно сократить период хранения и вовремя остановить потери

  2. Оптимизировать параметры для поиска наилучшей комбинации параметров

  3. Увеличить управление размером позиций для контроля одиночных потерь

Руководство по оптимизации

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

  1. Включать индикаторы тренда для предотвращения торговли с противоположным трендом

  2. Добавить механизмы управления размером позиций

  3. Оптимизировать параметры

  4. Бактэст и оптимизация за несколько временных рамок

Резюме

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


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mysteriown

//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)

// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------

fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)


// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------

t = time(reso)
debut = na(t[1]) or t > t[1]

addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol

sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)

Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd


// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------

plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)

fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)


// -------------------------------------
// ------------ Positions --------------
// -------------------------------------

bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev

//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------

strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))

strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))

Больше