Journal de développement d'un bot de trading - 1

5 min

language: ja de fr ko

Bonjour, je suis Incompetent.
C'est l'histoire d'un Bot que je bidouille depuis environ l'année dernière.


Introduction

Jusqu'à présent, j'ai fait divers backtests et j'ai tâtonné beaucoup, mais finalement, j'ai commencé à penser qu'il serait plus rapide de commencer à créer le Bot moi-même, alors je l'ai fait.
La difficulté du backtesting est que si vous effectuez un backtest sur une longue période, les résultats de retour maximum seront biaisés en raison des essais et erreurs lors de la modification des paramètres des indicateurs techniques. Il est donc nécessaire de découper les données OHLCV sur une certaine période. C'est fastidieux.

Structure des fichiers

Depuis l'année dernière, j'écrivais tout dans un seul fichier main.py, mais j'ai apporté quelques améliorations.
Les signaux devenaient assez redondants, alors j'ai décidé de les séparer.

Image

En fait, sous signals, il suffit de renvoyer bull/bear et go/stop respectivement, et après avoir reçu ces valeurs de retour, main.py exécute les ordres.

  • Achat/Vente
    • Entrer dans la direction lorsque les valeurs de retour de bull/bear sont alignées.
  • Conditions de trading
    • Décider avec go/stop, et si une seule valeur de retour de stop est reçue, ne pas entrer.

Actuellement, le processus lui-même n'est pas daemonisé et est exécuté via cron.

Volume des ordres

C'est le principal défi, mais j'achète un certain pourcentage du capital.
Si ce point n'est pas rendu variable avec ATR ou autre, cela peut entraîner une réduction significative du capital lors de l'entrée dans un marché en range après une hausse.
En dehors de cela, je cherche un moyen de sauvegarder les fonds une fois qu'ils ont augmenté, mais aucune solution fondamentale n'a encore émergé.

Modularisation des signaux

C'est la meilleure chose que j'ai faite, car grâce à ce mécanisme, j'ai pu éviter la redondance, ce qui est très important.
De plus, il est facile de créer rapidement des choses lorsque je les soumets à un LLM.
Par exemple, il suffit de fournir un échantillon de code et d'implémenter une fonction qui renvoie une valeur finale.

Problèmes

  • Ajustement dynamique du volume des ordres
  • Ajustement dynamique de la prise de profit/stop-loss
  • Sélection des instruments de trading

Concernant la sélection des instruments de trading, en particulier le dernier point, s'il y a un instrument qui montre une tendance à court terme, il faut s'y joindre. Cependant, détecter cela et passer des ordres soulève la question de savoir comment définir les conditions pour déterminer quels instruments doivent être tradés comme des tendances à court terme, ce qui est un autre casse-tête.

Quant au langage, il n'y a aucune raison de passer à autre chose que Python, car ce n'est pas un bot d'arbitrage axé sur la vitesse. Cependant, avec un mécanisme comme celui-ci, Go pourrait être une bonne option secondaire pour la conception de l'importation de fonctions elle-même.

C'est pourquoi j'ai essayé d'écrire ceci, car il n'y a pas beaucoup de gens qui écrivent des bots de trading avec une approche différente des bots d'arbitrage.
À la prochaine. Merci.

Related Posts