La stratégie de trading de momentum analyse la comparaison des forces de position longues et courtes à travers la relation entre le prix d'ouverture, le prix le plus élevé et le prix le plus bas sur une certaine période de temps, ce qui nous permet indirectement de comprendre la distribution actuelle des forces longues et courtes sur le marché.
L'analyse de la dynamique des prix a été largement utilisée dans les ordres spéculatifs manuels traditionnels, en particulier pour déterminer la tendance unilatérale de la journée. Le vieux cliché, c'est de tirer parti de la situation. La meilleure quantification de la situation est la quantification de la comparaison de la force entre les côtés de la position longue et courte. L'analyse de la dynamique des prix est l'un des meilleurs indicateurs.
Ce document utilisera cette stratégie pour développer un programme automatisé de négociation au comptant pour les monnaies numériques sur le marché mondial.Huobi est un joueur..
AR = [Somme de tout (haut-ouvert) pour N jours /Somme de tout (bas-ouvert) pour N jours] * 100
Parmi eux:
N: La fenêtre statistique du cycle de temps quotidien est généralement de 30 jours par défaut, car le jour de négociation effectif d'un mois est d'environ 30 jours (transactions de monnaie numérique 24 heures sur 24, 7 jours sur 7, ce qui peut être prudent)
Haute: le prix le plus élevé en une seule journée
Ouvert: prix d'ouverture d'une seule journée
Bas: le prix le plus bas en une seule journée
La dynamique des prix reflète la position du prix d'ouverture entre le prix le plus élevé et le prix le plus bas pour une période de temps.
Remarque: Les chiffres ci-dessus sont tous des valeurs par défaut et ne sont pas des formules de vérité.
Comme d'habitude, nous ouvronsFMZ.COM, connectez-vous à notre compte, cliquez sur le tableau de bord, et déployez le docker et le robot.
Veuillez consulter mon précédent article sur le déploiement d'un docker et d'un robot:https://www.fmz.com/bbs-topic/9864.
Les lecteurs qui veulent acheter leur propre serveur de cloud computing pour déployer des dockers peuvent se référer à cet article:https://www.fmz.com/digest-topic/5711.
Ensuite, nous cliquons sur la bibliothèque Stratégie dans la colonne de gauche et cliquons sur Ajouter une stratégie.
N'oubliez pas de sélectionner le langage de programmation Python dans le coin supérieur droit de la page d'édition de stratégie, comme indiqué sur la figure:
Ensuite, nous écrirons le code Python dans la page d'édition du code. Le code suivant contient des commentaires très détaillés ligne par ligne, vous les lecteurs pouvez prendre votre temps pour comprendre. Plus important encore, bien que cette stratégie soit écrite sur la base du trading au comptant, l'extensibilité du code suivant prend également en compte le trading à terme. Les lecteurs intéressés peuvent essayer de réécrire le code suivant dans le trading à terme.
Nous utiliserons le spot Bitcoin de Huobi comme cible de négociation et commencerons à mettre en œuvre cette stratégie:
import types # Import the Types module library, which is designed to handle the various data types that will be used in the code.
def main(): # The main function, where the strategy logic begins.
IDLE = 0 # It is used to mark the position status, which can be understood as 0, that is, idle status, i.e. short position status.
LONG = 1 # Long positions
SHORT = 2 # Short position. Note that this strategy is applied to the spot market, so there is no short opening or position. This is written here to facilitate understanding of the strategy and future expansion (such as extending to the futures market).
state = IDLE # Variables that mark the status of a position
while True: # Enter the loop
r = exchange.GetRecords() # GetRecords is the official API of the FMZ Quant Platform, for detailed usage please refer to: https://www.fmz.com/api.
if len(r) <= 1: # Judge whether the K-line is larger than one, that is, whether it is currently in the open state, or it may enter an endless loop. Here, it is also convenient for readers to expand, and the trend state of a larger K-line period is more stable.
Log("The number of bars is not enough, wait for the next bar...") # Output logs
continue # Python loop control statement, continuing with the next part of the loop.
# Begin quantitative analysis of price momentum
ar = sum(r.High - r.Open) / sum(r.Open - r.Low) * 100 # Calculation formula
account = _C(exchange.GetAccount) # Get account information, _C is also the official API of the FMZ Quant platform, for usage, please refer to: https://www.fmz.com/api.
if ar < 95 and (state == IDLE or state == SHORT) : # If the AR value is less than the oversold line and the account has funds, then buy all positions.
if account["Balance"] > 50:
exchange.Buy(-1, account["Balance"] * 0.9) # Buy all positions of the market order
state = LONG # Change the position status to LONG
elif ar > 80 and (state == IDLE or state == LONG): # If the AR value is greater than the overbought line and the account has a position, sell the whole position.
if account["Stocks"] > 0.01:
exchange.Sell(-1, account["Stocks"] * 0.9) # Sell all positions market order
state = SHORT # Change the position status to SHORT
LogStatus(_D(), exchange.GetAccount() , state) # Update log information
Après avoir écrit la stratégie, la première chose que nous devons faire est de la tester pour voir comment elle se comporte dans les données historiques. Mais veuillez noter que le résultat du backtest n'est pas égal à la prédiction de l'avenir. Le backtest ne peut être utilisé que comme référence pour considérer l'efficacité de notre stratégie. Une fois que le marché change et que la stratégie commence à avoir de grandes pertes, nous devons trouver le problème à temps, puis changer la stratégie pour nous adapter au nouvel environnement du marché, comme le seuil mentionné ci-dessus. Si la stratégie a une perte supérieure à 10%, nous devons arrêter immédiatement le fonctionnement de la stratégie, puis trouver le problème. Nous pouvons commencer par ajuster le seuil.
Cliquez sur backtest dans la page d'édition de stratégie. Sur la page de backtest, l'ajustement des paramètres peut être effectué de manière pratique et rapide en fonction des différents besoins. Surtout pour la stratégie avec une logique complexe et de nombreux paramètres, pas besoin de revenir à la page du code source et de le modifier un par un.
Le temps de backtest est le dernier mois. Cliquez pour ajouter l'échange au comptant Huobi et la cible de trading BTC.
Résultats des tests antérieurs:
Nous pouvons voir que la stratégie a bien fonctionné dans le backtest de ce mois.
Les avantages Par rapport à certains autres indicateurs techniques traditionnels, l'avantage de la dynamique des prix est qu'elle n'utilise pas un prix d'ouverture ou de clôture unique, mais présente les prix les plus élevés et les plus bas.
Les inconvénients Utilisez la valeur de l'élan des prix de manière indépendante pour juger si le prix est trop élevé ou trop bas, pour juger long/short, il est susceptible de sortir tôt dans une vague de tendances majeures, ou de pêcher au fond tôt dans une vague de marché à la baisse majeure.
Le seuil de mise en place de la stratégie doit également être déterminé en fonction des caractéristiques de l'objet de négociation. La fluctuation des prix du marché de la monnaie numérique est relativement grande et le volume de négociation est énorme, en particulier sur les monnaies traditionnelles telles que le Bitcoin, et il n'y a pas de limite à la hausse et à la baisse, de sorte que la valeur du seuil est plus élevée que celle du marché boursier traditionnel. La ligne de survente de 80 est généralement difficile à toucher et il y a peu de signaux d'achat; Alors que la ligne de survente de 170 est souvent en dessous du seuil, le signal de vente est fréquemment déclenché. Cela fera en sorte que la stratégie soit en position courte la plupart du temps et que l'utilisation des fonds devienne très faible. Par exemple, depuis janvier de cette année, le prix du Bitcoin est passé de 3500 à près de 13000 en une vague de marché haussier. La valeur du seuil a franchi très tôt la ligne de 170 et nous n'avons pas été très élev
Par conséquent, il n'y a jamais eu de stratégie de trading du Saint Graal sur le marché. Vous ne pouvez pas toujours faire des profits sans backtesting et débogage. Comme les traders subjectifs, nous, les traders quantitatifs, nous finissons par atteindre le même objectif de différentes manières. Nous devons nous adapter aux conditions locales en fonction des changements du marché et répondre aux changements du marché. Lorsque la stratégie est inefficace, nous devons l'ajuster à temps.
Si vous avez des questions, vous pouvez laisser un message à:https://www.fmz.com/bbs, qu'il s'agisse de la stratégie ou de la technologie de la plateforme, la plateforme FMZ Quant dispose de professionnels prêts à répondre à vos questions.