Les ressources ont été chargées... Je charge...

Stratégie de négociation basée sur trois bougies baissières consécutives et deux moyennes mobiles

Auteur:ChaoZhang est là., Date: 2024-05-14 17h30:35 La date est fixée à
Les étiquettes:SMASMA200

img

Résumé

Cette stratégie est une stratégie de trading basée sur trois bougies baissières consécutives et deux moyennes mobiles. L'idée principale de la stratégie est la suivante: lorsqu'il y a trois bougies baissières consécutives et que le prix de clôture actuel est supérieur à la moyenne mobile de 200 jours, ouvrez une position longue; lorsque la moyenne mobile de 10 jours croise le prix, ou que le prix atteint le niveau de prise de profit ou d'arrêt de perte, fermez la position. La stratégie ne fonctionne que dans une plage de temps spécifiée.

Principe de stratégie

  1. Calculez le nombre de bougies baissières consécutives. Si le prix de clôture diminue, le nombre de bougies baissières consécutives augmente de 1; sinon, il se réinitialise à 0.
  2. Calculer les moyennes mobiles à 10 et 200 jours.
  3. Déterminer si le cours de clôture actuel est supérieur à la moyenne mobile à 10 jours.
  4. Vérifiez si les conditions d'entrée sont remplies: trois bougies baissières consécutives, l'heure actuelle se situe dans la fourchette spécifiée et le prix de clôture actuel est supérieur à la moyenne mobile de 200 jours.
  5. Vérifiez si les conditions de sortie sont remplies: la moyenne mobile à 10 jours se croise avec le prix ou si le prix atteint le niveau de prise de profit ou de stop-loss.
  6. Si les conditions d'entrée sont remplies et qu'il n'existe pas de position en cours, ouvrir une position longue.
  7. Si les conditions de sortie sont remplies et qu'il existe une position en cours, la position est fermée.

Les avantages de la stratégie

  1. Il prend en considération les mouvements de prix et les facteurs de moyenne mobile, ce qui lui permet de saisir les opportunités sur les marchés à la fois tendance et oscillation.
  2. Il fixe des niveaux de prise de profit et de stop-loss, qui peuvent contrôler efficacement les risques.
  3. Elle limite la durée d'exécution de la stratégie, en évitant des risques excessifs au cours de certaines périodes spécifiques.
  4. La logique du code est claire et lisible, ce qui le rend facile à comprendre et à optimiser.

Risques stratégiques

  1. Le jugement des bougies baissières consécutives peut être trop simple, déclenchant facilement de faux signaux.
  2. La fixation des niveaux de prise de profit et de stop-loss peut ne pas être suffisamment souple, ce qui conduit à des transactions fréquentes ou à des opportunités manquées lorsque le marché fluctue fortement.
  3. Il manque de considération pour les événements inattendus, les nouvelles majeures et d'autres facteurs non conventionnels, ce qui peut entraîner des risques supplémentaires.

Directions d'optimisation de la stratégie

  1. Il convient d'envisager l'introduction d'indicateurs plus techniques, tels que le RSI et le MACD, afin de construire une logique de jugement des signaux plus solide.
  2. Optimiser la définition des niveaux de prise de profit et de stop-loss, en introduisant des niveaux de prise de profit/stop-loss ou de stop-loss dynamiques basés sur des indicateurs de volatilité tels que l'ATR.
  3. Étudiez l'impact des différents paramètres sur la stratégie, tels que le nombre de bougies baissières consécutives, les périodes de moyenne mobile, etc., afin de trouver la combinaison optimale de paramètres.
  4. Incorporer la gestion des positions pour ajuster dynamiquement les positions en fonction des différents environnements du marché, améliorant ainsi l'efficacité de l'utilisation du capital.

Résumé

Cette stratégie construit un modèle de trading simple et facile à comprendre grâce à la combinaison de bougies baissières consécutives et de moyennes mobiles doubles. Tout en capturant les opportunités de tendance, la stratégie définit également certaines mesures de contrôle des risques. Cependant, il y a encore une marge d'optimisation dans le jugement des signaux et le contrôle des risques. En introduisant plus d'indicateurs techniques, en optimisant les paramètres, en mettant en œuvre des prises de profit / stop-loss et une gestion de position dynamiques, la robustesse et la rentabilité de la stratégie peuvent être encore améliorées.


/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Trading", overlay=true)

// Definir el número de cierres de velas decrecientes consecutivas
var int cierres_decrecientes_consecutivos = 0
num_cierres_decrecientes = input.int(3, title="Número de cierres decrecientes", minval=1)

// Definir el porcentaje de cambio para cerrar la operación
porcentaje_cierre_arriba = input.float(1.5, title="Porcentaje de cierre arriba (%)", step=0.1)
porcentaje_cierre_abajo = input.float(1.0, title="Porcentaje de cierre abajo (%)", step=0.1)

// Definir las medias móviles para el cierre de la operación
periodos_media_movil_cierre = input.int(10, title="Períodos de la media móvil para cierre")
periodos_media_movil_200 = input.int(200, title="Períodos de la media móvil de 200")

// Definir el rango de fechas para la simulación
start_date = timestamp(2024, 1, 1, 0, 0)
end_date = timestamp(2024, 12, 31, 23, 59)

// Calcular la media móvil para el cierre de la operación
sma_cierre = ta.sma(close, periodos_media_movil_cierre)
sma_200 = ta.sma(close, periodos_media_movil_200)

// Calcular si el precio está por encima o por debajo de la media móvil para el cierre de la operación
precio_por_encima_sma_cierre = close > sma_cierre
precio_por_debajo_sma_cierre = close < sma_cierre

// Calcular si se han producido num_cierres_decrecientes consecutivos
if (ta.change(close) < 0)
    cierres_decrecientes_consecutivos := cierres_decrecientes_consecutivos + 1
else
    cierres_decrecientes_consecutivos := 0

es_cierres_consecutivos = cierres_decrecientes_consecutivos >= num_cierres_decrecientes

// Definir condiciones de entrada y salida de la estrategia dentro del rango de fechas y con el precio por encima de la SMA de 200
condicion_entrada = es_cierres_consecutivos and close > sma_200
condicion_cierre_sma = (precio_por_encima_sma_cierre[1] and not precio_por_encima_sma_cierre) or (not precio_por_encima_sma_cierre[1] and precio_por_encima_sma_cierre)

// Calcular precios de salida basados en porcentajes
precio_salida_arriba = strategy.position_avg_price * (1 + porcentaje_cierre_arriba / 100)
precio_salida_abajo = strategy.position_avg_price * (1 - porcentaje_cierre_abajo / 100)

// Ejecutar operación en largo dentro del rango de fechas y con el precio por encima de la SMA de 200
if (condicion_entrada and strategy.opentrades == 0)
    strategy.entry("Long", strategy.long)

// Cerrar operación en largo si se cumple la condición de salida por cambio en el cruce de la media móvil dentro del rango de fechas
if (strategy.position_size > 0 and condicion_cierre_sma)
    strategy.close("Long")

// Cerrar operación en largo si el precio alcanza el porcentaje de cierre arriba o abajo dentro del rango de fechas
strategy.exit("Stop Loss", "Long", limit=precio_salida_arriba, stop=precio_salida_abajo)

// Plot para visualizar la media móvil para el cierre de la operación
plot(sma_cierre, color=color.red)

// Plot para visualizar la SMA de 200
plot(sma_200, color=color.blue)


Relationnée

Plus de