Stratégie de prise de bénéfices en pourcentage à plusieurs niveaux

Auteur:La bonté, Créé: 2019-09-25 16:24:31, Mis à jour: 2023-11-07 20:44:48

img

Résumé

Stanley Kroll a mentionné dans son livre Kroll on Futures Trading Strategy que ses méthodes de prise de profit sont divisées en trois parties: lorsque le prix cible est atteint, un tiers de la position sera fermé; un autre tiers de la position sera fermé lorsque la fourchette de prix de résistance et de support à long terme est brisée; le dernier tiers de la position suivra la tendance jusqu'à ce que le stop loss soit déclenché.

La stratégie partagée par cet article est basée sur ce principe. La ligne moyenne mobile est utilisée comme direction de la tendance. La relation entre le prix de clôture, le prix le plus élevé et le prix le plus bas est utilisée comme signal pour ouvrir la position.

Pourquoi avons-nous besoin d'arrêter les pertes et de profiter?

Il y a un vieux dicton dans le monde du trading: tout le monde sait comment ouvrir des positions, seuls les pros savent comment fermer des positions. Comme ces mots le suggèrent, comment quitter le marché est le facteur clé du trading, car lorsque vous ouvrez des positions, vous n'avez qu'à juger si la tendance du marché commence. Mais une fois que vous sautez sur le marché, vous devez juger si la tendance tourne ou non, et vous devez contrôler le risque à tout moment. Je crois que de nombreux traders ont expérimenté le marché roller coaster, vous sautez dans le train et vous vous retrouvez avec un petit profit ou même une perte.

En termes simples, la position de clôture n'est rien de plus que deux situations: prendre profit et arrêter la perte. Par exemple, si vous êtes chanceux, le prix commence à augmenter après l'achat. À ce moment-là, vous devez considérer le problème de prendre profit. Sinon, nous pouvons seulement gagner de l'argent sur le look, n'avons pas pris profit au bon endroit, et finalement le perdre. Si vous n'êtes pas chanceux, le prix commencera à chuter peu de temps après l'achat. À ce moment-là, vous devriez considérer le stop loss, ou vous devriez considérer les options de stop loss avant d'ouvrir la position, sinon la petite perte accumulera une grande perte.

D'un point de vue statistique, la plupart des positions de perte reviendront au prix de revient sur le marché futur. Cependant, si vous rencontrez une petite probabilité d'une grande tendance inverse, vous pouvez perdre tous les bénéfices antérieurs ou même l'ensemble du fonds. Par conséquent, pour nos investisseurs de détail, nous pouvons faire de gros profits; nous pouvons faire de petits bénéfices; nous pouvons effectuer de petites pertes, mais nous ne pouvons jamais perdre beaucoup d'argent. En un mot: Stop loss vous maintient en vie, et prendre un profit vous fait mieux vivre.

La logique de la stratégie

