![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
Articles d’actualité sur les crypto-monnaies
Crypto backtesting with python: un guide étape par étape
Feb 21, 2025 at 04:06 pm
Dans ce guide, nous allons construire un outil de backtesting crypto en tirant parti de l'API Coindecko, ce qui facilite le test de diverses stratégies de trading
This guide will help you build a crypto backtesting tool using the CoinGecko API. With this tool, you can easily test various trading strategies, ranging from simple price-based approaches like buying the dip to more complex strategies utilizing technical analysis and indicators.
Ce guide vous aidera à construire un outil de backtesting crypto à l'aide de l'API Coigecko. Avec cet outil, vous pouvez facilement tester diverses stratégies de trading, allant de simples approches basées sur les prix comme l'achat de la baisse à des stratégies plus complexes en utilisant une analyse technique et des indicateurs.
As always, you'll find a link to the GitHub repository at the end of the article, allowing you to dive right in and start experimenting.
Comme toujours, vous trouverez un lien vers le référentiel GitHub à la fin de l'article, vous permettant de plonger directement et de commencer à expérimenter.
What is Crypto Backtesting?
Qu'est-ce que la crypto-backtesting?
In the world of trading, crypto backtesting refers to the process of evaluating a trading strategy using historical market data to assess how it would have performed in the past.
Dans le monde des échanges, la crypto-backtesting fait référence au processus d'évaluation d'une stratégie de trading utilisant des données sur le marché historiques pour évaluer comment elle aurait fonctionné dans le passé.
This enables traders to gauge the profitability, risk, and overall effectiveness of a strategy before deploying it in live trading. By simulating trades based on past data, traders can refine their approach, identify potential weaknesses, and gain confidence in their strategy without risking real money.
Cela permet aux commerçants d'évaluer la rentabilité, le risque et l'efficacité globale d'une stratégie avant de le déployer dans le commerce en direct. En simulant les transactions basées sur des données antérieures, les commerçants peuvent affiner leur approche, identifier les faiblesses potentielles et gagner en confiance dans leur stratégie sans risquer de l'argent réel.
Pre-requisites
Pré-requis
Before we start building our crypto backtesting tool, we'll need the following:
Avant de commencer à construire notre outil de backtesting crypto, nous aurons besoin de ce qui suit:
To obtain a CoinGecko API key, head over to the Developer’s Dashboard and click on +Add New Key in the top right corner. For detailed instructions on generating and setting up your key, refer to this guide.
Pour obtenir une touche API Coingecko, rendez-vous sur le tableau de bord du développeur et cliquez sur + Ajouter une nouvelle touche dans le coin supérieur droit. Pour des instructions détaillées sur la génération et la configuration de votre clé, reportez-vous à ce guide.
We'll be using the OHLC Chart within Time Range endpoint to fetch historical prices, which is available on the Analyst plan and above. For a free alternative, you may use this endpoint instead. The only difference is that, on the Demo endpoint, you cannot specify a time range.
Nous utiliserons le graphique OHLC dans un point de terminaison de plage de temps pour récupérer les prix historiques, qui est disponible sur le plan d'analyste et supérieur. Pour une alternative gratuite, vous pouvez utiliser ce point de terminaison à la place. La seule différence est que, sur le point de terminaison de démo, vous ne pouvez pas spécifier une plage de temps.
Step 1. Set Up Your Environment
Étape 1. Configurez votre environnement
To get started, create an empty directory, which will serve as the root of your project. Within the root directory, let's create a new virtual environment that will allow us to install our requirements locally, without making any changes to the global Python environment.
Pour commencer, créez un répertoire vide, qui servira de racine de votre projet. Dans le répertoire racine, créons un nouvel environnement virtuel qui nous permettra d'installer nos exigences localement, sans apporter de modifications à l'environnement Python global.
Let’s now configure our Python application. Run the following commands to create and activate your environment:
Configurons maintenant notre application Python. Exécutez les commandes suivantes pour créer et activer votre environnement:
If you're using VS Code, your IDE may also ask you if you’d like to use the local Python compiler – choose yes.
Si vous utilisez VS Code, votre IDE peut également vous demander si vous souhaitez utiliser le compilateur Python local - choisissez oui.
Installing Requirements
Exigences d'installation
We’re now ready to install our project’s requirements. The easiest way to do this is by copying the file below to your root directory in a file called requirements.txt and then running pip install -r requirements.txt.
Nous sommes maintenant prêts à installer les exigences de notre projet. La façon la plus simple de le faire est de copier le fichier ci-dessous dans votre répertoire racine dans un fichier appelé exigences.txt, puis d'exécuter PIP install -r exiffice.txt.
Installing Ta-Lib (Optional)
Installation de Ta-Lib (facultatif)
There is one more requirement that we need to install: ta-lib. This is a fantastic Python library for calculating indicator values from raw data. Unlike the requirements above, ta-lib requires us to use the release files and build the package ourselves, otherwise, it will error during installation.
Il y a une autre exigence que nous devons installer: Ta-Lib. Il s'agit d'une fantastique bibliothèque Python pour calculer les valeurs des indicateurs à partir de données brutes. Contrairement aux exigences ci-dessus, Ta-lib nous oblige à utiliser les fichiers de libération et à construire le package nous-mêmes, sinon, il est erroné pendant l'installation.
Head over to the project’s release page and select a version that matches your OS, CPU architecture, and Python version. For instance, I’m running 64-bit Windows 11 with Python 3.11 and an x86 CPU architecture. The correct release for me was ta_lib-0.6.0-cp311-cp311-win_amd64.whl.
Rendez-vous sur la page de version du projet et sélectionnez une version qui correspond à votre système d'exploitation, architecture CPU et Python. Par exemple, j'exécute Windows 11 64 bits avec Python 3.11 et une architecture CPU x86. La version correcte pour moi était TA_LIB-0.6.0-CP311-CP311-win_amd64.whl.
To run this on a Macbook with Python 3.11 and an M1 chip or higher, you may use the following release: ta_lib-0.6.0-cp311-cp311-win_arm64.whl. Once you have downloaded the correct version for your machine, drop the file inside your project root. From your project root, install the package using the file you just downloaded.
Pour l'exécuter sur un MacBook avec Python 3.11 et une puce M1 ou supérieure, vous pouvez utiliser la version suivante: TA_LIB-0.6.0-CP311-CP311-WIN_ARM64.Whl. Une fois que vous avez téléchargé la version correcte de votre machine, déposez le fichier à l'intérieur de la racine de votre projet. Depuis la racine de votre projet, installez le package à l'aide du fichier que vous venez de télécharger.
For instance: pip install ta_lib-0.6.0-cp311-cp311-win_amd64.whl. This should take care of all the project requirements.
Par exemple: PIP installe TA_LIB-0.6.0-CP311-CP311-win_amd64.whl. Cela devrait prendre en charge toutes les exigences du projet.
Create project scaffold
Créer un échafaudage de projet
Inside your root directory, create the services and utils directories, alongside an empty .env file and an empty main.py file. It should look like so:
À l'intérieur de votre répertoire racine, créez les répertoires Services et Utils, à côté d'un fichier .env vide et d'un fichier main.py vide. Il devrait ressembler à ceci:
Inside your .env file, define a variable called CG_API_KEY and assign your CoinGecko API key as its value. We’ll use this to securely load the key into our app, without hardcoding it in the project files.
À l'intérieur de votre fichier .env, définissez une variable appelée CG_API_KEY et attribuez votre clé API Coigecko comme valeur. Nous allons l'utiliser pour charger en toute sécurité la clé dans notre application, sans le codage dur dans les fichiers du projet.
Step 2. Defining Utilities
Étape 2. Définition des services publics
Inside the utils directory that we defined, create a file called load_env.py. This will help us load our API key and define any additional configuration options that we may have.
À l'intérieur du répertoire Utils que nous avons défini, créez un fichier appelé load_env.py. Cela nous aidera à charger notre clé API et à définir toutes les options de configuration supplémentaires que nous pourrions avoir.
Note that in addition to our API Key, which we’re storing in cg_api_key, we’ve also defined some basic strategy settings such as a take_profit, a stop_loss, an order size, and a total_amount.
Notez qu'en plus de notre clé API, que nous stockons dans CG_API_KEY, nous avons également défini certains paramètres de stratégie de base tels qu'un Take_profit, un stop_loss, une taille de commande et un total_amount.
Feel free to adjust these settings to suit your needs, and play around with different settings during backtesting to find the best combination of stop loss and take profit for your strategy.
N'hésitez pas à ajuster ces paramètres en fonction de vos besoins, et jouez avec différents paramètres pendant le backtesting pour trouver la meilleure combinaison de perte d'arrêt et profiter de votre stratégie.
The backtesting library can behave unpredictably if the input amount is much smaller than the asset's price. To avoid this, we've set the amount high enough to prevent issues.
La bibliothèque de backtesting peut se comporter de manière imprévisible si le montant des entrées est beaucoup plus petit que le prix de l'actif. Pour éviter cela, nous avons fixé le montant suffisamment élevé pour éviter les problèmes.
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
- Dogecoin pourrait bientôt ressentir une forte baisse, tandis que Xyzverse attire une attention importante et attire de nouveaux investisseurs à un rythme rapide
- Feb 22, 2025 at 12:50 pm
- Les analystes avertissent que Dogecoin pourrait bientôt subir une forte baisse, perdant potentiellement 50% de sa valeur. Pendant ce temps, Xyzverse gagne significatif
-
- DOGECOIN (DOGE) Prix Action fait allusion à une évasion imminente à mesure que les baleines s'accumulent
- Feb 22, 2025 at 12:50 pm
- La balade des montagnes russes de Dogecoin (DOGE) se poursuit, les prix baissant de 3% au cours de la semaine dernière. Au lieu de déclencher des ventes en masse, cette baisse a enhardi de grands investisseurs qui voient une opportunité d'achat.
-
-
- Binance Coin (BNB) a du mal à maintenir l'élan, tandis qu'une nouvelle blockchain de couche 1, Coldware (froid), gagne une part de marché
- Feb 22, 2025 at 12:50 pm
- Binance Coin (BNB) a du mal à maintenir l'élan, oscillant en dessous du niveau de résistance de 700 $, tandis qu'une nouvelle blockchain de couche-1, Coldware (Cold), gagne rapidement du terrain parmi les investisseurs à haute teneur (HNW).
-
-
- Les FNB Bitcoin et Ethereum voient des sorties notables, des changements de potentiel de signalisation dans le sentiment des investisseurs
- Feb 22, 2025 at 12:50 pm
- Le secteur des fonds négociés en échange de crypto-monnaie (ETF) a été témoin de sorties notables à la fois sur Bitcoin et Ethereum, signalant des changements de potentiel
-
- RCO Finance: la plate-forme Defi alimentée en AI qui promet des rendements plus importants plus tôt
- Feb 22, 2025 at 12:50 pm
- Alors que les analystes prévoient que le prix de Dogecoin passant à 1 $ en 2026, les investisseurs recherchent des altcoins qui promettent des rendements plus importants plus tôt.
-
-
- Dogecoin est-il prêt pour une évasion? Ce que les investisseurs doivent savoir maintenant!
- Feb 22, 2025 at 12:50 pm
- La récente augmentation de l'accumulation de Dogecoin (DOGE) par des crypto-baleines majeures attire une attention significative. Ces mouvements suggèrent une perspective potentiellement optimiste