
Aperçu
La stratégie est un système de trading de suivi de tendance basé sur la méthode d’estimation du noyau Nadaraya-Watson et le croisement des moyennes mobiles. La stratégie traite les données de prix en douceur à l’aide de la fonction de noyau Gauss, combinant les signaux croisés des moyennes mobiles pour capturer les tendances du marché et rendre les transactions de suivi de tendance intelligentes.
Principe de stratégie
Au cœur de la stratégie se trouve la méthode d’estimation du noyau de Nadaraya-Watson, qui utilise la fonction de noyau de Gauss pour l’aplatissement non paramétrique des données de prix. La mise en œuvre spécifique comprend les étapes suivantes:
- Le poids est calculé en fonction du noyau Gaussian, le paramètre de bande passante h est réglé sur 8.0
- Le prix de l’électricité est calculé en fonction de la quantité d’électricité consommée par le consommateur.
- Calculer une moyenne mobile simple (SMA) des données après l’aplatissement, avec une période de rétrocession de 15 cycles
- Un signal de multiplication est généré lorsque la moyenne mobile est traversée sur une courbe lisse.
- Un signal de blanchiment est généré lorsque la moyenne mobile est traversée sous une courbe de glissement
- Utilisez des variables de position pour suivre la position actuelle et éviter les ouvertures répétées
Avantages stratégiques
- L’utilisation d’estimations non paramétriques, sans hypothèses de distribution des données, pour une meilleure adaptation aux changements du marché
- Le fonctionnement de la fonction Gaussian peut réduire efficacement l’impact du bruit et améliorer la qualité du signal
- La vérification croisée des moyennes mobiles réduit les faux signaux
- Utilisation d’un système de gestion de position pour contrôler les risques
- Le code est simple, efficace, facile à entretenir et à optimiser
- Une logique stratégique claire et adaptée aux échanges de toutes les périodes
Risque stratégique
- Risque de sensibilité aux paramètres: le choix de la bande passante h et de la moyenne mobile peut avoir une incidence significative sur la performance de la stratégie
- Risque de retard: les estimations nucléaires et les moyennes mobiles ont une certaine retardation et risquent de manquer les événements critiques
- Risque de choc: Faux signaux peuvent être générés par des chocs horizontaux
- Coût de calcul: nécessité de traiter des quantités importantes de données historiques qui peuvent affecter les performances en temps réel
- Risque de surcompatibilité: l’optimisation des paramètres peut entraîner une surcompatibilité des données historiques
Orientation de l’optimisation de la stratégie
- Introduction de la bande passante adaptative: paramètres de bande passante ajustés dynamiquement en fonction des fluctuations du marché
- Augmentation du filtrage des conditions de marché: ajout d’indicateurs de force de tendance pour ouvrir des positions sur des marchés en forte tendance
- Optimisation des mécanismes d’arrêt des pertes: conception d’un arrêt dynamique basé sur la volatilité
- Améliorer la gestion des positions: ajuster la taille des positions en fonction de l’intensité des signaux et des fluctuations du marché
- L’introduction de l’analyse à cycles multiples: la détermination des tendances combinées à des cycles plus longs
Résumer
La stratégie combine de manière innovante l’estimation du noyau Nadaraya-Watson avec l’analyse technique traditionnelle pour construire un système de suivi de tendance robuste. La stratégie a une bonne extensibilité et un espace d’optimisation pour un développement ultérieur et une application pratique.
Code source de la stratégie
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © UniCapInvest
//@version=5
strategy("Nadaraya-Watson Strategy with Moving Average Crossover", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, max_bars_back=500)
// Girdiler
h = input.float(8.,'Bandwidth', minval = 0)
src = input(close,'Source')
lookback = input.int(15, "Moving Average Lookback", minval=1)
// Gaussian fonksiyonu
gauss(x, h) => math.exp(-(math.pow(x, 2)/(h * h * 2)))
// Nadaraya-Watson smoothed değerini hesaplama
var float smoothed = na
sum_w = 0.0
sum_xw = 0.0
for i = 0 to 499
w = gauss(i, h)
sum_w += w
sum_xw += src[i] * w
smoothed := sum_w != 0 ? sum_xw / sum_w : na
// Hareketli ortalama hesaplama
ma = ta.sma(smoothed, lookback)
// Alım ve satım koşulları (kesişimlere göre)
longCondition = ta.crossover(smoothed, ma)
shortCondition = ta.crossunder(smoothed, ma)
// Pozisyon durumu
var bool inPosition = false
// Strateji giriş ve çıkış koşulları
if (longCondition and not inPosition)
strategy.entry("Long", strategy.long)
inPosition := true
if (shortCondition and inPosition)
strategy.entry("Short", strategy.short)
inPosition := false
// Plotting
plot(smoothed, color=color.blue, title="Nadaraya-Watson Smoothed")
plot(ma, color=color.red, title="Moving Average")