Tendance suivant la stratégie basée sur le pourcentage de retracement

Auteur:ChaoZhang est là., Date: le 14 septembre 2023 à 19h49
Les étiquettes:

Cet article explique en détail une stratégie de trading quantitative qui suit les tendances basées sur le retracement en pourcentage des sommets locaux.

I. Logique stratégique

La logique de base de cette stratégie est d'identifier les hauts locaux sur une certaine période et d'entrer dans des retracements d'un pourcentage fixe.

  1. Calculez d'abord le plus haut niveau au cours des 90 derniers bars comme le pic local.

  2. Lorsque le prix retrace un pourcentage fixe (par exemple 3%) par rapport à ce pic, passez long pour suivre la tendance.

  3. Fixer l'objectif de prise de profit à un certain pourcentage (par exemple 6%) au-dessus du prix d'entrée.

  4. Aucun stop loss n'est utilisé, en se concentrant sur la tendance suivante.

En déterminant l'entrée en fonction du pourcentage de retrait des sommets locaux, la confirmation de la tendance peut être obtenue en filtrant efficacement les consolidations.

II. Avantages de la stratégie

Le plus grand avantage de cette stratégie est l'utilisation de la rétraction en pourcentage pour mesurer les tendances, filtrant une grande quantité de bruit.

Un autre avantage est la logique de prise de profit, qui assure un profit et une perte contrôlables par transaction, conformément aux principes de gestion de l'argent.

Enfin, l'objectif de profit plus élevé que le pourcentage de retracement fournit également une certaine dynamique de risque-rendement.

III. Les faiblesses potentielles

Bien que la stratégie présente des avantages, il convient de noter les risques suivants dans le commerce réel:

Tout d'abord, le pourcentage de retracement doit être fixé judicieusement.

Deuxièmement, l'absence d'un stop loss expose la stratégie à des risques importants pour le commerce unique.

Enfin, une mauvaise optimisation des paramètres peut également entraîner des problèmes de surajustement et une détérioration de la qualité du signal.

IV. Résumé

En résumé, cet article a expliqué en détail une stratégie quantitative de suivi de tendance basée sur le retracement en pourcentage. Il peut identifier efficacement la direction de la tendance et entrer sur les retraits. La gestion des bénéfices offre également certains mécanismes de contrôle des risques. Dans l'ensemble, en construisant des règles basées sur les retracements locaux des pics, cette stratégie peut servir de système de suivi de tendance robuste après optimisation appropriée.


/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 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/
// © luboremenar

//@version=4
strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000,
     default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1)

// inputs
range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 )
basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1)
retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99)
take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1)

// strategy definition
three_months_top = highest(range_of_tops)
longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0)

if (longCondition1)
    strategy.entry("Long1", strategy.long, qty = strategy.equity/close)

strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points),
     when= crossover(strategy.position_size, 0))


// plot
plot(strategy.equity)

// for testing, debugging
//test=0.0  
//if(crossover(strategy.position_size, 0))
//    test := (close*1.06-close)*basis_points
//plot(test)

Plus de