Parfois, lorsque nous prenons un profit intuitivement, il peut y avoir une grande vague de mouvement des prix du marché dont nous ne gagnons qu'une petite quantité. Bien que ce ne soit pas une transaction ratée, il y aura une sorte de regret de la mentalité, donc cette stratégie utilisera la méthode de prise de profit à plusieurs niveaux, c'est-à-dire que lorsque le profit flottant atteint 5%, le mode de prise de profit actif du premier niveau est activé. Une fois que le 100% est retiré du point le plus élevé du profit flottant, prenez le profit et fermez la position; lorsque le profit flottant atteint 10%, le mode de prise de profit actif du deuxième niveau est activé. Une fois que le 50% est retiré du point le plus élevé du profit flottant, prenez le profit actif et fermez la position; Lorsque le profit flottant atteint 20%, la prise de profit actif à trois niveaux est activée. Une fois que la logique est retirée du point le plus élevé du profit flottant, le mode de prise de profit actif et fermez la position.

  • Définir le rail supérieur

  • Définir le rail inférieur

  • Définir la moyenne mobile

  • Position longue ouverte: le prix de clôture est supérieur à la barre supérieure et la barre supérieure est supérieure à la moyenne mobile

  • Ouverture de position courte: le prix de clôture est inférieur à celui du rail inférieur et celui du rail inférieur est inférieur à la moyenne mobile

  • Fermeture d'une position longue: le prix de clôture est inférieur à la trace inférieure ou le prix de clôture est inférieur à la moyenne mobile

  • Fermeture de position courte: le prix de clôture est supérieur à la barre supérieure, ou le prix de clôture est supérieur à la moyenne mobile

  • Position longue de niveau 1 prendre profit: le prix le plus élevé après l'ouverture de la position est supérieur ou égal au prix d'ouverture multiplié par le premier niveau de profit de départ, et le prix le plus bas est inférieur ou égal au prix le plus élevé après l'ouverture de la position moins le bénéfice variable multiplié par la valeur déclencheuse de la position de premier niveau prendre profit.

  • Niveau 2 position longue prendre profit: le prix le plus élevé après ouverture de la position est supérieur ou égal au prix d'ouverture multiplié par le deuxième niveau de profit de départ, et le prix le plus bas est inférieur ou égal au prix le plus élevé après ouverture de la position moins le bénéfice variable multiplié par la valeur déclencheuse de la deuxième position prendre profit.

  • Position longue de niveau 3 prendre profit: le prix le plus élevé après l'ouverture de la position est supérieur ou égal au prix d'ouverture multiplié par le troisième niveau de profit de départ, et le prix le plus bas est inférieur ou égal au prix le plus élevé après l'ouverture de la position moins le profit flottant multiplié par la valeur déclencheuse de la position de troisième niveau prendre profit.

  • Position courte de niveau 1 après prise de profit: le prix le plus bas après ouverture de la position est inférieur ou égal au prix d'ouverture multiplié par le premier niveau de profit de départ, et le prix le plus élevé est supérieur ou égal au prix le plus bas après ouverture de la position plus le bénéfice variable multiplié par la valeur déclencheuse de prise de profit du premier niveau.

  • Position courte de niveau 2 à prise de profit: le prix le plus bas après l'ouverture de la position est inférieur ou égal au prix d'ouverture multiplié par le deuxième niveau de profit de départ, et le prix le plus élevé est supérieur ou égal au prix le plus bas après l'ouverture de la position plus le bénéfice variable multiplié par la valeur déclencheuse de la prise de profit de deuxième niveau.

  • Position courte de niveau 3 prise de profit: le prix le plus bas après l'ouverture de la position est inférieur ou égal au prix d'ouverture multiplié par le troisième niveau de profit de départ, et le prix le plus élevé est supérieur ou égal au prix le plus bas après l'ouverture de la position plus le bénéfice variable multiplié par la valeur déclencheuse de la prise de profit de troisième niveau.

  • Position longue Stop Loss: le prix de clôture est inférieur ou égal au prix d'ouverture multiplié par le facteur de stop loss

  • Position courte Stop Loss: le prix de clôture est inférieur ou égal au prix d'ouverture multiplié par le facteur de stop loss

Code de stratégie

Sur la base de la logique stratégique ci-dessus, nous pouvons mettre en œuvre cette stratégie sur la plateforme FMZ Quant.fmz.com> Connexion > Tableau de bord > Bibliothèque de stratégie > 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 à utiliser dans la stratégie: la longueur moyenne de la ligne, la plage de stop loss, le paramètre de prise de profit, etc., sont tous définis comme paramètres externes pour faciliter le débogage et l'optimisation des tests.

/ / Define parameters
LENGTH := 100; // moving average parameter
STOP_LOSS := 3; // Stop Loss range

// Define the take profit parameter
STARTPER1 := 5; // Level 1 tracking take profit, start from profit reaches 5%
STOPPER1 := 100; // Level 1 tracking take profit, profit retracement 100% triggers it
STARTPER2 := 10; // Level 2 tracking take profit, start from profit reaches 10%
STOPPER2 := 50; // Level 2 tracking take profit, profit retracement 50% trigger it
STARTPER3 := 20; // Level 3 tracking take profit, start from profit reaches 20%
STOPPER3 := 20; // Level 3 tracking take profit, profit retracement 20% trigger

Ensuite, définissez une fourchette de prix basée sur le prix d'aujourd'hui et d'hier, et la fluctuation du prix d'hier. Grâce à cette fourchette de prix et à la relation relative de position avec la moyenne mobile, non seulement le signal d'achat et de vente des positions ouvertes peut être bien suivi, mais aussi réduire le nombre de positions ouvertes dans la période de choc et l'ampleur du retrait ainsi.

