Nouvelle stratégie révolutionnaire de moyenne mobile à faible régression


Date de création: 2023-11-02 15:34:22 Dernière modification: 2023-11-02 15:34:22
Copier: 0 Nombre de clics: 658
1
Suivre
1617
Abonnés

Nouvelle stratégie révolutionnaire de moyenne mobile à faible régression

Aperçu

L’idée principale de cette stratégie est de détecter si le prix a franchi le prix le plus bas d’une période donnée, et si le prix a franchi plus, attendre que le prix revienne à la ligne d’équilibre.

Principe de stratégie

La stratégie obtient le prix le plus bas de la période donnée en appelant la méthode ta.lowest du script Pine et en le comparant avec le prix le plus bas de la période précédente, prevLow.

Si le prix le plus bas du dernier cycle est inférieur au prix le plus bas du cycle précédent, un signal de plus est émis. Après avoir fait plus, le prix le plus élevé du dernier cycle est comparé au prix le plus élevé du cycle précédent. Si le prix le plus élevé du dernier cycle est supérieur au prix le plus élevé du cycle précédent, la position est levée.

Cette stratégie permet de choisir une condition de déclenchement, c’est-à-dire que le prix minimum doit franchir 1, 2, 3 ou 4 prix minima précédents de manière consécutive, afin de contrôler la fréquence des transactions.

En outre, la stratégie trace sur le graphique une moyenne des prix les plus bas (lowestLow) et une moyenne des prix les plus élevés (highestHigh) pour visualiser les variations de la tendance.

Analyse des avantages

  • Cette stratégie capte une reprise après un nouveau bas et a un taux de victoire élevé.

  • La fréquence des transactions peut être contrôlée en choisissant le nombre de fois où le prix le plus bas peut être franchi.

  • Le tracé d’une ligne moyenne aide à déterminer intuitivement les points de changement de tendance.

  • La logique de la stratégie est simple, claire et facile à comprendre.

  • Les tests d’optimisation peuvent être configurés pour différents stocks et périodes.

Analyse des risques

  • La fausse rupture ne permet pas de déterminer le point d’inversion de la tendance et peut entraîner des pertes.

  • Il est nécessaire de tester la configuration d’optimisation de différentes combinaisons de paramètres, sinon la fréquence de transaction peut être trop élevée ou trop faible.

  • Les paramètres doivent être ajustés pour les différentes actions et ne conviennent pas à une application mécanique.

  • Les cycles de rétroaction insuffisants peuvent entraîner une suradaptation de la stratégie.

  • Les prix peuvent être encore plus bas après la rupture, et des arrêts de perte doivent être mis en place pour contrôler le risque.

Direction d’optimisation

  • Augmentation des mécanismes de stop-loss, tels que le stop-loss mobile, le stop-loss de suivi, etc. pour contrôler les pertes individuelles.

  • Optimiser le nombre de ruptures, équilibrer la fréquence des transactions et la qualité du signal.

  • Optimisation des paramètres pour tester différentes actions et périodes de temps.

  • Les conditions de filtrage ont été renforcées pour éviter les transactions fréquentes dans les marchés instables.

  • Envisagez d’inclure un indicateur de tendance pour éviter de négocier à contre-courant.

  • Test des signaux de sortie différents.

Résumer

Cette stratégie, qui permet de capturer les opportunités de revers en surveillant les ruptures de prix les plus bas, est une stratégie de retour de rupture typique. Ses avantages sont simples et faciles à comprendre, la fréquence de négociation est contrôlable et peut être appliquée à une variété d’actions.

Code source de la stratégie
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
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/
// © merovinh

//@version=5
strategy(title="Merovinh - Mean Reversion Lowest low",
     overlay = true,
     default_qty_type = strategy.percent_of_equity,
     initial_capital = 10000,
     default_qty_value = 10,
     commission_type = strategy.commission.percent,
     slippage = 1,
     commission_value = 0.04)

GR_TIME = 'Time Period'

bars = input(9, title = "Minimum number of bars", tooltip = "The minimum number of bars before updating lowest low / highest high")

numberOfLows  = input.string(defval='One', title='Number of broken lows', options=['One', 'Two', 'Three', 'Four'])

//Period

var prevLow = .0
var prevHigh = .0
var prevLow2 = .0
var prevLow3 = .0
var prevLow4 = .0

truetime = true


highestHigh = ta.highest(high, bars)
lowestLow = ta.lowest(low, bars)

if numberOfLows == 'One'
    if truetime and prevLow > 0 and lowestLow < prevLow
        strategy.entry('long', strategy.long)
if numberOfLows == 'Two'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2
        strategy.entry('long', strategy.long)
if numberOfLows == 'Three'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3
        strategy.entry('long', strategy.long)
if numberOfLows == 'Four'
    if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 and prevLow3 < prevLow4
        strategy.entry('long', strategy.long)

if truetime and prevHigh > 0 and highestHigh > prevHigh
    strategy.close('long')


if prevLow != lowestLow
    prevLow4 := prevLow3
    prevLow3 := prevLow2
    prevLow2 := prevLow
    prevLow := lowestLow
prevHigh := highestHigh

plot(lowestLow, color=color.green, linewidth=1, title="Lowest Low Line")
plot(highestHigh, color=color.green, linewidth=1, title="Highest High Line")