Stratégie de trading Golden Cross basée sur l'EMA


Date de création: 2024-02-22 17:48:09 Dernière modification: 2024-02-22 17:48:09
Copier: 1 Nombre de clics: 729
1
Suivre
1617
Abonnés

Stratégie de trading Golden Cross basée sur l’EMA

Aperçu

La stratégie de négociation croisée des EMA sur l’or consiste à calculer la moyenne des EMA de différentes périodes et à juger de leur croisement pour émettre des signaux d’achat et de vente. Un signal d’achat est généré lorsque l’EMA à courte période traverse une EMA à longue période; un signal de vente est généré lorsque l’EMA à courte période traverse une EMA à longue période.

Principe de stratégie

Le cœur de la stratégie est de calculer la moyenne des EMA de deux périodes différentes, comprenant une moyenne EMA de période plus courte, avec une période de 9 par défaut, et une moyenne EMA de période plus longue, avec une période de 20 par défaut. Le code calcule les deux lignes séparément en appelant la fonction intégrée ema dans le script pine.

Le jugement du signal croisé est réalisé par les deux fonctions intégrées de crossover et de crossunder dans le script de pin. La fonction crossover détermine si la ligne rapide traverse la ligne lente en bas et renvoie la valeur de boule; la fonction crossunder détermine si la ligne rapide traverse la ligne lente en haut et en bas et renvoie la valeur de boule. En fonction des valeurs de retour de ces deux fonctions, le code soumet les instructions de vente ou d’achat correspondantes.

En plus de cela, le code fournit des conditions auxiliaires, telles que la définition d’une date de début et de fin, la limitation de seulement faire plus ou seulement faire moins, etc., ce qui aide à effectuer des mesures ou des optimisations plus précises.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu’elle est très simple et directe, facile à comprendre et à mettre en œuvre, adaptée aux débutants. De plus, la moyenne mobile elle-même est un indicateur de suivi de la tendance, permettant de suivre efficacement les tendances du marché et d’en tirer parti pour générer des revenus supplémentaires. Enfin, la stratégie a moins de paramètres et est facile à ajuster, ce qui est également l’un de ses avantages.

Analyse des risques

La stratégie est principalement exposée au risque de bruit de négociation et de renversement de tendance. La ligne EMA est vulnérable aux fluctuations du marché à court terme et peut générer de faux signaux, entraînant des transactions inutiles, ce qui augmente la fréquence et le coût des transactions. D’autre part, le risque de négociation est plus élevé lorsque le signal de croisement est émis, la tendance peut être proche du point de renversement.

Il est possible de réduire le bruit de la négociation en ajustant le cycle EMA ou en ajoutant d’autres conditions de filtrage. En même temps, un arrêt de perte est mis en place pour contrôler les pertes individuelles. Les paramètres d’optimisation peuvent rendre la stratégie plus stable.

Direction d’optimisation

Cette stratégie peut être optimisée dans les directions suivantes:

  1. Optimiser les paramètres du cycle EMA pour trouver la meilleure combinaison de paramètres
  2. Ajouter des filtres sur d’autres indicateurs comme le MACD, le RSI, etc. pour réduire les faux signaux
  3. L’augmentation des indicateurs de jugement de la tendance, afin d’éviter une inversion de tendance
  4. Les options de base combinées aux actions
  5. Adaptation de la gestion des positions, par exemple en définissant un stop loss en fonction de l’ATR

Résumer

La croix d’or EMA est une stratégie de suivi de tendance simple et efficace. Elle utilise la croix d’EMA pour générer des signaux de négociation, capter automatiquement les tendances des prix et profiter des tendances dans les prix. La stratégie est facile à comprendre et à ajuster, très adaptée à l’apprentissage des débutants et peut également être intégrée en tant que module dans des stratégies plus complexes.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
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/
// This strategy has been created for illustration purposes only and should not be relied upon as a basis for buying, selling, or holding any asset or security.
// © kirilov

//@version=4
strategy(
     "EMA Cross Strategy",
     overlay=true,
     calc_on_every_tick=true,
     currency=currency.USD
     )

// INPUT:

// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input(title="Fast EMA", type=input.integer, defval=9, minval=1, maxval=9999)
emaSlow = input(title="Slow EMA", type=input.integer, defval=20, minval=1, maxval=9999)

// Option to select trade directions
tradeDirection = input(title="Trade Direction", options=["Long", "Short", "Both"], defval="Both")

// Options that configure the backtest date range
startDate = input(title="Start Date", type=input.time, defval=timestamp("01 Jan 1970 00:00"))
endDate = input(title="End Date", type=input.time, defval=timestamp("31 Dec 2170 23:59"))


// CALCULATIONS:

// Use the built-in function to calculate two EMA lines
fastEMA = ema(close, emaFast)
slowEMA = ema(close, emaSlow)


// PLOT:

// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.black, linewidth=2)
plot(series=slowEMA, color=color.red, linewidth=2)


// CONDITIONS:

// Check if the close time of the current bar falls inside the date range
inDateRange = true

// Translate input into trading conditions
longOK  = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")

// Decide if we should go long or short using the built-in functions
longCondition = crossover(fastEMA, slowEMA)
shortCondition = crossunder(fastEMA, slowEMA)


// ORDERS:

// Submit entry (or reverse) orders
if (longCondition and inDateRange)
    strategy.entry(id="long", long=true, when = longOK)
if (shortCondition and inDateRange)
    strategy.entry(id="short", long=false, when = shortOK)
    
// Submit exit orders in the cases where we trade only long or only short
if (strategy.position_size > 0 and shortCondition)
    strategy.exit(id="exit long", stop=close)
if (strategy.position_size < 0 and longCondition)
    strategy.exit(id="exit short", stop=close)