Projets liés à la finance décentralisée
Contribution à TradingView
J’ai créé un indicateur TradingView en pinescript
qui permet de calculer la droite de régression linéaire d’un graphique.
C’est utile pour comprendre la direction d’un flux sur les marchés financier.
//@version=6
indicator("Simple Linear Regression Channel", overlay=true)
length = input.int(50, title="Bars for Regression", minval=2)
useMidpoint = input.bool(true, title="Use High-Low Midpoint (else Close)")
series = useMidpoint ? (high + low) / 2 : close
// Predicted value at start of window
regStart = ta.linreg(series, length, length - 1)
// Predicted value at current bar
regEnd = ta.linreg(series, length, 0)
x1 = bar_index - length + 1
y1 = regStart
x2 = bar_index
y2 = regEnd
var line lrLine = na
if na(lrLine)
lrLine := line.new(x1, y1, x2, y2,
xloc.bar_index,
extend=extend.right,
color=color.orange,
width=2)
else
line.set_xy1(lrLine, x1, y1)
line.set_xy2(lrLine, x2, y2)
line.set_extend(lrLine, extend.right)
Crypto bot
Objectif : un bot qui s’exécute sur le marché financier DeFI, et qui à pour but de réaliser des rendements de manière autonome. Son but est simplement d’entrer sur le marché, puis ressortir en réalisant un bénéfice.
Il n’a pas encore de stratégie spécifique : swing, intraday, scalping, etc.
Technologie
- Langage principal : RUST (analyse des données)
- UI locale : Tauri (visionnage du graphique en temps réel, affichage des ordres passés, bénéfices, pertes, etc.)
- Base de données : TimescaleDB (stockage en temps réel des ticks)
Logique basique de flux
- WebSocket Binance pour recevoir le flux de données en temps réel volume + prix.
- Tous les ticks du flux sont enregistrés dans la base de données en temps réel
- Permet de générer les bougies du graphique en fonction de l’échelle de temps souhaitée (génération via requête SQL).
- Stockage de certaines données en cache qui serviront d’indicateurs pour prendre des décisions :
- Volume lors des x dernières minutes.
- Prix le plus haut de la journée.
- Prix le plus bas de la journée.
- Haut et bas de certaines phases du marché.
- Etc.
Exemple d’une fonctionnalité
Il est possible d’automatiser certains ordres qu’on peut rencontrer lorsqu’on veut spéculer sur les prix d’un marché, en utilisant une plateforme publique comme Binance ou Hyperliquid. Mais il n’est pas possible de créer des conditions d’entrées et de sorties plus complexes.
Pour entrer sur un marché de manière conventionnelle, on retrouve souvent des ordres assez classiques comme :
- Market Order : entrer sur le marché immédiatement (au cours actuel). Si le prix du marché est de 100 000 dollars, on entre à ce niveau précis.
- Limit Order : entrer sur le marché lorsque le prix atteint un seuil spécifique. Si le prix du marché est de 100 000 dollars, mais qu’on souhaite entrer à 110 000 dollars, on peut placer un ordre qui sera déclenché si le prix atteint ce seuil.
Mais voici un exemple de condition qui n’est pas possible de mettre en place sur une plateforme publique :
**SI** le prix atteint 100 000 dollars **ET** que le prix remonte de 1,5% pourcent juste après **ET** le volume augmente
**ALORS** on entre sur le marché
Dans ce cas bien précis, on attend que le prix soit au niveau d’un support, puis on évite une fausse cassure du prix en attendant une remontée de 1,5%, pour assurer que c’est bien un rebond, et on peut aussi ajouter une condition en fonction du volume des ordres passés pour avoir plus de précision dans notre stratégie.
C’est un exemple assez basique, mais il démontre avec justesse, qu’il existe de nombreuses limites qu’un investisseur ordinaire ne voit pas forcément. L’objectif du bot est justement de briser toutes les limites existantes pour être le plus rentable possible, en adoptant des stratégies solides.