
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.
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:
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.
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.
Les avantages de la stratégie de croisement de l’équilibre de Galilée sont les suivants:
La stratégie de l’intersection géométrique de Galilée comporte également les risques suivants:
Les stratégies de convergence de la ligne de la même longueur peuvent être optimisées dans les directions suivantes:
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.
Augmentation des stratégies de stop loss, mise en place d’un stop loss mobile ou en pourcentage, contrôle des pertes individuelles.
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.
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.
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.
/*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)