Stratégie d'optimisation de suivi de tendance des lumières quantiques moyennes mobiles

Auteur:ChaoZhang est là., Date: 2024-01-04 15:44:23 Je suis désolé
Les étiquettes:

img

Résumé

Quant Lights est une stratégie combinée utilisant l'indicateur stochastique et l'indicateur OTT. La stratégie utilise l'indicateur stochastique pour générer des signaux d'achat et de vente, et les combine avec l'indicateur OTT pour filtrer les signaux, en essayant de capturer la grande tendance et de réduire l'impact des fluctuations du marché qui causent de faux signaux.

Principe de stratégie

L'idée de base de la stratégie est de superposer l'indicateur OTT à l'indicateur stochastique pour le filtrage des signaux. L'indicateur stochastique compare le prix avec les prix les plus élevés et les plus bas dans la période de temps spécifiée pour juger si le prix est dans une zone extrême.

Le code définit le niveau élevé du stochastique à 1080 et le niveau bas à 1020. Lorsque la valeur stochastique est entre eux, c'est une zone de fourchette. Lorsque le stochastique génère des signaux d'achat / vente, le code déterminera la validité du signal en fonction de l'indicateur OTT. Si le prix dépasse la ligne moyenne OTT, un signal d'achat est émis. Si le prix dépasse la ligne moyenne OTT, un signal de vente est émis.

Cette combinaison tire parti de Stochastic pour déterminer les conditions de surachat et de survente et générer des signaux d'entrée, tandis que OTT est responsable du suivi des tendances et utilise des arrêts pour filtrer les faux signaux causés par des fluctuations excessives du marché, optimisant ainsi la précision et la volatilité du signal.

Analyse des avantages

La stratégie combine des indicateurs stochastiques et OTT pour optimiser les aspects suivants:

  1. Amélioration de la précision des signaux. Les juges stochastiques surachètent et survendent les conditions, OTT filtre les faux signaux causés par les fluctuations des marchés.
  2. Réduction de la volatilité de la stratégie, limitation de la perte actuelle par des arrêts dynamiques, filtrant de nombreuses fausses ruptures.
  3. Stochastique fournit des signaux de base et OTT suit les principales tendances.
  4. Réduit les interférences excessives, améliore la qualité du signal et réduit les signaux inutiles.
  5. Quantifie les paramètres d'arrêt dynamiques, garantit qualitativement la perte actuelle et réduit encore la volatilité de la stratégie.
  6. Le système intègre les indicateurs tendance et surachat/survente. Utilisez ces deux types d'indicateurs pour optimiser les faiblesses de l'autre.

En résumé, en utilisant l'OTT pour filtrer les signaux stochastiques, la stratégie améliore efficacement la qualité des signaux et les rendements des investissements, tout en réduisant le nombre de transactions et la volatilité de la stratégie, ce qui permet d'obtenir l'effet de faible risque, de rendement élevé et de suivi attentif des tendances.

Analyse des risques

  • La portée de cette stratégie est relativement étroite, elle convient principalement aux actions présentant des tendances évidentes, elle a moins d'impact sur les actions présentant des fluctuations de prix très importantes ou sur les actions en consolidation latérale.
  • La stratégie ne tient pas compte des fondamentaux des actions et de l'environnement macroéconomique, il y a donc un point mort.
  • Plusieurs paramètres de Stochastique et OTT nécessitent un réglage professionnel, sinon cela affectera la rentabilité de la stratégie.
  • Les arrêts sont trop lâches, avec des pertes potentielles qui nécessitent une optimisation.
  • Il y aura certaines pertes et des interférences de signal lors de fausses ruptures et de fluctuations des marchés.

En ce qui concerne les risques susmentionnés, les mesures suivantes peuvent être prises pour améliorer:

  1. Utiliser différentes combinaisons de paramètres pour différents types de stocks.
  2. Améliorez les signaux en incorporant des informations fondamentales et des nouvelles.
  3. Optimiser les paramètres par des tests pour trouver les paramètres optimaux.
  4. Mettre en place des arrêts en mouvement pour réduire davantage les risques.
  5. Modifier les conditions de jugement et utiliser des mécanismes de confirmation des signaux plus rigoureux.

Directions d'optimisation

La stratégie peut être encore optimisée dans les aspects suivants:

  1. Les valeurs par défaut actuelles sont universelles et peuvent être testées séparément pour différents stocks afin de trouver les combinaisons optimales de paramètres.

  2. Introduire des mécanismes de prise de profit et d'arrêt de mouvement. Actuellement, l'utilisation d'arrêts fixes dynamiques est incapable de suivre dynamiquement les pertes et les gains.

  3. Optimiser la logique de jugement des signaux. La logique de jugement actuelle est relativement simple, marquant directement les signaux d'achat et de vente lorsque les prix s'effondrent ou baissent. Plus d'indicateurs et de modèles de prix peuvent être incorporés pour assurer la fiabilité du signal.

  4. L'augmentation des conditions de position ouverte et des mécanismes de filtrage. La stratégie actuelle traite tous les signaux sans distinction. Des indicateurs de volume, des indicateurs de volume de négociation et d'autres conditions de position ouverte peuvent être introduits, ainsi qu'une certaine fenêtre de temps de signal pour filtrer les faux signaux.

  5. Testez différentes combinaisons d'indicateurs avec OTT. Actuellement en utilisant la combinaison stochastique et OTT. L'efficacité de la combinaison d'autres indicateurs tels que MACD et RSI avec OTT peut être testée.

  6. Intégrer des modules de gestion des capitaux et de dimensionnement des positions. Actuellement, il n'existe pas de mécanismes de gestion des capitaux et de contrôle des positions, qui reposent entièrement sur des arrêts. Différents types de méthodes de gestion des capitaux et de dimensionnement des positions peuvent être testés pour contrôler davantage les risques uniques et globaux.

Résumé

Quant Lights est une stratégie quantitative qui combine organiquement l'indicateur stochastique avec l'indicateur OTT. Il utilise les forces complémentaires des deux indicateurs pour améliorer la précision du signal et capturer efficacement les tendances majeures tout en réduisant les risques.

Les avantages de la stratégie incluent un faible taux d'erreur, des signaux clairs et une faible volatilité.

Dans le même temps, il reste encore des possibilités d'amélioration de cette stratégie. Par l'optimisation des paramètres, l'amélioration du mécanisme d'arrêt, l'amélioration des signaux et des mécanismes de filtrage, etc., la stratégie peut évoluer vers une direction plus stable, automatisée et intelligente. C'est également l'objectif de nos travaux de suivi.


/*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())

  
  



Plus de