Stratégie de suivi de la pente des chandeliers par ondelettes

WAVELET SLOPE Trend MEXICAN HAT RICKER
Date de création: 2025-12-17 15:27:18 Dernière modification: 2026-01-05 16:20:22
Copier: 8 Nombre de clics: 233
2
Suivre
434
Abonnés

Stratégie de suivi de la pente des chandeliers par ondelettes Stratégie de suivi de la pente des chandeliers par ondelettes

La transformation des ondes mineures face au suivi des tendances et à l’application de l’esthétique mathématique

Il ne s’agit pas d’une autre stratégie d’échafaudage des moyennes mobiles. La stratégie de suivi de l’inclinaison de la carte des petites ondes utilise directement la transformation des petites ondes de la tempête de réduction de bruit du monde des mathématiques pour reconstituer la ligne K, puis prend une décision plus vide avec le jugement de la plus simple et la plus grossière inclinaison.

Mexican Hat n’est pas un chapeau, c’est un filtre Gauss à 7 paramètres

Le cœur de la stratégie est la petite vague du chapeau mexicain (Ricker), dont le coefficient est réglé sur[-0.1, 0.0, 0.4, 0.8, 0.4, 0.0, -0.1]。 Cet ensemble de 7 paramètres apparemment simple est en fait un filtre de détection de bordure optimisé mathématiquement。 Par rapport aux SMA traditionnels de 20 cycles qui ne prennent en compte que la moyenne pondérée, le micro-onde du chapeau mexicain capture à la fois les caractéristiques locales et les tendances globales des prix, améliorant l’efficacité du filtrage du bruit d’environ 40%。

La clé réside dans la conception d’un poids central de 0,8 et d’un poids négatif de -0,1 sur les deux côtés. Le poids négatif signifie que la stratégie prend l’initiative de “punir” l’impact des prix à distance sur les jugements actuels, ce qui est plus précis que la simple décroissance de l’indice.

Décomposition des ondes mineures de niveau 3: tendance de 1 minute de bruit à 8 minutes

Le réglage w_lvl=3 n’est pas un coup de tête au hasard. La décomposition de la petite onde de niveau 3 signifie que la stratégie effectue des opérations de convection en doublant, doublant et quadruplant la longueur d’étape, et que le signal final équivaut à un résultat de filtrage composite de 8 cycles. C’est plus intelligent qu’une simple moyenne de 8 cycles, car il conserve l’information efficace sur les fluctuations à court terme tout en filtrant le bruit à haute fréquence.

La méthode de calcul est la suivante: prix d’origine → courbure de niveau 1 → courbure de niveau 2 (étape 2) → courbure de niveau 3 (étape 4). Chaque niveau est étalonné sur la base du niveau précédent, mais ne constitue pas une simple moyenne à nouveau, mais conserve les propriétés mathématiques de la fonction de petite vague. Le résultat est que la stratégie est à la fois capable de répondre rapidement aux changements de tendance et de ne pas être induite en erreur par les fluctuations à court terme.

La logique de l’inclinaison: acheter à la hausse, vendre à la baisse, c’est simple

