Stanley Kroll a mentionné dans son livre
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.
Il y a un vieux dicton dans le monde du trading:
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.
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
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
// 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;
Environnement d'essai
Rapport sur les performances
Curve des fonds
Cliquez pour copier la source de stratégie complète sans configurerhttps://www.fmz.com/strategy/166753