/ / Define the upper and lower intervals
NN := BARSLAST(DATE <> REF(DATE, 1)) + 1; // current number of cycles
TODAY_OPEN := VALUEWHEN(NN = 1, O); // Opening price of the day
TODAY_HIGH := HHV(H, NN); // The highest price of the day
TODAY_LOW := LLV(L, NN); // lowest price of the day
YESTERDAY_HIGH := REF(TODAY_HIGH, NN); // Yesterday's highest price
YESTERDAY_LOW := REF(TODAY_LOW, NN); // yesterday's lowest price
BAND := YESTERDAY_HIGH - YESTERDAY_LOW; // Yesterday amplitude
UPPERLINE : TODAY_OPEN + BAND; // upper line
LOWERLINE : TODAY_OPEN - BAND; // lower line
MYMA:MA(CLOSE, LENGTH); // Moving average

Ensuite, il s'agit du code logique pour l'ouverture et la fermeture des positions. Lorsque le prix de clôture est supérieur au rail supérieur et que le rail supérieur est supérieur à la moyenne mobile, ouvrez la position longue; lorsque le prix de clôture est inférieur au rail inférieur et que le rail inférieur est inférieur à la moyenne mobile, ouvrez la position courte; la condition de position de clôture est juste opposée à la condition de position d'ouverture: lorsque le prix de clôture est inférieur au rail inférieur, ou que le prix de clôture est inférieur à la moyenne mobile, fermez la position longue; lorsque le prix de clôture est supérieur au rail supérieur, ou que le prix de clôture est supérieur à la moyenne mobile, fermez la position courte.

// open the position
C > UPPERLINE AND UPPERLINE > MYMA, BK; // Open long position
C < LOWERLINE AND LOWERLINE < MYMA, SK; // Open short position

// close the position
C < LOWERLINE OR C < MYMA, SP; // Close long position
C > UPPERLINE OR C > MYMA, BP; // Close short position

Enfin, il s'agit de la partie stop-loss et take-profit que nous avons mentionnée dans cet article. Qu'il s'agisse d'une position longue ou courte pour tirer profit, elle est divisée en trois étapes. Chaque étape est automatiquement ajustée en fonction des fluctuations actuelles des prix du marché et de la rentabilité. Et cet ajustement est réglé sur des paramètres externes, vous pouvez effectuer des ajustements fins en fonction des différentes conditions du marché et de l'état de la variété.

Le stop loss est également une partie de notre stratégie à considérer, car il est impossible de gagner de l'argent en ouvrant une position. Parfois, le marché est contraire à nos attentes, donc le stop loss est absolument nécessaire. Le stop loss de cet article est simple et violent, c'est-à-dire que lorsque la perte flottante atteint un certain niveau, toutes les positions seront fermées.

// long position take profit
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER1) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER1, SP;  // level 1
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER2) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER2, SP;  // level 2
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER3) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER3, SP;  // level 3

// short position take profit
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER1) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER1, BP;  // level 1
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER2) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER2, BP;  // level 2
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER3) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER3, BP;  // level 3

// stop loss
C <= BKPRICE * (1 - STOP_LOSS * 0.01), SP;  // long position
C >= SKPRICE * (1 + STOP_LOSS * 0.01), BP;  // short position

En outre, nous avons également défini la méthode de délégation des commandes, ainsi que le filtrage des signaux, pour rendre le traitement plus complet.

// Set the order commission method
SETSIGPRICETYPE(BK,NEW_ORDER);
SETSIGPRICETYPE(SK,NEW_ORDER);
SETSIGPRICETYPE(BP,NEW_ORDER);
SETSIGPRICETYPE(SP,NEW_ORDER);

// Set the signal filtering method
AUTOFILTER;

Test de retour de la stratégie

Environnement d'essai

  • Variété de négociation: indice des barres d'armature
  • Temps: du 22 février 2015 au 18 septembre 2019
  • Cycle: une heure
  • Le coût de l'ouverture et de la clôture des positions est de 2 pips.
  • Tarif: 2 fois le taux d'échange normal

img

Rapport sur les performances

img

Curve des fonds

img

Stratégie de copie

Cliquez pour copier la source de stratégie complète sans configurerhttps://www.fmz.com/strategy/166753


Relationnée

Plus de