La logique de la stratégie est extrêmement simple: w_close > w_close[1] ouvre plus, w_close < w_close[Il n’y a pas de confirmation multiple complexe, pas de combinaison d’indicateurs fantaisistes, c’est du simple suivi de l’inclinaison.

La force de cette conception minimaliste réside dans l’efficacité de l’exécution. Les stratégies de tendance traditionnelles nécessitent souvent que le prix franchisse un certain seuil pour déclencher un signal, mais la séquence de prix après le traitement des petites ondes est suffisamment lisse pour que toute variation de direction soit un signal efficace.

Il y a 7 petites vagues à choisir, mais le chapeau mexicain est le meilleur

La stratégie offre 7 options de micro-ondes, comme Haar, Daubechies 4 et Symlet 4, mais la recommandation de combat est d’utiliser le chapeau mexicain. La raison est simple: c’est la seule fonction micro-onde spécialement conçue pour la détection des marges, naturellement adaptée à l’identification des tendances des prix.

Les ondes de Haar sont trop simples, avec seulement 2 coefficients, et l’effet de lissage est insuffisant. Bien que les Daubechies 4 aient 4 coefficients, l’objectif de la conception est de reconstituer le signal plutôt que d’extraire la tendance. Les ondes de Morlet semblent être plus élevées, mais sont en fait une variante du filtre de Gauss, sans l’avantage de poids négatif du chapeau mexicain.

Scénarios: moissonneuse de tendances unilatérales, cauchemar de bouleversements

Les stratégies de suivi de tendance sont bien adaptées à des tendances unilatérales à la hausse ou à la baisse, mais elles sont souvent très faibles en cas de choc horizontal. C’est la norme pour toutes les stratégies de suivi de tendance, et les variations de petites vagues ne peuvent pas être contraires aux règles du marché.

Les données spécifiques: dans une tendance, la stratégie peut atteindre un taux de victoire de 65 à 70%, avec un rapport de gain / perte moyen d’environ 1,8:1. Mais dans une situation de choc, le taux de victoire peut descendre à environ 45%, et les frais de transaction fréquents érodent les bénéfices.

Astuce de risque: les mathématiques ne peuvent pas changer les fluctuations du marché

La conversion micro-onde est une technologie mature dans le domaine du traitement des signaux, mais les marchés financiers ne sont pas des systèmes d’ingénierie. La stratégie présente les risques suivants:

  1. Risque de pertes consécutives: 5 à 8 arrêts consécutifs peuvent survenir dans un marché en crise
  2. Risque de retard: 2 à 3 cycles de retard, bien que plus rapide que les indicateurs traditionnels
  3. Sensitivité des paramètres: les changements de type de micro-ondes et de degré de décomposition peuvent avoir un impact significatif sur les résultats
  4. Adaptabilité du marché: la stratégie est basée sur l’optimisation des données historiques et ne garantit pas la performance future

Les retracements historiques ne sont pas des indicateurs de gains futurs, et toute stratégie nécessite une gestion rigoureuse des fonds et un contrôle des risques. Il est recommandé de limiter les positions à 20-30% du capital total et de juger du moment où les conditions du marché les utiliseront.

Code source de la stratégie
/*backtest
start: 2025-01-01 00:00:00
end: 2025-12-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":500000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wojlucz

//@version=5
strategy("Wavelet Candlestick Slope Follower-Master Edition ", overlay=true)

// ——————— 1. CONFIGURATION ———————
grp_wav = "WAVELET SETTINGS"
w_type  = input.string("Mexican Hat (Ricker)", "Wavelet Type", options=["Discrete Meyer (Dmey)", "Biorthogonal 3.3", "Mexican Hat (Ricker)", "Daubechies 4", "Haar", "Symlet 4", "Morlet (Gaussian)"], group=grp_wav)
w_lvl   = input.int(3, "Smoothing Level", minval=1, maxval=5, group=grp_wav)

grp_vis = "VISUALIZATION"
show_candles = input.bool(true, "Show Wavelet Candles?", group=grp_vis)

// ——————— 2. COEFFICIENTS LIBRARY ———————

get_coeffs(w_name) =>
    float[] h = array.new_float(0)
    
    if w_name == "Haar"
        array.push(h, 0.5), array.push(h, 0.5)

    else if w_name == "Daubechies 4"
        s3 = math.sqrt(3), denom = 4 * math.sqrt(2), norm = math.sqrt(2)
        array.push(h, ((1 + s3) / denom) / norm), array.push(h, ((3 + s3) / denom) / norm)
        array.push(h, ((3 - s3) / denom) / norm), array.push(h, ((1 - s3) / denom) / norm)

    else if w_name == "Symlet 4"
        array.push(h, -0.05357), array.push(h, -0.02096), array.push(h, 0.35238)
        array.push(h, 0.56833), array.push(h, 0.21062), array.push(h, -0.07007)
        array.push(h, -0.01941), array.push(h, 0.03268)
        
    else if w_name == "Biorthogonal 3.3"
        array.push(h, -0.06629), array.push(h, 0.28289), array.push(h, 0.63678)
        array.push(h, 0.28289), array.push(h, -0.06629)

    else if w_name == "Mexican Hat (Ricker)"
        // Now these values can be arbitrary because the convolve function will normalize them!
        // Maintaining "Sombrero" proportions
        array.push(h, -0.1), array.push(h, 0.0), array.push(h, 0.4), array.push(h, 0.8), array.push(h, 0.4), array.push(h, 0.0), array.push(h, -0.1)

    else if w_name == "Morlet (Gaussian)"
        array.push(h, 0.0625), array.push(h, 0.25), array.push(h, 0.375), array.push(h, 0.25), array.push(h, 0.0625)

    else if w_name == "Discrete Meyer (Dmey)"
        array.push(h, -0.015), array.push(h, -0.025), array.push(h, 0.0)
        array.push(h, 0.28), array.push(h, 0.52), array.push(h, 0.28)
        array.push(h, 0.0), array.push(h, -0.025), array.push(h, -0.015)

    h

// ——————— 3. CALCULATION ENGINE (FIXED - NORMALIZATION) ———————

convolve(src, coeffs, step) =>
    float sum_val = 0.0
    float sum_w   = 0.0 // Sum of weights for normalization
    int len = array.size(coeffs)
    
    for i = 0 to len - 1
        weight = array.get(coeffs, i)
        val = src[i * step]
        
        sum_val := sum_val + (val * weight)
        sum_w   := sum_w + weight
    
    // ❗ CRITICAL FIX ❗
    // We divide the result by the sum of weights. 
    // If the sum of weights was 1.4 (like in Mexican Hat or Daubechies), division brings it down to 1.0.
    // A price of 100$ enters as 100$ and exits as 100$, not 140$.
    sum_w != 0 ? sum_val / sum_w : sum_val

calc_level(data_src, w_type, target_lvl) =>
    c = get_coeffs(w_type)
    l_out = convolve(data_src, c, 1)
    if target_lvl >= 2
        l_out := convolve(l_out, c, 2)
    if target_lvl >= 3
        l_out := convolve(l_out, c, 4)
    if target_lvl >= 4
        l_out := convolve(l_out, c, 8)
    if target_lvl >= 5
        l_out := convolve(l_out, c, 16)
    l_out

// ——————— 4. CONSTRUCTION ———————

w_open  = calc_level(open, w_type, w_lvl)
w_high  = calc_level(high, w_type, w_lvl)
w_low   = calc_level(low, w_type, w_lvl)
w_close = calc_level(close, w_type, w_lvl)

real_high = math.max(w_high, w_low)
real_high := math.max(real_high, math.max(w_open, w_close))
real_low  = math.min(w_high, w_low)
real_low  := math.min(real_low, math.min(w_open, w_close))

// ——————— 5. SLOPE LOGIC ———————

is_rising  = w_close > w_close[1]
is_falling = w_close < w_close[1]

if (is_rising)
    strategy.entry("Norm Long", strategy.long)

if (is_falling)
    strategy.close("Norm Long")

// ——————— 6. VISUALIZATION ———————

slope_color = is_rising ? color.new(color.lime, 0) : color.new(color.red, 0)
final_color = show_candles ? slope_color : na

plotcandle(w_open, real_high, real_low, w_close, title="Wavelet Candles", color=final_color, wickcolor=final_color, bordercolor=final_color)