M Langue Stratégie de négociation de tortues mise en œuvre ((V 1.0)

Auteur:Le petit rêve, Date: le 29 décembre 2018 09:07:24
Les étiquettes:Commerce des tortuesMon langage

Retour sur les faits

En 1994, Covel a repris un numéro de Financial World et a parcouru un article intitulé "Les meilleurs joueurs de Wall Street" parmi des investisseurs célèbres comme George Soros et Julian Robertson,Covel a remarqué un nom qu'il ne reconnaissait pas à la 25e place de la liste: R. Jerry Parker, qui a déclaré qu'il avait été formé comme "Turtle" par Richard Dennis (un autre nom que Covel ne reconnaissait pas).

Synopsis de la série

Richard Dennis a gagné plus de 200 millions de dollars en tant que trader. après avoir eu un débat avec son partenaire, William Eckhardt, sur la question de savoir si le trading est apprenable ou un talent inné, ils ont proposé Une expérience où ils passeraient deux semaines à former des novices dans la science du trading et leur donneraient ensuite chacun un million de dollars à investir. Il est allé à une ferme d'élevage de tortues à Singapour, déclarant: Nous allons faire pousser des commerçants comme ils font pousser des tortues.

Bien que chacun des 1 000 candidats ait passé par un processus de candidature rigoureux conçu pour tester leur intelligence, leur capacité à gérer les risques et leurs compétences mathématiques, la composition des candidats n'était pas la même. Les tortues choisies différaient beaucoup; ils comprenaient un maître de blackjack né en Tchécoslovaquie, un concepteur de jeux Dungeons and Dragons, un comptable évangélique, un MBA de Harvard, Les Turtles gagneraient plus de 150 millions de dollars en quatre ans.

Règles de négociation:

Dans la capture des signaux de tendance, la loi de trading de la tortue utilise un indicateur technique très important, le canal Donchian. Mais elle est quelque peu différente en termes de calculs spécifiques.

Richard Donchian a inventé cet indicateur. Il se compose de trois courbes de couleurs différentes. et le prix le plus bas pour montrer la volatilité du prix du marché, lorsque le canal est étroit, cela signifie que la volatilité du marché est La volatilité du marché est relativement élevée, sinon la largeur du canal.

Lorsque le prix franchit la voie supérieure du canal, il s'agit d'un signal d'achat possible; au contraire, il s'agit d'un signal de vente possible lorsqu'il franchit la voie inférieure.

Les méthodes de calcul du canal de Donchian sont les suivantes:

Relèche supérieure = Max (plus élevé, n), la valeur la plus élevée du prix le plus élevé de n jours

Relèche inférieure = Min (prix le plus bas, n), la valeur minimale du prix le plus bas de n jours

Le rail du milieu = (rail supérieur + rail inférieur) / 2

Dans le cadre de l'analyse multifactorielle dans le secteur financier, cette stratégie prédit l'évolution des prix après la percée sur la base de l'hypothèse de validité de la Bien sûr, l'efficacité de ce facteur a en effet été rigoureusement vérifiée et complétée par le modèle Fama-French à trois facteurs et est largement utilisée dans les les marchés financiers.

Bien sûr, nous pouvons optimiser et utiliser des indicateurs plus raisonnables de rupture de tendance.

Alors, puisque le facteur de dynamique est un facteur qui a été utilisé publiquement et largement, alors pourquoi la loi sur le commerce des tortues se démarque-t-elle de la foule? Les règles de trading définissent un ensemble de règles très strictes pour le contrôle des positions et le stop-loss.

    1. Unité de base de la position N

    Le principe de la règle de la tortue est de définir une petite unité (Unit) de sorte que la fluctuation de valeur attendue de la position correspond à 1% du total des actifs nets. si vous achetez les actifs de cette petite unité, la valeur marchande de la position ne changera pas de plus de 1% du total des actifs nets.

    Alors comment définissez-vous cette petite unité? Comment estimez-vous les fluctuations de valeur que cette petite unité peut apporter? Premièrement, en prédisant la volatilité de la valeur de cette petite unité (cette valeur La formule de calcul spécifique est la suivante:

    TrueRange = Max ((High−Low, High−PreClose, PreClose−Low)

    N = (la somme des valeurs N des 19 jours précédents + la TrueRange à ce moment-là) / 20

    Parmi eux, haut indique le prix le plus élevé de la journée, bas indique le prix le plus bas de la journée, et PreClose indique le prix de clôture de la journée précédente. la définition selon laquelle la valeur de N peut effectivement exprimer correctement les fluctuations récentes du prix de l'actif.

    Ainsi, une unité doit être calculée comme suit:

    Unité = (1%*Total_net)/N, Total_net est la valeur totale des actifs nets

    On peut voir que la volatilité des prix des actifs d'une unité = 1% du total des actifs nets

    1. Quand ouvrir une position

    L'action d'ouverture d'une position provient de la génération d'un signal de rupture de tendance. Si le prix actuel tombe en dessous de la piste inférieure, il générera un signal de position courte (le marché de la crypto-monnaie est soutenu par la vente à découvert!)

    Taille de construction initiale = 1 unité

    1. Quand est la position d'addition?

    Si la position de détention est une position longue et que le prix de l'actif a augmenté de 0,5N par rapport à la dernière position de détention (ou position additionnelle), alors ajouter une unité de position longue;

    Si la position de détention est une position courte et que le prix de l'actif a baissé de 0,5N par rapport à la dernière position (ou position additive), alors ajouter une unité de position courte.

    Nous avons vu que la stratégie de la tortue est en fait une stratégie de poursuite de haut en bas.

    1. Comment faire un stop loss dynamique

    Si la position de détention est une position longue et que le prix de l'actif diminue de 2N en fonction de la dernière position de détention (ou position additive), alors un stop loss pour toutes les positions;

    Si la position de détention est une position courte et que le prix de l'actif a augmenté de 2N par rapport à la dernière position de détention (ou position additive), alors toute la position doit être clôturée.

    Bien sûr, l'utilisateur peut personnaliser le plan de stop loss dynamique, comme une chute de 0,5N pour commencer la position de fermeture partielle, au lieu d'attendre une baisse de 2N après une ruée pour fermer la position de fermeture partielle. Le coût de l'impact est là.

    1. Comment faire un profit, pouvez-vous personnaliser la dynamique de profit?

    Dans la règle de la tortue, le signal de prise de profit est généré comme ceci:

    Si la position de détention est une position longue et que le prix actuel de l'actif tombe en dessous de la ligne inférieure du 10e canal Donchian, toutes les positions sont fermées;

    Si la position de détention est une position courte et que le prix de l'actif actuel dépasse le niveau supérieur du 10e canal Donchian, toutes les positions sont fermées.

    Bien sûr, les utilisateurs peuvent personnaliser le plan de prise de profit dynamique, par exemple lorsque le total des actifs nets / actifs nets initiaux > 1,5, il suffit de prendre le profit.

Avantages

Le plus grand avantage de la loi sur le commerce des tortues est de nous aider à établir une méthode efficace de contrôle de la taille de la position.

Désavantage

Le système de trading de tortues a un problème commun avec la stratégie de suivi des tendances, qui est le retrait de bénéfices flottants. Il est très fort dans la grande tendance, et il ne fonctionne pas très bien sur le marché du choc.

Assez parlé, faisons en sorte que ça arrive!

Langue M

Après 6 ans de développement, il a absorbé les commentaires de centaines de milliers d'utilisateurs. plateforme de développement de modèles programmatiques largement utilisée en Chine.

Le langage M préconise le concept de programmation des blocs de construction qui encapsule des algorithmes complexes en fonctions individuelles et adopte le mode de construction de small Bien que la grammaire soit simple, il peut également prendre en charge des applications financières logiques et complexes avec une structure de données programmatique spéciale et une riche bibliothèque de fonctions statistiques financières.

La bibliothèque de fonctions du langage M est fréquemment mise à jour, et de nouvelles fonctions peuvent être ajoutées à tout moment selon les nouvelles exigences du client pour prendre en charge les nouvelles Il s'agit d'un ouvrage qui a été conçu par le programmeur pour développer des idées et de nouvelles applications.

Le FMZ Quant a non seulement réalisé l'interpréteur de la grammaire du langage M, mais a également amélioré sa capacité à mélanger la programmation avec un langage de haut niveau tel que JavaScript.

Par exemple:

// ici vous pouvez appeler n'importe quelle fonction API de FMZ Quant le nombre de fois où la valeur de l'indicateur est supérieure à 1 Retour obj.val * 100; Je ne sais pas. Prix de clôture: C;

Le prix de clôture est multiplié par 100: TEST©;

Le prix de clôture précédent est magnifié 100 fois: TEST(REF(C, 1)); // La souris se déplace vers la ligne backtest K et la valeur de la variable est affichée.

img
img


(*backtest
start: 2018-11-01 00:00:00
end: 2018-12-19 00:00:00
period: 1d
exchanges: [{"eid":"Futures_BitMEX","currency":"XBT_USD"}]
args: [["ContractType","XBTUSD",126961]]
*)

// this demonstration mainly uses the Turtle Trading Rules to demonstrate the method of writing "position management, maximum position control and other fund management".
// only the demonstration key content statement is annotated, other statements please consult customer service
//This model is only used to demonstrate the use of this strategy, and enters the market accordingly, at your own risk.

TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));// True volatility
ATR:MA(TR,26); // Find a simple moving average of the true amplitude in 26 cycles, shown in the figure
ZOOM:=IFELSE(ISCONTRACT('@Futures_(?!CTP).*'), CLOSE, 1); // Compatible with cryptocurrency futures as margin
LOT:=((MONEYTOT*0.01*ZOOM)/(UNIT*ATR))*ZOOM;// Calculate the number of one hand based on 1% of equity
TC..IFELSE(ISCONTRACT('@Futures.*'), INTPART(LOT), LOT); // Compatible futures and spot ISCONTRACT starts with @ to indicate matching exchange name, support
MTC..4*TC; // Total position
HH^^HV(H,20); // Attached to the main image display
LL^^LV(L,20); // Attached to the main image display
CROSSUP(C,HH)&&ISLASTBK=0&&ISLASTSK=0&&BARPOS>=26,BK(TC);// The latest price exceeds the highest value of 20 cycles, the first time to buy long, the quality is TC hands
CROSSDOWN(C,LL)&&ISLASTBK=0&&ISLASTSK=0,SK(TC); // The latest price fell below the lowest value of 20 cycles, the first time to sell short, the quality is TC hands 
C>=BKPRICE+0.5*ATR&&BKVOL<MTC&&ISLASTBK,BK(TC);// The price has increased by 0.5 times ATR on the basis of the last holding position, and when the number of hands does not exceed 4 times of TC, buy long the adding position of TC hands
C<=SKPRICE-0.5*ATR&&SKVOL<MTC&&ISLASTSK,SK(TC);// The price fell 0.5 times ATR on the basis of the last holding position, and when the number of hands does not exceed 4 times of TC, sell short the adding position of TC hand.
C<=(BKPRICE-2*ATR)&&BKVOL>0,SP(BKVOL);// The latest price is less than the opening price minus 2 times of ATR, stop loss and close position
C>=(SKPRICE+2*ATR)&&SKVOL>0,BP(SKVOL); // The latest price is greater than the opening price plus 2 times of ATR, stop loss and close position
CROSSUP(H,HV(H,10))&&SKVOL>0,BP(SKVOL);// The highest price up-cross the highest price of 10 cycles, closing the position
CROSSDOWN(L,LV(L,10))&&BKVOL>0,SP(BKVOL); // The lowest price down-cross the lowest price of 10 cycles, closing position
TRADE_AGAIN(10);

Relationnée

Plus de