Tendance de régression bilinéaire suivant la stratégie

Auteur:ChaoZhang est là., Date: 2023-11-17 16h51:33
Les étiquettes:

img

Résumé

La stratégie de suivi de tendance de régression bilinéaire utilise la différence entre la régression linéaire rapide et lente pour déterminer les tendances des prix et l'utilise comme signal d'entrée.

La logique de la stratégie

La stratégie calcule d'abord deux lignes de régression linéaire avec des périodes différentes, une rapide avec une période plus courte et une lente avec une période plus longue.

La stratégie entre en long lorsque la ligne de différence franchit le seuil et sort quand elle le franchit en dessous.

Analyse des avantages

  1. La régression linéaire double peut bien capturer les tendances des prix.

  2. Le filtre EMA élimine certains faux signaux des mouvements non tendance.

  3. Une logique simple et claire, facile à comprendre et à mettre en œuvre.

Analyse des risques

  1. Des périodes de LR inappropriées peuvent générer un bruit excessif.

  2. Le filtre EMA peut manquer des opportunités dans des tendances fortes.

  3. Préoccupé par les pertes sur les différents marchés.

Les solutions:

  1. Optimiser les périodes LR pour réduire le bruit.

  2. Ajustez dynamiquement la période de la EMA en fonction des conditions du marché.

  3. Ajouter le stop loss aux pertes de contrôle.

Optimisation

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

  1. Optimiser les périodes LR rapides et lentes pour trouver la meilleure combinaison.

  2. Essayez d'autres filtres comme les bandes de Bollinger, KDJ au lieu de l'EMA.

  3. Ajouter un stop loss dynamique pour contrôler les risques.

  4. Combinez avec la sélection des actions pour sélectionner les stocks tendance.

  5. Développer des paramètres adaptatifs basés sur les conditions du marché.

Résumé

La stratégie de régression bilinéaire est simple et directe pour capturer les tendances avec une double régression linéaire et un filtre EMA. Mais elle comporte également des risques qui doivent être traités par l'optimisation des paramètres, le stop loss, etc. Lorsqu'elle est correctement réglée, elle peut efficacement négocier les marchés en tendance.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TradingAmmo

//@version=4
strategy("Linear trend", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)

src = close
len1 = input(defval=13, minval=1, title="Fast LR")
len2 = input(defval=55, minval=1, title="Slow LR")

lag1 = input(0, title="Lag for fast")
lag2 = input(0, title="Lag for slow")

threshold  = input(0,step=0.5, title="Threshold")

fast_lr = linreg(src, len1, lag1)
slow_lr = linreg(src, len2, lag2)
lr = fast_lr - slow_lr
plot_fast = plot(lr, color = lr > 0 ? color.green : color.red)
plot(threshold, color=color.purple)

long_condition = crossover(lr, threshold) and close > ema(close, 200) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition) 

short_condition = crossunder(lr, threshold) 
strategy.close('BUY', when=short_condition) 



Plus de