Stratégie de croisement de moyennes mobiles de Galileo


Date de création: 2023-12-18 12:07:07 Dernière modification: 2023-12-18 12:07:07
Copier: 0 Nombre de clics: 566
1
Suivre
1621
Abonnés

Stratégie de croisement de moyennes mobiles de Galileo

Aperçu

La stratégie de croisement de la moyenne galiléenne est une stratégie de négociation basée sur des moyennes mobiles. Elle génère un signal de négociation en calculant une moyenne mobile indicielle sur un certain cycle et en la comparant à la croisée des prix. Elle génère un signal de vente lorsque le prix tombe en dessous de la moyenne depuis le haut; elle génère un signal d’achat lorsque le prix franchit la moyenne depuis le bas.

Principe de stratégie

Le cœur de la stratégie de croisement de la moyenne galiléenne est la moyenne mobile indicielle (EMA). L’EMA est un algorithme de moyenne mobile qui tend à donner plus de poids aux prix les plus récents. Sa formule de calcul est:

EMA aujourd’hui = (prix de clôture d’aujourd’hui par la constante d’équilibre) + (EMA hier par la constante d’équilibre)

Le nombre régulier lisse α = ((2/( nombre de cycles + 1)) 。

La stratégie calcule les valeurs EMA en temps réel à partir de la longueur de cycle de l’entrée de l’utilisateur. Puis elle compare le prix à l’EMA et juge l’intersection des deux en tant que signal d’achat et de vente:

  1. Lorsque le prix est descendu de la direction supérieure vers le bas et atteint l’EMA, un signal de vente est généré et une ligne courte est opérée.

  2. Lorsque le prix franchit l’EMA depuis le bas, un signal d’achat est généré et une opération de multiplication est effectuée.

La stratégie consiste à tracer simultanément les lignes EMA et les flèches qui marquent les signaux d’achat et de vente.

Analyse des avantages

Les avantages de la stratégie de croisement de l’équilibre de Galilée sont les suivants:

  1. L’idée est simple, facile à comprendre et à mettre en œuvre, pour les débutants.
  2. Grâce à l’utilisation de l’EMA, il est possible de réagir plus rapidement aux changements de prix.
  3. Les signaux d’intersection sont clairs et il n’y a pas d’achats et de ventes fréquents.
  4. Il est possible d’adapter les paramètres de l’EMA aux différentes conditions du marché.
  5. Les signaux d’entrée et de sortie sont clairs et les risques sont maîtrisés.

Analyse des risques

La stratégie de l’intersection géométrique de Galilée comporte également les risques suivants:

  1. Les signaux de fausses informations sont plus fréquents lorsque les prix fluctuent fortement, ce qui affecte l’efficacité. Vous pouvez définir une stratégie de stop loss pour l’optimiser.
  2. Les indicateurs individuels sont vulnérables à la falsification et à l’échec des signaux. Des indicateurs supplémentaires peuvent être ajoutés pour optimiser.
  3. Il y a un certain retard, surtout après un événement soudain. On peut tester le raccourcissement du paramètre de la ligne moyenne.
  4. L’incapacité à s’adapter à une unilatéralité des prix à long terme est un défaut commun à la stratégie de l’uniformité.

Direction d’optimisation

Les stratégies de convergence de la ligne de la même longueur peuvent être optimisées dans les directions suivantes:

  1. En combinaison avec d’autres indicateurs, construire une stratégie de composition, éviter les faux signaux, améliorer la stabilité. Par exemple, ajouter le volume de transactions, les indicateurs de tendance, etc.

  2. Augmentation des stratégies de stop loss, mise en place d’un stop loss mobile ou en pourcentage, contrôle des pertes individuelles.

  3. Testez l’effet des différents paramètres de l’EMA et choisissez la meilleure combinaison de paramètres. Vous pouvez également tester d’autres types de moyennes mobiles.

  4. L’évaluation de l’adhésion à un mécanisme de réinsertion, qui permet de réintégrer le marché après une reprise des cours et d’améliorer le taux de profit.

Résumer

La stratégie de convergence de la ligne de Galilée est une stratégie de négociation simple, pratique, claire et facile à utiliser, adaptée aux débutants dans le trading quantitatif. Avec une optimisation et une amélioration constantes, il est recommandé de croire que son efficacité sera de mieux en mieux.

Code source de la stratégie
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 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/
// © armigoldman

//@version=3
strategy(title="Galileo Galilei", shorttitle="Galileo Galilei", overlay=true, initial_capital = 100000, default_qty_type=strategy.cash, default_qty_value = 100000)
len = input(11, minval=1, title="Length")
src = input(open, title="Source")
out = ema(src, len)
plot(out, title="EMA", color=yellow)
//last8h = highest(close, 8)
//lastl8 = lowest(close, 8)

//plot(last8h, color=red, linewidth=2)
//plot(lastl8, color=green, linewidth=2)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date Inputs
fromDay = input(defval=1, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2020, title="From Year", minval=1970)

// To Date Inputs
toDay = input(defval=1, title="To Day", minval=1, maxval=31)
toMonth = input(defval=12, title="To Month", minval=1, maxval=12)
toYear = input(defval=2021, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


bearish = cross(close, out) == 1 and close[1] > close
bullish = cross(close, out) == 1 and close[1] < close

plotshape(bearish, color=white, style=shape.arrowdown, text="BEAR", location=location.abovebar)
plotshape(bullish, color=white, style=shape.arrowup, text="BULL", location=location.belowbar)

buy = if cross(close, out) == 1 and close[1] < close
    strategy.entry("BUY", strategy.long, when=time_cond)
        //strategy.close_all(when=bearish)
        // strategy.exit("exit", "Long", profit =, loss = 35)


sell = if cross(close, out) == 1 and close[1] > close
    strategy.entry("SELL", strategy.short, when=time_cond)
        //sell = if bearish
        //strategy.close_all(when=bullish)
        // strategy.exit("exit", "Long", profit = bullish, loss = 100)

profit = strategy.netprofit
if not time_cond
    strategy.close_all()

//plotshape(true, style=shape.triangleup, location=location.abovebar)