Stratégie de détection des tendances basée sur les principes d'action des prix

Auteur:ChaoZhang est là., Date: 2023-09-20 11:11:46 Je suis désolé
Les étiquettes:

Résumé

L'idée de base de cette stratégie est de déterminer la direction de la tendance actuelle en fonction de la relation entre le point élevé et le prix de clôture des barres de ligne K, et de lisser les résultats en utilisant des lignes moyennes mobiles.

La logique de la stratégie

Selon la relation de position entre le prix de clôture et les points hauts et bas, il est déterminé si la barre de ligne K de M-minute appartient à un type de clôture élevé (prix de clôture proche du point haut), à un type de clôture bas (prix de clôture proche du point bas) ou à un type normal (prix de clôture proche du milieu).

Plus précisément, on calcule d'abord delt = high - close, qui est la différence entre le point élevé et le prix de clôture, et height = high - low, qui est la différence entre le haut et le bas. Si delt > height * 2/3, il est déterminé comme un type de clôture élevé. Si delt < height/3, il est déterminé comme un type de clôture bas, sinon il est un type normal.

Ensuite, comptez le nombre de types de fermeture élevée, de fermeture basse et normale dans les barres de ligne N K les plus récentes, calculez le pourcentage qu'elles représentent et utilisez l'EMA pour les lisser en courbes de hausse, de chute et de milieu.

Lorsque la courbe de hausse traverse au-dessus de la courbe de chute, cela signifie que les barres de fermeture élevées commencent à augmenter, ce qui indique que le marché entre dans une tendance à la hausse, et un signal long est émis. Lorsque la courbe de chute traverse en dessous de la courbe de hausse, cela signifie que les barres de fermeture basses commencent à augmenter, ce qui indique que le marché entre dans une tendance à la baisse, et un signal court est émis.

Les avantages de la stratégie

Cette stratégie de jugement des tendances basée sur l'action des prix présente les avantages suivants:

  1. Le principe est clair et facile à comprendre et à maîtriser.

  2. Il ne s'appuie sur aucun indicateur, mais juge purement la direction de la tendance sur la base des caractéristiques du prix lui-même.

  3. Il existe peu de paramètres configurables, principalement les paramètres de lissage N et EMA, faciles à optimiser.

  4. Il peut être largement appliqué à tout actif numérique avec une certaine liquidité, y compris les actions, le forex, les crypto-monnaies, etc.

  5. Les résultats des tests antérieurs sont bons et les risques peuvent être strictement contrôlés.

  6. Il peut être combiné avec des lignes de tendance, des niveaux de support/résistance et d'autres méthodes techniques d'optimisation.

  7. Les stratégies de stop loss peuvent être configurées pour contrôler une seule perte.

Risques liés à la stratégie

Malgré les avantages, la stratégie comporte également les risques suivants:

  1. Lorsque le marché est en état de choc, le type de ligne K change fréquemment, ce qui peut générer de faux signaux.

  2. Des paramètres N et EMA incorrects peuvent entraîner des tendances manquantes ou trop de signaux non valides.

  3. Le jugement de la direction de la tendance basé uniquement sur les types de ligne K a un certain retard.

  4. Il ne peut pas filtrer efficacement les modèles de graphiques courants tels que la convergence des triangles, les drapeaux, etc., avec le risque de percées inverses.

  5. Cette stratégie appartient au suivi de tendance et ne peut pas saisir efficacement les opportunités d'inversion.

  6. Le stop loss doit être utilisé pour contrôler le risque de perte, sinon la perte unique peut être importante.

Directions pour l'optimisation de la stratégie

Pour réduire les risques et améliorer la rentabilité, la stratégie peut être optimisée dans les aspects suivants:

  1. Combiner des indicateurs de volatilité tels que l'ATR pour ajuster les paramètres N et EMA en fonction de la volatilité du marché, en évitant des signaux invalides excessifs sur les marchés à fourchette.

  2. Ajouter une analyse de volume pour filtrer les fausses éruptions dans des conditions de volume élevé.

  3. Combiner les lignes de tendance et les niveaux de support/résistance clés pour déterminer la direction de la tendance et l'authenticité de la percée.

  4. Ajoutez une analyse de plusieurs délais pour éviter des erreurs de jugement sur un seul délais.

  5. Ajouter des modules de reconnaissance de modèle pour inverser les positions en temps opportun lorsque des signaux significatifs d'inversion apparaissent.

  6. Optimiser les stratégies de stop loss basées sur la volatilité du marché et la préférence pour le risque.

  7. Ajoutez le stop loss de suivi, le stop loss de déplacement, etc. pour verrouiller les bénéfices et éviter de redonner.

Résumé

Cette stratégie juge la direction de la tendance en fonction de l'action des prix. La logique est claire et les résultats des backtests sont bons. Elle peut être largement appliquée au crypto trading. Mais il y a aussi quelques limitations. Elle doit être combinée avec des stop loss et des optimisations pour réduire les risques.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("trend detect", overlay=false)


lenght = input(34)
ema_smooth = input(5)

delt = high - close
height = high - low

color_plot=black
state=0

if delt > height/3*2
    state := 1
    color_plot := red
else
    if delt > height/3
        state := 2
        color_plot := blue
    else 
        state := 3
        color_plot := green
//plot(state, color=color_plot, style=histogram)
percOfType(len, state_for_count) =>
    num = 0
    for i=1 to len
        if state[i]==state_for_count
            num := num+1
    num/len*100
    
rise = ema(percOfType(lenght, 3), ema_smooth)
fall = ema(percOfType(lenght, 1), ema_smooth)
plot(rise, color = green)
plot(ema(percOfType(lenght, 2), ema_smooth), color = blue)
plot(fall, color = red)
plot(10, color=black)
plot(60, color=black)

longCondition = crossover(rise, fall)
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(rise, fall)
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

Plus de