From 47360eaaab7a088cc1227fa6c2fd9a8b7adedf28 Mon Sep 17 00:00:00 2001 From: "benjamin.anthonio" <benjamin.anthonioz@etu.hesge.ch> Date: Sun, 8 Dec 2024 21:57:50 +0100 Subject: [PATCH] feat: add algorithm interpolation --- JournalDeBord.md | 2 +- documentation.md | 91 +++++++++++++++++- documentation.pdf | Bin 0 -> 59049 bytes .../testapi/controller/ApiController.java | 22 ++++- .../com/example/testapi/model/DateRange.java | 2 + .../testapi/service/SimulateurService.java | 38 +++++++- .../com/example/testapi/service/Ticker.java | 3 +- .../src/main/resources/application.properties | 2 +- 8 files changed, 147 insertions(+), 13 deletions(-) create mode 100644 documentation.pdf diff --git a/JournalDeBord.md b/JournalDeBord.md index b19d63a..1ad0e72 100644 --- a/JournalDeBord.md +++ b/JournalDeBord.md @@ -6,6 +6,6 @@ | 11.11.2024-18.11.2024 | Récupérer les données (200000) et tester la librairie pour faire des graphes | J'ai créer un projet spring boot qui permet de récupérer les données en faisant plusieurs appels à l'api Binance | Problème avec la librairie des graphiques : le graphique s'affiche mais pas les candles | | | 18.11.2024-26.11.2024 | Afficher les données avec la librairie + Voir le temps que prends le programme pour récupérer 1 an de données + Mise en cache des données si récupération trop longue | Affichage des données avec la librairie. Il faut environ 1 minute pour récupérer 1 an de données. L'utilisateur peut choisir les dates qu'il veut. | Affichage des données pour plus de 10 jours : problème de chevauchement des timestamp de la 1ère requête et de la 2ème | | | 26.11.2024-02.12.2024 | Commencer à implémenter le simulateur et commencer l'introduction | Début d'une introduction et implémentation d'un ticker (déclencher un évènement toutes les $x$ secondes) | | | - +| 02.12.2024-09.12.2024 | Continuer de faire la doc et avancement du simulateur | Développement de l'introduction + ajout des choix technologiques + debut d'algo pour approximation du prix | On connait que les x et y de 2 points et les y des 2 autres points -> problème fonction 1er degré -> droite | Tester algo d'approximation du prix avec des données que l'on connait pour être sûr d'avoir la bonne approximation | <!-- | | | | | | --> \ No newline at end of file diff --git a/documentation.md b/documentation.md index 593485a..a8787e8 100644 --- a/documentation.md +++ b/documentation.md @@ -1,10 +1,24 @@ # Projet de semestre + +- [ ] [Ajouter la structure de la documentation](#structure_doc) +- [ ] [Description des routes de l'API](#description_routes_API) + ## Introduction -Le trading de cryptomonnaies se démocratise de plus en plus notamment grâce à la multiplication des plateformes de trading comme Binance, Coinbase ou encore Crypto\.com. Ces plateformes permettent d'acheter et de vendre des cryptomonnaies assez facilement notamment grâce à leurs applictions sur smartphone. De plus, beaucoup de personnes remarquent la grande volatilité des prix des cryptomonnaies et font du profit grâce à ces variations de prix. Cependant, bien que certains fassent effectivement des bénéfices, d'autres font de grosses pertes. Et c'est pourquoi les simulateurs de trading de cryptomonnaies sont utiles. Ces simulateurs permettent de s'entrainer avec les stratégies existantes sans pour autant avoir à réellement investir dans une cryptomonnaie et risquer de tout perdre. -Les simulateurs de trading de cryptomonnaies sont très utiles pour tester et améliorer les différents outils et stratégies de trading de cryptomonnaies. Ce projet a pour but de refactoriser un simulateur de trading de cryptomonnaies existant, développé en Python, dans un langage orienté objet. +Le trading de cryptomonnaies se démocratise de plus en plus notamment grâce à la multiplication des plateformes de trading comme Binance, Coinbase ou encore Crypto\.com. Ces plateformes permettent d'acheter et de vendre des cryptomonnaies assez facilement notamment grâce à leurs applictions sur smartphone. Cette accessibilité et cette simplification de l'achat et revente de cryptomonnaies permet à un plus grand public, même débutant, d'utiliser et de posséder des cryptomonnaies. + +Avec une augmentation de 33% sur un an, le nombre de personnes détennant des cryptomonnaies dans le monde atteint 562 millions en 2024 contre 420 millions en 2023. +(https://journalducoin.com/actualites/bilan-adoption-cryptos-monde-2024-rapport-triple-a/) +Cette augmentation de l'utilisation des cryptomonnaies montre que l'intérêt pour les cryptomonnaies augmentent que ce soit pour un simple investissement en vue de faire un profit ou même, pour certains, d'avoir une alternative aux monnaies fiduciaires. + +Beaucoup de personnes remarquent la grande volatilité des prix des cryptomonnaies et font du profit grâce à ces variations de prix. Cependant, bien que certains fassent effectivement des bénéfices, d'autres font de grosses pertes. Et c'est pourquoi les simulateurs de trading de cryptomonnaies sont utiles. Ces simulateurs permettent de s'entrainer avec les stratégies existantes et de mieux comprendre le marché des cryptomonnaies sans pour autant avoir à réellement investir dans une cryptomonnaie et risquer de perdre leur capital investit. Ces simulateurs reproduisent les fluctuations des différentes cryptomonnaies soit en temps réel soit sur les données passées. S'entrainer sur une période passée peut paraître à première vue pas vraiment utile, mais en réalité cela peut permettre de s'entrainer sur une situation passée qui pourrait se reproduire à l'avenir. +Les simulateurs sont donc aussi utiles à des débutants, pour leur faire découvrir le trading de cryptomonnaies sans leur faire perdre d'argent, ils peuvent y découvrir ce qu'est un ordre d'achat ou de vente et comment en placer, qu'à des traders plus experimentés en leur permettant de revenir sur des périodes passées, ils peuvent y tester de nouvelles stratégies en utilisant les différents indicateurs à disposition. En réalisant ces tests sur un simulateur, il pourra par la suite voir les résultats obtenus et les appliquer dans le vrai trading de cryptomonnaies. +Les simulateurs de trading de cryptomonnaies sont donc très utiles pour découvrir le trading de cryptomonnaies, pour tester et améliorer les différents outils et stratégies de trading de cryptomonnaies. -Ce projet est la suite de projets déjà réalisés par Mr. Pighini, Mr. Toniutt et Mr. SouzaLuz. Il est réalisé dans le cadre des projets de semestre et de Bachelor à HEPIA et a pour objectif d'améliorer le simulateur de trading de cryptomonnaies existant, notamment grâce à des notions de développement logicielle comme la programmation orientée objet. +Ce projet est la suite de projets déjà réalisés par Mr. Pighini, Mr. Toniutt et Mr. SouzaLuz. Il est réalisé dans le cadre des projets de semestre et de Bachelor à HEPIA et a pour objectif d'améliorer le simulateur de trading de cryptomonnaies existant, notamment grâce à des notions de développement logiciel comme la programmation orientée objet. Ces méthodes de développement permettront de modulariser le code pour plusieurs raisons comme une meilleure maintanabilité, un code plus intuitif et de meilleures performances. En plus de la réimplémentation du projet dans un langage orienté objet, les données seront récupérer d'une API et plus d'une base de données. Ce changement de source de données nous permet d'avoir les données les plus récentes et plus d'être restreint à des données fixes sur une certaine durée comme avoir les données de l'année 2022 seulement. + + +<a id="structure_doc" style="color: inherit; text-decoration: none;">Structure de la documentation</a> ## Cahier des charges @@ -13,3 +27,74 @@ Ce projet est la suite de projets déjà réalisés par Mr. Pighini, Mr. Toniutt - Créer le simulateur permettant de simuler l'évolution du prix d'une cryptomonnaie toutes les $x$ secondes - Implémenter les différents indicateurs - Créer et gérer un système de cache pour les données (moins important pour le moment) + +## Simulateurs de trading de cryptomonnaies existants + +Voici certains simulateurs de trading de cryptomonnaies déjà existant : +BitGasp : +https://app.bitsgap.com/ +Avatrade : +https://webtrader6.avatrade.com/ + + +## Choix technologiques + +### Frontend +Pour faire l'affichage d'un graphe pour l'affichage des bougies, j'utilise la librairie lightweight-charts open-source de TradingView. +Pour l'instant, je fais un frontend simple HTML-CSS-JS et plus tard je ferai un frontend plus complexe et plus réactif en utilisant soit Angular soit Vue.js ou soit React. +### Backend + +#### Java/Spring Boot +Avantages : + - Configuration du projet simplifiée + - Spring Boot utilise Maven ou Gradle pour la gestion des dépendances et de la compatibilité entre elles + - Gestion des objets et de leur cycle de vie + - Plusieurs fonctionnalités simplifiées comme la connexion à une base de données ou l'implémentation d'une API + +Désavantages : + - La prise en main peut être compliquée notamment si l'on ne connait pas les différentes annotations et à quoi elles servent + +#### C# +Avantages : + - Accès au framework .NET + +Désavantages : + - Moins de librairies open-source + - Implémentation d'une API plus compliqué qu'avec Spring Boot + +#### Python +Avantages : + - Prise en main facile pour les débutants avec de nombreuses fonctions et librairies déjà implémentées qui ne le sont pas forcément dans d'autres langages + - Implémentation d'une API assez simple grâce à FastAPI ou Flask + +Désavantages : + - Langage interprété, moins bonnes performances + - Pas réellement orienté objet + +#### Node.js/Typescript +Avantages : + - Gestionnaire de package NPM + +Désavantages : + - Temps de transpilation + +### Récupération des données + +Listes de plusieurs API : +- Binance +- HitBTC +- Kraken +- CryptoCompare +- Poloniex + +Pour récupérer les bougies (candles) nécessaires pour pouvoir faire l'interpolation du prix toutes les X secondes, nous récupérons les bougies à intervalles de 15 minutes depuis l'API de Binance. + +La transmission des donnéees depuis le backend vers le frontend se fait via une API dont les routes seront décrites plus tard. + + +<a id="description_routes_API" style="color: inherit; text-decoration: none;">Description des routes de l'API</a> + +Lien sur Spring Boot https://www.ibm.com/topics/java-spring-boot +Lien sur C# https://dyma.fr/blog/csharp/ + + diff --git a/documentation.pdf b/documentation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6cf5cd8ae1d089e33e2ac5c5a6bed512ade06ad1 GIT binary patch literal 59049 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%0D?gUbd`jhi77$Nr}^8{bN5~*vypg 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 literal 0 HcmV?d00001 diff --git a/testApi/src/main/java/com/example/testapi/controller/ApiController.java b/testApi/src/main/java/com/example/testapi/controller/ApiController.java index b3cc2fa..839b7d7 100644 --- a/testApi/src/main/java/com/example/testapi/controller/ApiController.java +++ b/testApi/src/main/java/com/example/testapi/controller/ApiController.java @@ -2,6 +2,7 @@ package com.example.testapi.controller; import com.example.testapi.model.DateRange; import com.example.testapi.service.ApiService; +import com.example.testapi.service.SimulateurService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -14,11 +15,14 @@ public class ApiController { private final ApiService apiService; + private final SimulateurService simulateur; + private DateRange dateRange; @Autowired - public ApiController(ApiService apiService) { + public ApiController(ApiService apiService, SimulateurService simulateur) { this.apiService = apiService; + this.simulateur = simulateur; } @GetMapping("/btcusdt") @@ -35,6 +39,22 @@ public class ApiController { return Collections.emptyMap(); } + @GetMapping("/startSimu") + public void testSomeFonctionnalities() { + this.simulateur.startSimulation(); + long[] x_tab = {}; + float[] y = new float[4]; + this.simulateur.approximatePrice(x_tab, y, 3); + } + + @GetMapping("/stopSimu") + public void stopSimulation() { + this.simulateur.stopSimulation(); + } + + + + } diff --git a/testApi/src/main/java/com/example/testapi/model/DateRange.java b/testApi/src/main/java/com/example/testapi/model/DateRange.java index b7c9181..eed3030 100644 --- a/testApi/src/main/java/com/example/testapi/model/DateRange.java +++ b/testApi/src/main/java/com/example/testapi/model/DateRange.java @@ -1,5 +1,7 @@ package com.example.testapi.model; +import org.springframework.stereotype.Component; + import java.time.LocalDate; import java.time.ZoneId; diff --git a/testApi/src/main/java/com/example/testapi/service/SimulateurService.java b/testApi/src/main/java/com/example/testapi/service/SimulateurService.java index fe9fe66..fff346d 100644 --- a/testApi/src/main/java/com/example/testapi/service/SimulateurService.java +++ b/testApi/src/main/java/com/example/testapi/service/SimulateurService.java @@ -1,17 +1,45 @@ package com.example.testapi.service; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.function.LongConsumer; + +@Service public class SimulateurService { private Ticker ticker; private int periodApproximationSec; - public SimulateurService(int periodApproximationSec) { + public SimulateurService(@Value("${simulateur.ApproximationPeriod}") int periodApproximationSec) { this.periodApproximationSec = periodApproximationSec; -// this.ticker = new Ticker(this.); + Runnable task = () -> System.out.println("Print après " + this.periodApproximationSec + " sec"); + this.ticker = new Ticker(task); } - public void pricesApproximations() { - ticker.start(this.periodApproximationSec); + public void startSimulation() { + this.ticker.start(this.periodApproximationSec); + } + + public void stopSimulation() { + this.ticker.stop(); + } - ticker.stop(); + public void approximatePrice(long[] x_tab, float[] y, int n) { + LongConsumer funcApproxPrice = (long x) -> { + double[] poly_pts = new double[n]; + for (int i = 0; i < x_tab.length; i++) { + double res = 1; + for (int j = 0; j < n; j++) { + if (i != j) { + res *= (double) (x - x_tab[j]) / (x_tab[i] - x_tab[j]); + } + } + poly_pts[i] = res; + } + double poly = 0; + for (int i = 0; i < n; i++) { + poly += y[i] * poly_pts[i]; + } + }; } } diff --git a/testApi/src/main/java/com/example/testapi/service/Ticker.java b/testApi/src/main/java/com/example/testapi/service/Ticker.java index 0ec077f..9e6295b 100644 --- a/testApi/src/main/java/com/example/testapi/service/Ticker.java +++ b/testApi/src/main/java/com/example/testapi/service/Ticker.java @@ -18,7 +18,6 @@ public class Ticker { } public void stop() { - executorService.shutdown(); + executorService.shutdownNow(); } - } diff --git a/testApi/src/main/resources/application.properties b/testApi/src/main/resources/application.properties index 0aa32ff..b1be6e4 100644 --- a/testApi/src/main/resources/application.properties +++ b/testApi/src/main/resources/application.properties @@ -2,5 +2,5 @@ spring.application.name=testApi server.port=8080 spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration - +simulateur.ApproximationPeriod=1 -- GitLab