Stratégie du cycle Els basée sur le lissage du signal


Date de création: 2024-02-19 10:42:34 Dernière modification: 2024-02-19 10:42:34
Copier: 2 Nombre de clics: 627
1
Suivre
1617
Abonnés

Stratégie du cycle Els basée sur le lissage du signal

Aperçu

Cette stratégie, combinée à la théorie des indicateurs cycliques proposée par Ehlers, conçoit une stratégie de négociation du cycle d’Ells qui fluidifie les signaux de négociation. Cette stratégie peut filtrer efficacement le bruit du marché et produire des signaux de négociation plus fiables.

Principe de stratégie

  1. Le signal de prix original src est traité en second degré de lissage, ce qui donne un signal de lissage lisse.

  2. Le cycle est calculé à partir du signal de lissage. La méthode de calcul est: cycle := (1 - .5 alpha) (1 - .5 alpha) (smooth - 2 smooth[1] + smooth[2]) + 2 (1 - alpha) cycle[1] - (1 - alpha) (1 - alpha) * cycle[2]

où α est le paramètre de lissage。

  1. L’indicateur cyclique est étalonné en une étape et le signal de transaction final est obtenu. La méthode de calcul est: signal := alpha2 cycle + (1 - alpha2) nz(signal[1])

où α2 est le paramètre de lissage d’un degré.

  1. Quand le signal passe à travers le signal[1] faire plus; lorsque signal est traversé par signal[1] à l’extérieur.

Analyse des forces stratégiques

  1. Le second niveau de lissage des signaux de prix permet de filtrer efficacement le bruit de haute fréquence, rendant les signaux de négociation plus fiables.

  2. L’application de la théorie des cycles d’Ells permet de déterminer plus précisément les points de conversion des tendances du marché.

  3. L’indicateur de première phase filtre en douceur la partie du bruit de l’indicateur circulaire, produisant un signal de négociation plus fiable.

  4. L’ensemble du processus stratégique est rationnel, scientifique, les paramètres ont beaucoup de place pour l’optimisation et les performances du disque sont excellentes.

Analyse des risques

  1. Comme d’autres stratégies d’indicateurs techniques, cette stratégie est également sensible au risque systémique du marché. En cas d’événement majeur de Black Swan, des pertes importantes peuvent être générées.

  2. Comme le processus de calcul est complexe, un paramètre incorrect peut entraîner des retards de calcul, ce qui affecte l’efficacité du disque dur. Des tests minutieux sont nécessaires pour s’assurer que le paramètre est scientifiquement raisonnable.

  3. Le traitement de l’effet de levier peut également entraîner des retards dans les signaux de négociation, ce qui peut entraîner l’incapacité à saisir les points de basculement du marché à temps, ce qui entraîne une perte d’opportunité.

Orientation de l’optimisation de la stratégie

  1. Il est possible de tester différents types d’algorithmes de lissage, tels que lissage à un degré, lissage linéaire, etc., pour trouver le meilleur plan de lissage.

  2. Il est possible d’introduire des mécanismes d’ajustement des paramètres adaptatifs, afin d’ajuster les paramètres de manière dynamique en fonction des conditions du marché et d’améliorer la robustesse de la stratégie.

  3. Il est possible de concevoir des stratégies de stop-loss et de stop-loss pour réduire le risque de perte individuelle tout en bloquant les bénéfices.

  4. Les modèles d’apprentissage automatique peuvent être combinés avec d’autres modèles pour réaliser des combinaisons de modèles qui utilisent d’autres modèles pour filtrer les signaux de transaction.

Résumer

Cette stratégie utilise la fluidité des signaux de prix et le calcul de l’indicateur du cycle d’Else pour concevoir une stratégie de négociation du cycle d’Else qui fluidifie les signaux de négociation. Cette stratégie permet de filtrer efficacement le bruit et de produire des signaux de négociation plus fiables.

Code source de la stratégie
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ehlers Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
src = input(hl2, title = "Source") 
alpha = input(.07, title = "Alpha")
lag = input(9, title = "Lag")
smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6

cycle = na
if na(cycle[7])
    cycle := (src - 2 * src[1] + src[2]) / 4
else
    cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2]

alpha2 = 1 / (lag + 1)
signal = na
signal := alpha2 * cycle + (1 - alpha2) * nz(signal[1])
oppositeTrade = input(true)
barsSinceEntry = 0
barsSinceEntry := nz(barsSinceEntry[1]) + 1
if strategy.position_size == 0
    barsSinceEntry := 0
if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1]))
    strategy.entry("Long", strategy.long)
    barsSinceEntry := 0
if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1]))
    strategy.entry("Short", strategy.short)
    barsSinceEntry := 0
if strategy.openprofit < 0 and barsSinceEntry > 8
    strategy.close_all()
    barsSinceEntry := 0
    
    
plot(0, title="ZeroLine", color=gray) 
plotSrc = signal
cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue)
triggerPlot = plot(plotSrc[1], title = "Trigger", color = green)
fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)