La direction parabolique est un indicateur d'analyse technique très étrange, inventé par Welles Wilder, le nom complet de l'abréviation est
Le virage parabolique est particulier parce que sa forme externe est différente des autres indicateurs. Il se compose de points rouges ou verts et suit le mouvement des prix en forme d'arc. Parce qu'il a la forme d'une parabole sur le graphique, nous l'appelons direction parabolique, mais il n'implique en fait aucun calcul mathématique de la parabole.
Il est construit sur le graphique des prix et est principalement utilisé pour analyser les tendances des prix. Ceci est similaire à la ligne moyenne mobile. La seule différence est qu'il est livré avec un facteur d'accélération qui ajuste sa vitesse à mesure que le prix change.
En outre, la moyenne mobile passera toujours par le prix, lorsque le prix traverse la parabole, l'indicateur inversera le
Le calcul de la direction parabolique est très compliqué. Tout d'abord, vous devez déterminer le point extrême (EP de prix le plus élevé ou le plus bas). Puis ajoutez un facteur d'accélération (AF) à partir de 0,02 à celui-ci, puis ajoutez 0,02 à chaque fois que le point extrême suivant est touché. Le maximum de AF est de 0,20, puis multipliez la différence entre le prix extrême et la SAR de la période précédente par le facteur d'accélération, puis ajoutez la SAR de la période précédente.
Première étape:Supposons que la période estt
. SAR(t)
est égal au prix le plus bas des N périodes antérieures.Af(t)
est de 0,02.
SiSAR(t)
est supérieur au prix le plus basL(t)
au cours de la période t, un changement se produit et la tendance à la baisse s'installe au cours de la période suivante;
SiSAR(t)
ne dépasse pas le prix le plus basL(t)
au cours de la période t, il entre dans la tendance haussière à la période suivante;
La valeur extrêmeEp(t)
est égal au prix le plus élevé des N dernières périodes;
Deuxième étape:La période de temps est t+1, qui est:
SAR(t+1)=SAR(t)+Af(t)*(Ep(t) – SAR(t))
SiSAR(t+1)
est supérieur au prix le plus basL(t+1)
au cours de la période t+1, un changement se produit et une tendance à la baisse s'installe au cours de la période suivante;
SiSAR(t+1)
ne dépasse pas le prix le plus basL(t+1)
de la période t+1, il entre dans la phase suivante de tendance haussière; et la valeur extrêmeEp(t+1)
est égal au prix le plus élevé des N dernières périodes;
Si le prix le plus élevé de la période, c'est,H(t+1)
est supérieur au prix le plus élevé des N périodes antérieures, alorsAF(t+1)=AF(t)+0.02
, dans le cas contraire,AF(t+1)= AF(t)
.
Troisième étape:répéter l'algorithme dans la deuxième étape de la tendance haussière dans la période de temps suivante t+2, t+3,..., jusqu'à ce que le changement se produise.AF
est de 0,2.
Première étape:Supposons que la période est t.SAR(t)
est égal au prix le plus élevé des N périodes antérieures.Af(t)
est de 0,02.
SiSAR(t)
est inférieure au prix le plus élevéH(t)
au cours de la période t, un changement se produit et la tendance haussière s'installe à la période suivante;
SiSAR(t)
n'est pas inférieur au prix le plus élevéH(t)
au cours de la période t, il entre dans la tendance à la baisse à la période suivante;
La valeur extrêmeEp(t)
est égal au prix le plus bas des N dernières périodes;
Étape 2: La période est t+1, qui est:
SAR(t+1)=SAR(t)+Af(t)*(Ep(t) – SAR(t))
SiSAR(t+1)
est inférieure au prix le plus élevéH(t+1)
au cours de la période t+1, un changement se produit et la tendance haussière entre dans la période suivante;
SiSAR(t+1)
n'est pas inférieur au prix le plus élevéL(t+1)
de la période t+1, il entre dans la tendance à la baisse à la période suivante; en outre, la valeur extrêmeEp(t+1)
est égal au prix le plus bas des N dernières périodes;
Si le prix le plus basL(t+1)
le prix de la période est inférieur au prix le plus bas des N périodes précédentes, alorsAF(t+1)=AF(t)+0.02
, dans le cas contraire,AF(t+1)=AF (t)
.
étape 3:répéter l'algorithme dans la deuxième étape de la tendance haussière dans la période de temps suivante t+2, t+3,..., jusqu'à ce que le changement se produise.AF
est de 0,2.
Il existe de nombreuses versions de l'algorithme SAR. L'algorithme ci-dessus n'en est qu'une, d'autres sont similaires dans leur structure. La différence réside dans les détails, tels que la condition de déclenchement du facteur d'accélération et l'algorithme de détermination deEp(t)
. Nous pouvons voir les caractéristiques du virage parabolique: dans la tendance à la hausse du marché, le SAR de chaque ligne K est supérieur au SAR de la ligne K précédente, et le point de stop-loss est progressivement déplacé vers le haut, assurant ainsi que le profit flottant monte également progressivement. C'est le stop-loss typique. Dans la tendance à la hausse accélérée du marché, l'AF est augmentée et l'EP est augmentée, ce qui accélère encore la vitesse du point de stop-loss, garantissant que dans une situation de tendance forte, le point de stop-loss peut suivre de près la tendance du prix de l'action et verrouiller plus de gains.
La direction parabolique séparée est une stratégie d'inversion. Lorsque le prix est au-dessus de la parabole, la position longue est maintenue, et lorsque le prix est en dessous de la parabole, la position courte est maintenue. Cette stratégie non vide peut bien s'adapter au marché de tendance et peut générer un bon profit lorsque la tendance du marché est lisse. Mais ceux qui ont fait du trading savent que le marché est volatil la plupart du temps, donc si vous utilisez le tour parabolique seul, vous risquez de perdre beaucoup des profits que vous avez gagnés sur le marché de tendance à long terme. Par conséquent, nous devons ajouter un filtre. Lorsque le marché est volatil, nous pouvons filtrer certaines des opportunités non tendance, réduisant ainsi la fréquence de trading et augmentant le taux de gain ou même le ratio de perte de profit, de sorte que sur le marché volatil à long terme, le recul de la valeur nette puisse être réduit efficacement.
Position ouverte longue: parabole en hausse, et le prix le plus élevé est supérieur au prix le plus élevé précédent
Ouverture de position courte: la parabole est en baisse et le prix le plus bas est inférieur au prix le plus bas précédent
Position longue en profit: la parabole est en baisse et le bénéfice flottant atteint le montant spécifié
Positions courtes en tirant profit: la parabole est en hausse et le bénéfice variable atteint le montant spécifié
Stop loss de position longue: la perte atteint le montant spécifié
Stop loss de position courte: la perte atteint le montant spécifié
Basé sur la logique stratégique ci-dessus, nous pouvons le mettre en œuvre sur la plateforme FMZ Quant.fmz.com> Connexion > Tableau de bord > Bibliothèque de stratégies > Nouvelle stratégie > Cliquez sur le menu déroulant dans le coin supérieur droit pour sélectionner Ma langue, commencer à écrire la stratégie et faire attention aux commentaires dans le code ci-dessous.
Tout d'abord, les paramètres qui doivent être utilisés dans cette stratégie: la longueur de la moyenne mobile, la plage de stop loss, le paramètre de prise de profit, etc. Tous ces paramètres sont définis comme des paramètres externes pour faciliter le débogage et l'optimisation des tests:
N:=30; // highest or lowest price parameter
SLOSS:=1; // Taking Profit and Stop Loss Coefficient
FUND:=100000; // Initial funds
Ensuite, calculez les données nécessaires utilisées dans la stratégie: calculez d'abord la quantité d'ordre, puis calculez l'indicateur de virage parabolique, et jugez s'il s'agit d'un état ascendant ou d'un état descendant, et enfin calculez la relation positionnelle entre le prix le plus élevé ou le plus bas et le prix le plus élevé et le plus bas précédent:
LOTS:=MAX(1,INTPART(FUND/(O*UNIT*0.1))); // Calculate the order quantity
SARLINE:=SAR(4,2,20); // Calculate the parabolic turn indicator
B1:=SARLINE>0; // Determine whether the trend is rising
S1:=SARLINE<0; // Determine whether the trend is falling
B2:=HIGH>=HHV(CLOSE,N); // Determine if the highest price is greater than the previous highest price
S2:=LOW<=LLV(CLOSE,N); // Determine if the lowest price is less than the previous lowest price
La partie suivante traite de la position d'ouverture et du stop-loss ou du take-profit:
BARPOS>N AND B1 AND B2,BK(LOTS); //Open long position
BARPOS>N AND S1 AND S2,SK(LOTS); // Open short position
S1 AND S2 AND BKHIGH>BKPRICE*(1+0.01*SLOSS), SP(BKVOL); // Long position taking profit
B1 AND B2 AND SKLOW<SKPRICE*(1-0.01*SLOSS),BP(SKVOL); // Short position taking profit
C<BKPRICE*(1-SLOSS*0.01), SP(BKVOL); // Long position stop loss
C>SKPRICE*(1+SLOSS*0.01), BP(SKVOL); // Short position stop loss
Environnement de contre-test
Rapport sur les résultats
Curve des fonds
(*backtest
Start: 2015-02-22 00:00:00
End: 2019-09-27 00:00:00
Period: 1h
Exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
Args: [["ContractType","rb000",126961]]
*)
N:=30; // Highest or lowest price parameter
SLOSS:=1; // Take Profit and Stop Loss Coefficient
FUND:=100000; // Initial funds
LOTS:=MAX(1,INTPART(FUND/(O*UNIT*0.1))); // Calculate the order quantity
SARLINE:=SAR(4,2,20); // Calculate the parabolic turn indicator
B1:=SARLINE>0; // Determine whether the trend is rising
S1:=SARLINE<0; // Determine whether the trend is falling
B2:=HIGH>=HHV(CLOSE,N); // Determine if the highest price is greater than the previous highest price
S2:=LOW<=LLV(CLOSE,N); // Determine if the lowest price is less than the previous lowest price
BARPOS>N AND B1 AND B2,BK(LOTS); //Open long position
BARPOS>N AND S1 AND S2,SK(LOTS); // Open short position
S1 AND S2 AND BKHIGH>BKPRICE*(1+0.01*SLOSS), SP(BKVOL); // long position taking profit
B1 AND B2 AND SKLOW<SKPRICE*(1-0.01*SLOSS),BP(SKVOL); // short position taking profit
C<BKPRICE*(1-SLOSS*0.01), SP(BKVOL); // long position stop loss
C>SKPRICE*(1+SLOSS*0.01), BP(SKVOL); // short position stop loss
Cliquez pour copier le code source complet de la stratégie sans configuration:https://www.fmz.com/strategy/168073
La plupart des indicateurs traditionnels sont loin derrière la nouvelle ligne K. Non seulement le virage parabolique peut être étroitement adapté à la nouvelle ligne K en fonction des caractéristiques du facteur d'accélération intégré, mais il n'est pas trop flexible, de sorte que la stratégie peut être à la fois offensive et défensive. Bien que la méthode de calcul soit très compliquée, les indicateurs existants peuvent être utilisés directement, ce qui est très pratique pour les débutants.