Стратегия оптимизации отслеживания тренда

Автор:Чао Чжан, Дата: 2024-01-04 15:44:23
Тэги:

img

Обзор

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

Принцип стратегии

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

Код устанавливает высокий уровень Стохастика на 1080 и низкий уровень на 1020. Когда Стохастическое значение находится между ними, это диапазонная область. Когда Стохастический генерирует сигналы покупки / продажи, код определяет действительность сигнала на основе индикатора OTT. Если цена пересекает среднюю линию OTT, выпускается сигнал покупки. Если цена пересекает среднюю линию OTT, выпускается сигнал продажи.

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

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

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

  1. Улучшенная точность сигнала. Стохастические судьи перекупают и перепродают условия, OTT фильтрует ложные сигналы, вызванные колебаниями рынков.
  2. Уменьшает волатильность стратегии, ограничивает текущие потери с помощью динамических остановок, фильтруя много ложных прорывов.
  3. Эффективно фиксирует основные тенденции акций.
  4. Уменьшает чрезмерные помехи сигнала, улучшает качество сигнала и уменьшает бесполезные сигналы.
  5. Качественно гарантирует текущий убыток и еще больше снижает волатильность стратегии.
  6. Система объединяет индикаторы тренда и перекупленности/перепроданности.

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

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

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

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

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

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

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

  1. Настройки параметров регулируются в соответствии с различными рынками и типами акций.

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

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

  4. Увеличить условия открытых позиций и механизмы фильтрации. Нынешняя стратегия без разбора обрабатывает каждый сигнал. Можно ввести индикаторы объема, индикаторы объема торговли и другие условия открытых позиций, а также определенное время сигналов для фильтрации ложных сигналов.

  5. В настоящее время используется комбинация стохастических и OTT. Можно проверить эффективность комбинирования других индикаторов, таких как MACD и RSI с OTT.

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

Резюме

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

Преимущества этой стратегии включают низкий уровень ошибок, четкие сигналы и небольшую волатильность.

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


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic
//created by: @Anil_Ozeksi
//developer: ANIL ÖZEKŞİ
//author: @kivancozbilgic


strategy(title="Stochastic Optimized Trend Tracker", shorttitle="SOTT", format=format.price, precision=2)
periodK = input(250, title="%K Length", minval=1)
smoothK = input(50, title="%K Smoothing", minval=1)
src1 = input(close, title="Source")
length=input(3, "OTT Period", minval=1)
percent=input(0.618, "OTT Percent", type=input.float, step=0.1, minval=0)
showsupport = input(title="Show Support Line?", type=input.bool, defval=false)
showsignalsc = input(title="Show Stochastic/OTT Crossing Signals?", type=input.bool, defval=false)
Var_Func1(src1,length)=>
    valpha1=2/(length+1)
    vud11=src1>src1[1] ? src1-src1[1] : 0
    vdd11=src1<src1[1] ? src1[1]-src1 : 0
    vUD1=sum(vud11,9)
    vDD1=sum(vdd11,9)
    vCMO1=nz((vUD1-vDD1)/(vUD1+vDD1))
    VAR1=0.0
    VAR1:=nz(valpha1*abs(vCMO1)*src1)+(1-valpha1*abs(vCMO1))*nz(VAR1[1])
VAR1=Var_Func1(src1,length)
k = Var_Func1(stoch(close, high, low, periodK), smoothK)
src=k+1000
Var_Func(src,length)=>
    valpha=2/(length+1)
    vud1=src>src[1] ? src-src[1] : 0
    vdd1=src<src[1] ? src[1]-src : 0
    vUD=sum(vud1,9)
    vDD=sum(vdd1,9)
    vCMO=nz((vUD-vDD)/(vUD+vDD))
    VAR=0.0
    VAR:=nz(valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*nz(VAR[1])
VAR=Var_Func(src,length)
h0 = hline(1080, "Upper Band", color=#606060)
h1 = hline(1020, "Lower Band", color=#606060)
fill(h0, h1, color=#9915FF, transp=80, title="Background")
plot(k+1000, title="%K", color=#0094FF)
MAvg=Var_Func(src, length)
fark=MAvg*percent*0.01
longStop = MAvg - fark
longStopPrev = nz(longStop[1], longStop)
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop =  MAvg + fark
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir
MT = dir==1 ? longStop: shortStop
OTT=MAvg>MT ? MT*(200+percent)/200 : MT*(200-percent)/200 
plot(showsupport ? MAvg : na, color=#0585E1, linewidth=2, title="Support Line")
OTTC = #B800D9 
pALL=plot(nz(OTT[2]), color=OTTC, linewidth=2, title="OTT", transp=0)
alertcondition(cross(src, OTT[2]), title="Price Cross Alert", message="OTT - Price Crossing!")
alertcondition(crossover(src, OTT[2]), title="Price Crossover Alarm", message="PRICE OVER OTT - BUY SIGNAL!")
alertcondition(crossunder(src, OTT[2]), title="Price Crossunder Alarm", message="PRICE UNDER OTT - SELL SIGNAL!")
buySignalc = crossover(src, OTT[2])
plotshape(buySignalc and showsignalsc ? OTT*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
sellSignallc = crossunder(src, OTT[2])
plotshape(sellSignallc and showsignalsc ? OTT*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)

dummy0 = input(true, title = "=Backtest Inputs=")
FromDay    = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth  = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear   = input(defval = 2005, title = "From Year", minval = 2005)
ToDay      = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth    = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear     = input(defval = 9999, title = "To Year", minval = 2006)
Start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
    time >= Start and time <= Finish ? true : false
if buySignalc
    strategy.entry("Long", strategy.long,when=Timerange())
if sellSignallc
    strategy.entry("Short", strategy.short,when=Timerange())

  
  



Больше