Stratégie de trading basée sur trois chandeliers noirs consécutifs et des moyennes mobiles doubles

SMA SMA200
Date de création: 2024-05-14 17:30:35 Dernière modification: 2024-05-14 17:30:35
Copier: 3 Nombre de clics: 506
1
Suivre
1617
Abonnés

Stratégie de trading basée sur trois chandeliers noirs consécutifs et des moyennes mobiles doubles

Aperçu

La stratégie est une stratégie de trading basée sur trois courbes négatives et deux courbes positives consécutives. L’idée principale de la stratégie est la suivante: ouvrir une position plus élevée lorsque trois courbes négatives se produisent de manière consécutive et que le prix de clôture actuel est supérieur à la moyenne des 200 jours; plafonner lorsque la moyenne des 10 jours se heurte au prix ou lorsque le prix atteint un point d’arrêt ou de perte.

Principe de stratégie

  1. Calculer le nombre de clins consécutifs. Si le cours de clôture est en baisse, le nombre de clins consécutifs est ajouté à 1; sinon, le nombre de clins consécutifs est réinitialisé à 0.
  2. Calculer la moyenne des 10 jours et la moyenne des 200 jours.
  3. Pour déterminer si le cours de clôture actuel est supérieur à la moyenne des 10 jours.
  4. Pour déterminer si les conditions d’entrée sont remplies: trois lignes négatives consécutives, l’heure actuelle est dans la plage indiquée et le prix de clôture actuel est supérieur à la moyenne des 200 jours.
  5. Déterminer si les conditions de sortie sont remplies: une ligne moyenne sur 10 jours se croise avec le prix, ou le prix atteint un point d’arrêt ou d’arrêt de perte.
  6. Si vous remplissez les conditions d’entrée et que vous n’avez pas de position en cours, ouvrez une position supplémentaire.
  7. Si les conditions de sortie sont remplies et que la position est actuellement détenue, la position est nulle.

Avantages stratégiques

  1. Il est possible de saisir des opportunités dans des conditions de tendance et de choc en tenant compte des facteurs de tendance et de moyenne.
  2. Le stop loss est mis en place pour contrôler efficacement le risque.
  3. La limitation du temps de fonctionnement de la stratégie permet d’éviter de prendre des risques excessifs à certaines périodes.
  4. La logique du code est claire, lisible, facile à comprendre et à optimiser.

Risque stratégique

  1. Le jugement sur les ondes continues est peut-être trop simple et risque de provoquer des signaux erronés.
  2. Les paramètres de Stop Loss peuvent ne pas être suffisamment flexibles, ce qui peut entraîner des transactions fréquentes ou des opportunités manquées en cas de forte volatilité.
  3. Le manque de prise en compte des facteurs extraordinaires tels que les événements imprévus, les nouvelles importantes, etc., peut entraîner des risques supplémentaires.

Orientation de l’optimisation de la stratégie

  1. L’introduction de plus d’indicateurs techniques, tels que le RSI, le MACD, etc., peut être envisagée pour construire une logique de jugement de signal plus robuste.
  2. Il est possible d’optimiser les paramètres de stop loss, d’introduire un stop loss dynamique ou un stop loss basé sur des indicateurs de volatilité tels que ATR.
  3. On peut étudier l’impact de différents paramètres sur la stratégie, tels que les racines négatives continues, les cycles moyens, etc., pour trouver la combinaison optimale de paramètres.
  4. Il est possible d’intégrer la gestion des positions, d’ajuster les positions en fonction de la dynamique des différents environnements de marché et d’améliorer l’efficacité de l’utilisation des fonds.

Résumer

La stratégie utilise une combinaison de lignes négatives et de lignes doubles pour construire un modèle de négociation simple et facile à comprendre. La stratégie utilise des opportunités de tendance tout en mettant en place des mesures de contrôle des risques. Cependant, la stratégie peut être optimisée davantage en termes de jugement des signaux et de contrôle des risques. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées en introduisant plus d’indicateurs techniques, en optimisant les paramètres de configuration, en arrêtant les pertes et en gérant les positions.

Code source de la stratégie
/*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)