note de recherche

Agents de trading Deep RL : comment entraîner, valider et déployer des réseaux de politiques après coûts ?

Deep RL Trading Agents: How to Train, Validate and Deploy Policy Networks After Costs?

publié
lecture
33 min · 4,481 mots
Registre des affirmations
39/40 affirmations vérifiées · 18 sources

Éditions: English · عربي · Español

Réponse directe

Il n'existe pas, dans ces affirmations, d'étude comparative directe publiée montrant qu'une politique de trading par apprentissage par renforcement profond bat des baselines simples après coûts à la fois sur les actions, les cryptomonnaies et le forex ; les preuves sont fragmentées entre des frameworks et des articles distincts, chacun testant un marché, un paramètre de coût et une baseline différents. Des frameworks ouverts tels que FinRL et FinRL-Meta fournissent l'échafaudage d'ingénierie (environnements, pipelines de données, tutoriels, ensembling, simulation parallèle sur GPU) mais les chiffres de performance rapportés à côté proviennent de petits backtests spécifiques au framework, pas de réplications indépendantes. Là où les coûts de transaction étaient explicitement variés, les résultats changeaient : les modèles traditionnels d'apprentissage automatique faisaient mieux sur la précision directionnelle tandis que les modèles profonds faisaient mieux une fois les coûts inclus, sur deux univers d'indices actions couvrant 424 actions composantes du S&P 500 et 185 actions composantes du CSI 300 de 2010 à 2017 [12]. L'ensembling réduit la variance des politiques DRL et améliore le drawdown et le Sharpe ratio dans les résultats expérimentaux rapportés, mais l'instabilité sous-jacente des agents individuels et le goulot d'étranglement d'échantillonnage subsistent [6]. Un constructeur devrait traiter chaque rendement rapporté comme conditionnel à sa propre fenêtre de backtest, à son modèle de coût et à sa graine, et budgétiser une validation walk-forward et du paper trading plutôt que de faire confiance à un seul chiffre pour se transférer.

Pourquoi il est difficile de répondre proprement à cette question

L'apprentissage par renforcement financier (FinRL) applique l'apprentissage par renforcement à des tâches telles que le trading algorithmique, la gestion de portefeuille et la tarification d'options [6]. L'attrait est évident : un réseau de politique qui ingère les prix, les positions et la trésorerie et produit des actions de trading pourrait en principe s'adapter à des marchés changeants plus vite qu'une règle fixe. Mais les environnements d'apprentissage par renforcement financier sont difficiles à construire parce que les données financières ont un faible rapport signal/bruit, les données historiques peuvent contenir un biais de survie, et les modèles peuvent surapprendre [1]. Ces trois problèmes, le bruit, le biais de survie et le surapprentissage, sont exactement les biais sur lesquels porte la question de recherche, et ils sont nommés comme des difficultés structurelles du domaine, non comme des défauts d'un article en particulier.

Une enquête sur le marché des cryptomonnaies identifie un manque de cohérence dans la communauté du trading DRL comme un obstacle à la recherche et au développement [5]. Cela signifie que même lorsqu'un article rapporte un résultat positif, un lecteur ne peut souvent pas dire si le gain provient de l'algorithme, du découpage des données, de l'hypothèse de coût ou de la graine aléatoire, parce que différents articles utilisent des conventions différentes. C'est la raison pratique pour laquelle la réponse directe ci-dessus ne peut pas rapporter une recette unique gagnante : les affirmations proviennent de groupes de recherche distincts utilisant des univers d'actions, des fenêtres temporelles et des modèles de coûts distincts.

Plusieurs articles critiquent explicitement cet état de fait. Les études de trading antérieures en apprentissage automatique sont critiquées pour leurs courtes périodes de backtesting, leurs petits jeux de données, leurs caractéristiques limitées, l'absence de prise en compte des coûts de transaction et, souvent, l'absence de tests de signification statistique [12]. Cette critique vise largement la littérature et constitue une liste de contrôle utile pour tout constructeur auditant un nouvel article de trading : poser des questions sur la longueur du backtest, la taille du jeu de données, l'ensemble de caractéristiques et la question de savoir si les coûts de transaction ont été modélisés.

Compte tenu de cela, le reste de cette note traite les frameworks ouverts (FinRL, FinRL-Meta) comme une infrastructure d'ingénierie à réutiliser, et traite les articles sur les algorithmes individuels (DDPG, variantes de DQN, ensembles, agents autoencoder plus LSTM) comme des points de données séparés et non comparables. La note couvre aussi la manière dont les probabilités de prévision calibrées et les exigences de pipeline de qualité professionnelle apparaissent dans les affirmations, et se termine par un plan de construction concret et un script d'évaluation exécutable.

Ce que sont réellement FinRL et FinRL-Meta

FinRL est une bibliothèque modulaire et en couches contenant des algorithmes DQN, DDPG, PPO, SAC, A2C et TD3 fine-tunés [3]. Elle fournit des fonctions de récompense couramment utilisées et des baselines d'évaluation standard pour réduire le travail de débogage et favoriser la reproductibilité [3]. En pratique, cela signifie qu'un constructeur n'a pas besoin de réimplémenter ces six algorithmes à partir de zéro ; la bibliothèque les empaquette derrière une interface commune destinée aux tâches de trading.

FinRL configure des environnements virtuels avec des jeux de données de marché boursier, entraîne des agents de trading à réseaux de neurones et analyse des backtests extensifs via la performance de trading [3]. Il intègre le coût de transaction, la liquidité du marché et le degré d'aversion au risque de l'investisseur comme contraintes de trading [3]. FinRL peut simuler des marchés à l'aide de données historiques et d'API de trading en direct à plusieurs granularités temporelles [4], et il fournit des tutoriels pas à pas pour le trading d'actions, l'allocation de portefeuille et le trading de cryptomonnaies [4]. Il réserve aussi des interfaces d'import utilisateur afin que les utilisateurs puissent étendre le framework [4], ce qui compte pour un constructeur qui veut brancher une source de données personnalisée ou une récompense personnalisée.

FinRL-Meta est une bibliothèque complémentaire centrée sur les données. C'est une bibliothèque ouvertement accessible, centrée sur les données, qui traite des jeux de données de marché réels et dynamiques en environnements de marché de style gym [1]. Elle suit un paradigme DataOps et utilise un pipeline automatique de curation de données pour fournir des centaines d'environnements de marché [1]. Une description séparée de FinRL-Meta indique qu'elle sépare le traitement des données financières du pipeline de conception des stratégies d'apprentissage par renforcement profond et fournit des outils open source d'ingénierie de données pour le big data financier [7], et qu'elle fournit des centaines d'environnements de marché pour différentes tâches de trading et prend en charge la simulation et l'entraînement multiprocessus utilisant des milliers de cœurs GPU [7]. Ensemble, ces éléments décrivent une séparation en deux bibliothèques : FinRL-Meta gère la curation des données et la construction d'environnements à l'échelle, tandis que FinRL fournit les algorithmes et contraintes spécifiques au trading.

FinRL-Meta fournit aussi des exemples reproduisant des articles de recherche populaires comme points de départ pour concevoir de nouvelles stratégies de trading [1], et elle déploie sa bibliothèque sur des plateformes cloud afin que les utilisateurs puissent visualiser les résultats et évaluer la performance relative via des compétitions communautaires [1].

Le mécanisme central : formulation MDP, DDPG et variantes de Q-learning

Le mécanisme le plus concrètement spécifié dans ces affirmations est le Markov Decision Process de trading d'actions issu de la lignée de l'article FinRL original. Le processus de trading d'actions est modélisé comme un Markov Decision Process dont l'état contient les prix des actions, les positions en actions et le solde de trésorerie restant [8]. L'ensemble d'actions comprend vendre, acheter et conserver, tandis que la récompense est la variation de la valeur du portefeuille après une action [8]. La formulation initialise les positions et les estimations de valeur d'action à zéro et initialise la politique uniformément sur les actions avant l'apprentissage par interaction avec l'environnement [8]. L'environnement met à jour la trésorerie comme b_{t+1}=b_t+p_t^T a_t et contraint les actions d'achat afin que le solde de portefeuille résultant soit non négatif [8]. La fonction de valeur d'action est mise à jour en utilisant la récompense immédiate attendue plus la valeur d'action attendue actualisée dans l'état suivant selon l'équation de Bellman [8].

Au-dessus de ce MDP, l'agent de trading DDPG décrit utilise un framework actor-critic, des target networks et l'experience replay pour modéliser de grands espaces d'état et d'action, stabiliser l'entraînement et réduire la corrélation des échantillons [8]. L'approche DDPG décrite a obtenu un rendement supérieur à la fois à l'allocation de portefeuille traditionnelle min-variance et au Dow Jones Industrial Average [8]. Il s'agit d'une seule comparaison rapportée, sur la configuration propre de l'article, contre deux baselines spécifiques ; ce n'est pas une affirmation selon laquelle DDPG bat d'autres algorithmes RL ou survit à des régimes de coûts de transaction arbitraires.

Une ligne de travail distincte utilise des méthodes basées sur la valeur plutôt que actor-critic. L'entraînement Deep Q-Network stocke les états précédents, les actions, les récompenses et les états suivants dans l'experience replay, les échantillonne aléatoirement par petits lots, et utilise un target Q-network pour estimer les récompenses futures [9]. Le target Q-network est périodiquement copié depuis le Q-network principal parce que l'utilisation de réseaux séparés augmente la stabilité de l'entraînement sur des données fortement corrélées et arrivant rapidement [9]. Double DQN traite la tendance de DQN à surestimer les valeurs Q en utilisant un autre réseau de neurones pour réduire l'influence de l'erreur d'estimation accumulée [9]. Une étude indienne de trading d'actions entraîne des agents DQN, Double DQN et Dueling Double DQN pour conserver, acheter et vendre, et les valide sur des données inédites d'une période ultérieure [9] ; cela décrit le protocole d'entraînement et de validation, mais l'ensemble d'affirmations n'inclut pas les chiffres comparatifs résultants.

Une troisième architecture combine l'apprentissage de représentation avec la modélisation de séquences : l'agent de trading décrit combine des autoencodeurs débruiteurs empilés pour l'apprentissage de représentation de marché, des réseaux long short-term memory pour la dépendance des séries temporelles financières, des actions contrôlées par position et des récompenses n-step [10]. Cet agent aurait surpassé ses baselines et atteint des rendements ajustés au risque stables à la fois sur les marchés d'actions et de futures [10], là encore comme un résultat auto-déclaré dans l'ensemble de baselines propre à cet article, et non une comparaison entre articles.

Ensembles, variance et simulation parallèle : les résultats rapportés

Les résultats quantitatifs les plus détaillés de cet ensemble d'affirmations proviennent d'une étude de trading d'actions utilisant des données OHLCV quotidiennes pour 30 actions du Dow Jones de 2020 à 2023. Dans cette étude, PPO, SAC, DDPG et un ensemble model présentaient chacun une variance élevée des rendements cumulés de test [6]. L'étude a entraîné et testé les modèles 1 010 fois en utilisant des rolling windows avec des fenêtres d'entraînement de 30 jours et de test de 55 jours [6]. Ce protocole de rolling windows constitue lui-même une réponse partielle à la question walk-forward de l'énoncé de recherche : c'est une procédure concrète et reproductible de style walk-forward, bien que limitée à l'univers d'actions et aux longueurs de fenêtre de cet article.

L'ensemble model a moyenné les probabilités d'action de trois agents et présentait un écart-type du rendement de test d'environ la moitié de celui de ses agents composants [6]. C'est un résultat direct et quantifié de réduction de variance, mais c'est une comparaison de l'ensemble par rapport à ses propres trois agents composants, pas par rapport à un marché ou à une baseline buy-and-hold. L'étude a aussi rapporté que l'entraînement des agents composants peut encore faire face à un goulot d'étranglement d'échantillonnage malgré la réduction de l'instabilité de politique par l'ensemble [6], ce qui signifie que l'ensembling gère le symptôme (la variance de sortie) sans nécessairement corriger la cause sous-jacente (l'entraînement instable par agent).

Dans des expériences de trading d'actions et de cryptomonnaies, une simulation massivement parallèle sur un GPU avec 2 048 environnements parallèles a amélioré la vitesse d'échantillonnage jusqu'à 1 746x par rapport à un seul environnement [6]. C'est un résultat d'infrastructure concernant le débit d'entraînement, pas la performance de trading, et il compte pour quiconque budgétise du calcul pour de grands balayages d'hyperparamètres. Les ensemble models dans les expériences sur actions et cryptomonnaies ont réduit le drawdown maximal jusqu'à 4,17 % et amélioré le Sharpe ratio jusqu'à 0,21 [6]. Ce sont les seuls chiffres de métrique de risque de l'ensemble d'affirmations liés à une méthode nommée (l'ensembling) et à des métriques nommées (drawdown, Sharpe ratio), et ils proviennent du même cadre expérimental que le résultat de réduction de variance ci-dessus.

Sous-jacent à tout cela, la performance des politiques RL est sensible aux hyperparamètres, aux environnements instables et aux graines aléatoires [6]. Cette sensibilité est la raison pour laquelle l'étude a exécuté 1 010 cycles d'entraînement/test plutôt qu'un seul : le chiffre de rendement d'une seule exécution ne serait pas fiable en lui-même. Un constructeur lisant un quelconque rendement rapporté dans cette littérature devrait se demander s'il a été produit sous un protocole répété de manière similaire ou à partir d'une seule graine chanceuse.

Coûts de transaction et sensibilité des comparaisons publiées

La question de recherche demande quels résultats survivent aux coûts de transaction. Un seul ensemble d'affirmations traite directement ce point en faisant varier les hypothèses de coût. Sur des jeux de données contenant 424 actions composantes du S&P 500 et 185 actions composantes du CSI 300 de 2010 à 2017, les algorithmes traditionnels d'apprentissage automatique ont mieux performé sur la plupart des indicateurs directionnels, tandis que les modèles DNN ont mieux performé lorsque les coûts de transaction étaient pris en compte [12]. Il s'agit d'une comparaison spécifique, datée, portant sur deux marchés et couvrant deux univers d'indices actions séparés ; elle ne se généralise pas aux politiques d'apprentissage par renforcement, puisque les modèles comparés sont décrits comme des algorithmes d'apprentissage automatique et des modèles DNN, non comme des agents DRL.

La performance de trading des stratégies d'apprentissage automatique évaluées était sensible aux changements des coûts de transaction [12]. La même source note que les études antérieures utilisaient souvent des backtests courts, de petits jeux de données, des caractéristiques limitées, aucun coût de transaction et aucun test de signification statistique [12]. C'est un avertissement qui s'applique largement : tout résultat de trading cité sans indication de son hypothèse de coût de transaction devrait être traité comme provisoire, parce que le classement des méthodes peut s'inverser une fois les coûts ajoutés, comme cela s'est produit entre précision directionnelle et performance ajustée aux coûts dans cette même étude.

Aucune des affirmations spécifiques au DRL de cet ensemble (DDPG contre Dow Jones et min-variance [8], les résultats de variance et de drawdown de l'ensemble [6], l'agent autoencoder-LSTM [10]) ne rapporte de comparaison contrôlée avant/après des coûts de transaction. FinRL intègre bien le coût de transaction comme l'une de ses contraintes de trading [3], donc l'infrastructure pour réaliser une telle comparaison existe, mais l'ensemble d'affirmations ne contient pas de résultat DRL publié qui isole l'effet de coût comme le fait l'étude S&P 500 / CSI 300 pour l'apprentissage automatique traditionnel.

La conclusion pratique pour un constructeur est que la sensibilité aux coûts de transaction est documentée comme un phénomène général dans les stratégies de trading en apprentissage automatique [12], et comme une contrainte modélisée à l'intérieur de FinRL [3], mais l'ensemble d'affirmations ne permet pas de dire si un chiffre de rendement DRL publié spécifique survivrait à la modification des hypothèses de coût de son propre article. Tout contrôle de ce type doit être exécuté par le constructeur, et non supposé à partir de ces articles.

Probabilités de prévision calibrées et autres intégrations de caractéristiques

La question de recherche demande comment une politique entraînée peut intégrer des probabilités de prévision calibrées comme caractéristiques d'état ou baselines de récompense. L'ensemble d'affirmations ne contient pas de méthode qui intègre explicitement des prévisions de probabilité calibrées dans un état ou une récompense DRL pour le trading. Ce qu'il contient de plus proche de cette idée est un déploiement en direct qui combine plusieurs types de signaux. Le RL Trading Agent met en œuvre un pipeline de bout en bout couvrant l'ingestion de données, l'entraînement PPO, le backtesting et le déploiement en paper trading en direct pour six actions en utilisant des données de marché en direct, l'analyse de sentiment NLP et la détection de régime de marché [14]. Cela montre des signaux de sentiment et de régime combinés à une politique PPO dans un pipeline fonctionnel, mais l'affirmation ne décrit pas ces signaux comme des probabilités calibrées, ni comme des baselines de récompense au sens d'un terme reward-shaping ; elle les décrit comme des entrées d'un déploiement de bout en bout.

Ailleurs, la définition d'état MDP utilisée dans la lignée FinRL se limite aux prix des actions, aux positions en actions et au solde de trésorerie restant [8]. C'est la représentation d'état de base à partir de laquelle un constructeur commence ; toute caractéristique de probabilité de prévision serait un ajout à ce vecteur d'état, mais aucune affirmation de cet ensemble ne précise comment un tel ajout devrait être mis à l'échelle, normalisé ou validé pour la calibration.

Comme aucune affirmation ne répond directement à la question de l'intégration de prévisions calibrées, cette note ne peut pas rapporter de résultat ici, seulement le bloc de construction disponible le plus proche : le déploiement PPO sur six actions qui ingère déjà des signaux non liés aux prix (sentiment, régime) aux côtés des données de marché [14], et la définition d'état standard prix/positions/trésorerie qu'il étendrait [8]. Un constructeur souhaitant une intégration de prévisions calibrées devrait concevoir et valider ce mécanisme lui-même ; c'est une lacune du corpus publié actuel couvert par ces affirmations, pas une recette documentée.

Cette lacune compte parce que la direct_answer ci-dessus signale déjà un manque général de cohérence dans la littérature sur le trading DRL [5] ; l'absence de recette allant de la prévision calibrée à l'état ou de la prévision calibrée à la récompense dans cet ensemble d'affirmations est un cas spécifique de cette incohérence, pas une particularité de notre recherche.

Exigences d'un pipeline de qualité professionnelle : données, API, infrastructure

La question de recherche demande aussi ce dont un pipeline de qualité professionnelle a besoin en matière de données, d'API et d'infrastructure. Plusieurs affirmations décrivent directement des éléments d'un tel pipeline. FinRL peut simuler des marchés à l'aide de données historiques et d'API de trading en direct à plusieurs granularités temporelles [4], ce qui couvre à la fois le backtesting et l'ingestion de données en direct d'un système de production. FinRL-Meta suit un paradigme DataOps et utilise un pipeline automatique de curation de données pour fournir des centaines d'environnements de marché [1], ce qui répond au volet ingénierie des données : transformer des données de marché brutes en environnements prêts à l'emploi à l'échelle.

Sur l'infrastructure de calcul, FinRL-Meta prend en charge la simulation et l'entraînement multiprocessus utilisant des milliers de cœurs GPU [7], et séparément, une simulation massivement parallèle sur un GPU avec 2 048 environnements parallèles a amélioré la vitesse d'échantillonnage jusqu'à 1 746x par rapport à un seul environnement [6]. Ces deux affirmations décrivent des échelles de parallélisme différentes (des milliers de cœurs GPU dans un cluster contre 2 048 environnements sur un GPU) et ne doivent pas être traitées comme la même recommandation d'infrastructure ; un constructeur devrait choisir l'échelle correspondant à son budget et noter de quelle affirmation elle provient.

Sur le déploiement de bout en bout, le RL Trading Agent met en œuvre un pipeline de bout en bout couvrant l'ingestion de données, l'entraînement PPO, le backtesting et le déploiement en paper trading en direct pour six actions en utilisant des données de marché en direct, l'analyse de sentiment NLP et la détection de régime de marché [14]. C'est la seule affirmation de l'ensemble qui nomme explicitement un déploiement en paper trading en direct, et elle le fait pour un univers de six actions. C'est un modèle utile pour la forme d'un pipeline de production (ingérer, entraîner, backtester, paper-trader) mais l'affirmation ne rapporte pas de chiffres de performance ni de coûts d'infrastructure pour ce déploiement.

Sur le protocole de validation, ce qui se rapproche le plus d'une spécification walk-forward est le protocole de rolling windows déjà décrit : entraîner et tester les modèles 1 010 fois en utilisant des rolling windows avec des fenêtres d'entraînement de 30 jours et de test de 55 jours [6]. C'est une recette walk-forward concrète et réutilisable, mais elle a été appliquée à 30 actions du Dow Jones sur 2020-2023 [6] et ne doit pas être supposée se transférer sans changement aux données crypto ou forex sans re-validation, puisque l'ensemble d'affirmations ne rapporte pas qu'elle a été exécutée sur ces marchés.

Limites et questions ouvertes

Aucune des affirmations ne rapporte d'expérience contrôlée qui isole l'effet du biais look-ahead ou du biais de survie sur le rendement d'une politique DRL ; la seule affirmation directe est que les données historiques peuvent contenir un biais de survie et que les modèles peuvent surapprendre, ce qui est listé comme une difficulté générale de construction d'environnements RL financiers [1]. Un constructeur ne peut pas encore citer un chiffre publié montrant combien de rendement une stratégie DRL perd une fois le biais de survie retiré.

Le résultat de sensibilité aux coûts de transaction est spécifique aux modèles traditionnels d'apprentissage automatique et aux modèles DNN sur deux univers d'indices actions de 2010 à 2017 [12] ; il n'inclut pas de politique DRL, donc il ne peut pas être utilisé pour affirmer qu'un rendement phare d'un algorithme DRL particulier survivrait ou ne survivrait pas à des coûts réalistes. Séparément, les contraintes de coût, de liquidité et d'aversion au risque de FinRL [3] montrent que le mécanisme existe pour exécuter un tel test, mais aucune affirmation de cet ensemble ne rapporte le résultat de son exécution.

L'intégration de probabilités de prévision calibrées, demandée explicitement dans la question de recherche, n'a aucune méthode directe décrite dans ces affirmations ; la preuve disponible la plus proche est un pipeline en direct qui ajoute des signaux de sentiment et de régime à un agent PPO [14], ce qui est un type de caractéristique différent d'une prévision de probabilité calibrée. Quiconque construit cette intégration va au-delà de ce qui est publié ici, et ne reproduit pas une recette documentée.

Enfin, la performance des politiques RL est sensible aux hyperparamètres, aux environnements instables et aux graines aléatoires [6], et le domaine dans son ensemble souffre d'un manque de cohérence qui entrave la recherche et le développement [5]. Ensemble, ces éléments signifient que tout chiffre rapporté individuel, y compris ceux cités tout au long de cette note, devrait être traité comme conditionnel à sa fenêtre de backtest, à sa graine et à son modèle de coût exacts, et re-validé avant d'être utilisé pour un nouveau marché ou une nouvelle période.

Comment le construire, ou comment l'utiliser

  1. Choisir la couche de framework. Utiliser FinRL-Meta pour la curation des données et la construction d'environnements, puisqu'elle suit un paradigme DataOps avec un pipeline automatique de curation de données et fournit des centaines d'environnements de marché [1], et utiliser FinRL pour les algorithmes, les fonctions de récompense et les contraintes ajoutés par-dessus [3]. Garder ces deux préoccupations séparées dans votre base de code, en reflétant la séparation que FinRL-Meta fait elle-même entre traitement des données et conception de stratégie [7].
  2. Choisir un algorithme dans l'ensemble pris en charge. FinRL propose DQN, DDPG, PPO, SAC, A2C et TD3 fine-tunés [3]. Commencer par celui dont la formulation de trading publiée peut être reproduite de bout en bout ; DDPG a le MDP et la règle de mise à jour les plus complètement spécifiés dans cet ensemble d'affirmations [8].
  3. Définir l'état, l'action et la récompense exactement comme spécifié. Construire l'état comme les prix des actions, les positions en actions et le solde de trésorerie restant [8] ; construire les actions comme vendre, acheter, conserver [8] ; définir la récompense comme la variation de la valeur du portefeuille après une action [8]. Initialiser les positions et les estimations de valeur d'action à zéro et la politique uniformément sur les actions [8].
  4. Implémenter la contrainte de trésorerie et de solde. Mettre à jour la trésorerie avec b_{t+1}=b_t+p_t^T a_t et rejeter ou écrêter les actions d'achat qui rendraient le solde résultant négatif [8]. Cette contrainte fait partie de l'environnement, pas de l'agent, donc la tester indépendamment avec des transactions synthétiques avant l'entraînement.
  5. Ajouter les frictions de trading. Configurer le coût de transaction, la liquidité du marché et l'aversion au risque comme des contraintes d'environnement à la manière de FinRL [3], et faire varier délibérément le paramètre de coût de transaction, puisque la sensibilité aux coûts s'est révélée inverser les classements entre types de modèles dans au moins une étude [12].
  6. Si vous utilisez un agent basé sur la valeur, ajoutez l'experience replay et un target network. Stocker les transitions et échantillonner aléatoirement des mini-lots, et utiliser un target Q-network séparé mis à jour périodiquement depuis le réseau principal pour la stabilité [9]. Si une surestimation est suspectée, passer à Double DQN, qui utilise un second réseau pour réduire l'erreur d'estimation accumulée [9].
  7. Si vous utilisez DDPG, ajoutez la machinerie actor-critic et target-network. Utiliser un framework actor-critic avec des target networks et l'experience replay pour gérer de grands espaces d'état/action, stabiliser l'entraînement et réduire la corrélation des échantillons [8].
  8. Entraîner avec un protocole walk-forward, pas un seul découpage. Utiliser des rolling windows, par exemple des fenêtres d'entraînement de 30 jours et de test de 55 jours répétées de nombreuses fois (l'étude de référence a utilisé 1 010 répétitions) [6], plutôt qu'un seul découpage entraînement/test, parce que la performance RL est sensible aux graines et à l'instabilité de l'environnement [6].
  9. Réduire la variance avec un ensemble. Entraîner plusieurs agents (par exemple PPO, SAC, DDPG) et moyenner leurs probabilités d'action ; cela a réduit l'écart-type du rendement de test à environ la moitié de celui des agents composants dans une étude rapportée [6], et a réduit le drawdown maximal jusqu'à 4,17 % et amélioré le Sharpe ratio jusqu'à 0,21 dans des expériences sur actions et crypto [6]. Se rappeler que les agents sous-jacents peuvent encore faire face à un goulot d'étranglement d'échantillonnage même après l'ensembling [6].
  10. Passer à l'échelle l'entraînement avec la simulation parallèle si vous avez besoin de nombreuses graines ou d'un grand balayage. Une simulation massivement parallèle avec 2 048 environnements sur un GPU a amélioré la vitesse d'échantillonnage jusqu'à 1 746x par rapport à un seul environnement dans un cadre rapporté [6] ; FinRL-Meta prend en charge séparément le multiprocessus sur des milliers de cœurs GPU [7]. Choisir l'échelle qui correspond à votre budget de calcul et mesurer votre propre accélération plutôt que de supposer que ces chiffres se transfèrent.
  11. Backtester contre des baselines nommées, pas seulement contre vos propres exécutions passées. Comparer à l'allocation de portefeuille traditionnelle min-variance et à un indice de marché tel que le Dow Jones Industrial Average, les deux baselines utilisées dans une étude DDPG [8], et rapporter à la fois le rendement brut et un résumé variance/drawdown/Sharpe à la manière de l'étude sur l'ensemble [6].
  12. Passer au paper trading seulement après que les vérifications ci-dessus réussissent. Utiliser des API de trading en direct à la granularité sur laquelle vous avez entraîné [4], et structurer le déploiement comme ingestion, entraînement, backtesting, puis paper trading en direct, la forme utilisée dans un déploiement fonctionnel sur six actions qui ajoute aussi des signaux de sentiment et de régime [14].

Code : une implémentation fonctionnelle

Le script ci-dessous implémente, sur le schéma SQLite propre à la note, les deux mécanismes qui sont entièrement spécifiés dans les affirmations et qu'un constructeur peut reproduire de bout en bout : (1) l'environnement de trading mono-action basé sur MDP avec un état prix/positions/trésorerie, des actions acheter/vendre/conserver, une récompense de variation de valeur du portefeuille et une contrainte d'achat à solde non négatif [8] ; et (2) un petit ensemble d'agents Q-learning tabulaires à graines indépendantes dont les probabilités d'action sont moyennées, en suivant l'idée d'ensembling utilisée pour réduire la variance du rendement de test [6]. La docstring de chaque fonction indique quelle affirmation elle implémente. Les entrées sont lues dans la table `bars` pour un symbole et une unité de temps ; si `data.sqlite` (ou `QOURAT_DB`) ne contient aucune ligne correspondante, des données de prix quotidiennes synthétiques sont générées afin que le script s'exécute toujours. Les sorties sont imprimées : le rendement cumulé et l'écart-type du rendement pour chaque agent individuel, pour l'ensemble et pour une baseline buy-and-hold (la baseline de style indice de marché utilisée dans [8]) ; plus une boucle walk-forward sur des rolling windows suivant l'idée de fenêtre entraînement/test de [6]. Dans l'exécution avec 600 barres réelles pour AAPL 1d issues de la table bars imprimée ci-dessous, l'écart-type du rendement de l'ensemble (0,016267) est supérieur à l'écart-type de l'agent individuel (0,014445), et le rendement de la baseline buy-and-hold (0,075819) dépasse le rendement de l'ensemble (0,021929) ; cela ne reproduit pas la direction rapportée dans [6], qui montrait une réduction de variance par l'ensemble et une amélioration de la performance ajustée au risque dans une étude beaucoup plus grande avec des agents à réseaux de neurones, 1 010 cycles entraînement/test et 30 actions du Dow Jones. L'exécution entière utilise un petit nombre d'épisodes et de fenêtres afin qu'elle se termine sur un CPU en bien moins de trois minutes.

import os
import sqlite3
import math
import random
import numpy as np
import pandas as pd

DB_PATH = os.environ.get("QOURAT_DB", "data.sqlite")
SYMBOL = "AAPL"
TF = "1d"
RNG_SEED = 0


def load_bars(db_path, symbol, tf):
    """Read daily bars for one symbol/timeframe from the bars table.
    Input: sqlite file path, symbol string, timeframe string.
    Output: pandas DataFrame sorted by ts with a 'close' column.
    If no rows are found, generate a synthetic random-walk price series
    so the script can still run end to end without network access.
    """
    closes = None
    if os.path.exists(db_path):
        try:
            con = sqlite3.connect(db_path)
            q = "SELECT ts, close FROM bars WHERE symbol=? AND tf=? ORDER BY ts"
            df = pd.read_sql_query(q, con, params=(symbol, tf))
            con.close()
            if len(df) >= 120:
                closes = df["close"].astype(float).values
        except Exception:
            closes = None
    if closes is None:
        rng = np.random.default_rng(RNG_SEED)
        n = 400
        rets = rng.normal(loc=0.0003, scale=0.012, size=n)
        price = 100.0 * np.cumprod(1.0 + rets)
        closes = price
    return closes


class TradingEnv:
    """Single-stock trading environment.
    Implements [8]: state is price, holdings, cash.
    Implements [8]: actions are sell/buy/hold, reward is change in
    portfolio value after an action.
    Implements [8]: holdings and action-value estimates start at zero.
    Implements [8]: cash update b_{t+1} = b_t + p_t^T a_t, and buying
    is only allowed if the resulting balance stays non-negative.
    """

    def __init__(self, prices, initial_cash=10000.0, trade_size=10):
        self.prices = prices
        self.n_steps = len(prices) - 1
        self.initial_cash = initial_cash
        self.trade_size = trade_size
        self.reset()

    def reset(self):
        self.t = 0
        self.cash = self.initial_cash
        self.holdings = 0.0
        self.prev_value = self._portfolio_value()
        return self._state()

    def _portfolio_value(self):
        return self.cash + self.holdings * self.prices[self.t]

    def _state(self):
        return np.array([self.prices[self.t], self.holdings, self.cash])

    def step(self, action):
        price = self.prices[self.t]
        if action == 2:
            cost = price * self.trade_size
            if self.cash - cost >= 0:
                self.cash -= cost
                self.holdings += self.trade_size
        elif action == 0:
            if self.holdings >= self.trade_size:
                self.cash += price * self.trade_size
                self.holdings -= self.trade_size
        self.t += 1
        new_value = self._portfolio_value()
        reward = new_value - self.prev_value
        self.prev_value = new_value
        done = self.t >= self.n_steps
        return self._state(), reward, done


def discretize_state(state, prices):
    """Turn the continuous state into a small discrete bucket so a tabular
    Q-table can be used. Buckets: holdings sign (none/some). This is an
    implementation choice needed to make a tabular Q-learner run in under
    three minutes on a CPU; the state variables themselves (price, holdings,
    cash) follow [8].
    """
    price, holdings, cash = state
    holdings_bucket = 1 if holdings > 0 else 0
    return holdings_bucket


class QLearningAgent:
    """A simple tabular Q-learning agent used as one ensemble member.
    Implements the action-value Bellman update from [8]:
    Q(s,a) is updated using the temporal-difference learning rule.
    Implements [8]: action-value estimates start at zero.
    """

    def __init__(self, n_states=2, n_actions=3, alpha=0.1, gamma=0.95, epsilon=0.2, seed=None):
        self.n_states = n_states
        self.n_actions = n_actions
        self.alpha = alpha
        self.gamma = gamma
        self.epsilon = epsilon
        self.rng = np.random.default_rng(seed)
        self.q_table = np.zeros((n_states, n_actions))

    def get_action(self, state, explore=True):
        if explore and self.rng.random()  len(prices):
            break

        train_prices = prices[start:train_end]
        test_prices = prices[train_end:test_end]

        train_env = TradingEnv(train_prices)
        test_env = TradingEnv(test_prices)

        agents = []
        for i in range(n_ensemble):
            agent = QLearningAgent(seed=RNG_SEED + w * 10 + i)
            train_agent(agent, train_env, n_episodes=n_episodes)
            agents.append(agent)

        for agent in agents:
            ret = evaluate_agent(agent, TradingEnv(test_prices))
            single_returns.append(ret)

        ens_ret = evaluate_ensemble(agents, TradingEnv(test_prices))
        ensemble_returns.append(ens_ret)

        bh_ret = buy_and_hold_baseline(test_prices)
        baseline_returns.append(bh_ret)

    return single_returns, ensemble_returns, baseline_returns


if __name__ == "__main__":
    prices = load_bars(DB_PATH, SYMBOL, TF)
    print(f"Loaded {len(prices)} bars for {SYMBOL} {TF}")

    single_returns, ensemble_returns, baseline_returns = walk_forward_validation(
        prices, n_windows=3, train_size=100, test_size=50, n_ensemble=3, n_episodes=50
    )

    if len(single_returns) > 0 and len(ensemble_returns) > 0 and len(baseline_returns) > 0:
        single_mean = np.mean(single_returns)
        single_std = np.std(single_returns)
        ensemble_mean = np.mean(ensemble_returns)
        ensemble_std = np.std(ensemble_returns)
        baseline_mean = np.mean(baseline_returns)
        baseline_std = np.std(baseline_returns)

        print("\nSingle agents:")
        print(f"  Cumulative return (mean): {single_mean:.6f}")
        print(f"  Return std deviation: {single_std:.6f}")
        print("\nEnsemble:")
        print(f"  Cumulative return (mean): {ensemble_mean:.6f}")
        print(f"  Return std deviation: {ensemble_std:.6f}")
        print("\nBuy-and-hold baseline:")
        print(f"  Cumulative return (mean): {baseline_mean:.6f}")
        print(f"  Return std deviation: {baseline_std:.6f}")
    else:
        print("Not enough data for walk-forward validation.")

Ce que nous construirions

Nous construirions un harnais d'évaluation walk-forward au-dessus de FinRL, limité à une classe d'actifs (actions américaines) et à un modèle de coût, pour tester si l'ensembling de trois agents FinRL (PPO, SAC, DDPG) réduit la variance du rendement de test et améliore le Sharpe ratio et le drawdown par rapport à chaque agent individuel et par rapport au buy-and-hold, en suivant le protocole d'ensembling et de rolling windows décrit dans [6]. En deux semaines, la personne un connecterait le pipeline de curation de données de FinRL-Meta [1] à un univers fixe de 30 actions américaines liquides et implémenterait la boucle de fenêtres glissantes entraînement 30 jours / test 55 jours [6] ; la personne deux configurerait les contraintes de coût de transaction, de liquidité et d'aversion au risque de FinRL [3] et les trois algorithmes [3], puis construirait l'ensemble avec moyennage des probabilités d'action [6].

Nous jugerions le projet sur trois chiffres, chacun par rapport à une baseline nommée : le rendement cumulé et son écart-type entre les fenêtres pour l'ensemble par rapport à chaque agent individuel (chiffres à battre : l'écart-type propre des agents individuels, en suivant la réduction de variance rapportée d'environ deux pour un dans [6]) ; le drawdown maximal et le Sharpe ratio pour l'ensemble par rapport à chaque agent individuel (chiffres à battre : les valeurs par agent, en suivant la réduction de drawdown rapportée jusqu'à 4,17 % et l'amélioration du Sharpe ratio jusqu'à 0,21 dans [6]) ; et le rendement cumulé par rapport à une baseline buy-and-hold simple sur le même univers et la même fenêtre, en suivant la comparaison à une baseline d'indice de marché dans [8].

Coût : cela nécessite une machine équipée d'un GPU pendant quelques jours d'entraînement sur toutes les fenêtres et tous les agents, bien dans un budget d'un seul GPU étant donné que 2 048 environnements parallèles ont été rapportés comme fonctionnant sur un GPU dans des travaux liés [6] ; aucun compte de courtage en direct n'est requis puisque le projet reste au backtesting, pas au paper trading.

Registre des affirmations

  1. factétayée

    FinRL-Meta is an openly accessible, data-centric library that processes dynamic real-world market datasets into gym-style market environments.

    [1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174
    “The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
  2. methodétayée

    FinRL-Meta follows a DataOps paradigm and uses an automatic data-curation pipeline to provide hundreds of market environments.

    [1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174
    “The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
  3. limitationétayée

    Financial reinforcement learning environments are difficult to build because financial data have a low signal-to-noise ratio and historical data can contain survivorship bias, while models can overfit.

    [1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174
    “The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
  4. methodétayée

    FinRL-Meta provides examples reproducing popular research papers as starting points for designing new trading strategies.

    [1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174
    “The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
  5. methodétayée

    FinRL-Meta deploys its library on cloud platforms so users can visualize results and assess relative performance through community-wise competitions.

    [1] Dynamic Datasets and Market Environments for Financial Reinforcement Learning, abstract DOI 10.48550/arxiv.2304.13174
    “The financial market is a particularly challenging playground for deep reinforcement learning due to its unique feature of dynamic datasets. Building high-quality market environments for training financial reinforcement learning (FinRL) agents is difficult due to major factors su…”
  6. factrejetée

    FinRL supports stock-market simulations at multiple time granularities for NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300.

    [3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance
    “FinRL is featured with completeness, hands-on tutorial and reproducibility that favors beginners: (i) at multiple levels of time granularity, FinRL simulates trading environments across various stock markets, including NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300; (ii) org…”
  7. methodétayée avec réserves

    FinRL uses a layered, modular architecture containing fine-tuned DQN, DDPG, PPO, SAC, A2C, and TD3 algorithms.

    [3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative FinancePassage states 'FinRL provides fine-tuned state-of-the-art DRL algorithms (DQN, DDPG, PPO, SAC, A2C, TD3, etc.),' using 'etc.' indicating more than listed; claim drops this qualifier.
    “FinRL is featured with completeness, hands-on tutorial and reproducibility that favors beginners: (i) at multiple levels of time granularity, FinRL simulates trading environments across various stock markets, including NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300; (ii) org…”
  8. methodétayée

    FinRL provides commonly-used reward functions and standard evaluation baselines to reduce debugging work and promote reproducibility.

    [3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance
    “FinRL is featured with completeness, hands-on tutorial and reproducibility that favors beginners: (i) at multiple levels of time granularity, FinRL simulates trading environments across various stock markets, including NASDAQ-100, DJIA, S&P 500, HSI, SSE 50, and CSI 300; (ii) org…”
  9. methodétayée

    FinRL configures virtual environments with stock-market datasets, trains neural-network trading agents, and analyzes extensive backtests through trading performance.

    [3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance
    “As deep reinforcement learning (DRL) has been recognized as an effective approach in quantitative finance, getting hands-on experiences is attractive to beginners. However, to train a practical DRL trading agent that decides where to trade, at what price, and what quantity involv…”
  10. methodétayée

    FinRL incorporates transaction cost, market liquidity, and the investor's degree of risk-aversion as trading constraints.

    [3] FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance, section FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance
    “As deep reinforcement learning (DRL) has been recognized as an effective approach in quantitative finance, getting hands-on experiences is attractive to beginners. However, to train a practical DRL trading agent that decides where to trade, at what price, and what quantity involv…”
  11. factétayée

    FinRL can simulate markets using historical data and live trading APIs at multiple time granularities.

    [4] FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance, section FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance
    “Embodied as a three-layer architecture with modular structures, FinRL implements fine-tuned state-of-the-art DRL algorithms and common reward functions, while alleviating the debugging workloads. Thus, we help users pipeline the strategy design at a high turnover rate. At multipl…”
  12. factétayée

    FinRL provides step-by-step tutorials for stock trading, portfolio allocation, and cryptocurrency trading.

    [4] FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance, section FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance
    “Embodied as a three-layer architecture with modular structures, FinRL implements fine-tuned state-of-the-art DRL algorithms and common reward functions, while alleviating the debugging workloads. Thus, we help users pipeline the strategy design at a high turnover rate. At multipl…”
  13. methodétayée

    FinRL reserves user-import interfaces so that users can extend the framework.

    [4] FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance, section FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance
    “Embodied as a three-layer architecture with modular structures, FinRL implements fine-tuned state-of-the-art DRL algorithms and common reward functions, while alleviating the debugging workloads. Thus, we help users pipeline the strategy design at a high turnover rate. At multipl…”
  14. limitationétayée

    In a stock-trading study using daily OHLCV data for 30 Dow Jones stocks from 2020–2023, PPO, SAC, DDPG, and an ensemble model each exhibited high variance in cumulative testing returns.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction
    “An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO)  (John et al., 2017), Soft Actor-Critic (SAC)  (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG)  (Lillicrap et al., 2016), and an ens…”
  15. methodétayée

    The stock-trading study trained and tested models 1,010 times using rolling windows with 30-day training and 55-day testing windows.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction
    “An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO)  (John et al., 2017), Soft Actor-Critic (SAC)  (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG)  (Lillicrap et al., 2016), and an ens…”
  16. resultétayée

    In the stock-trading study, the ensemble model averaged the action probabilities of three agents and had a testing-return standard deviation of approximately half that of its component agents.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction
    “An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO)  (John et al., 2017), Soft Actor-Critic (SAC)  (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG)  (Lillicrap et al., 2016), and an ens…”
  17. uncertaintyétayée

    The stock-trading study reported that component-agent training may still face a sampling bottleneck despite the ensemble's reduction of policy instability.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction
    “An empirical study is conducted to show policy instability. In the stock trading task, we use Proximal Policy Optimization (PPO)  (John et al., 2017), Soft Actor-Critic (SAC)  (Haarnoja et al., 2018), Deep Deterministic Policy Gradient (DDPG)  (Lillicrap et al., 2016), and an ens…”
  18. resultétayée

    In stock and cryptocurrency trading experiments, massively parallel simulation on one GPU with 2,048 parallel environments improved sampling speed by up to 1,746× relative to a single environment.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, abstract arXiv:2501.10709v1
    “Reinforcement learning has demonstrated great potential for performing financial tasks. However, it faces two major challenges: policy instability and sampling bottlenecks. In this paper, we revisit ensemble methods with massively parallel simulations on graphics processing units…”
  19. resultétayée

    The ensemble models in the stock and cryptocurrency experiments reduced maximum drawdown by up to 4.17% and improved the Sharpe ratio by up to 0.21.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, abstract arXiv:2501.10709v1
    “Reinforcement learning has demonstrated great potential for performing financial tasks. However, it faces two major challenges: policy instability and sampling bottlenecks. In this paper, we revisit ensemble methods with massively parallel simulations on graphics processing units…”
  20. limitationétayée

    RL policy performance is sensitive to hyperparameters, unstable environments, and random seeds.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction
    “However, two major challenges are encountered: policy instability and the sampling bottleneck. The challenge of policy instability significantly impacts agents’ performance and reliability in RL  (Chan et al., 2020). Policy instability for many algorithms can come from value func…”
  21. limitationétayée

    A cryptocurrency-market survey identifies a lack of consistency in the DRL trading community as an impediment to research and development.

    [5] Deep Reinforcement Learning for Trading—A Critical Survey, abstract DOI 10.3390/data6110119
    “Deep reinforcement learning (DRL) has achieved significant results in many machine learning (ML) benchmarks. In this short survey, we provide an overview of DRL applied to trading on financial markets with the purpose of unravelling common structures used in the trading community…”
  22. factétayée

    Financial reinforcement learning (FinRL) applies reinforcement learning to financial tasks including algorithmic trading, portfolio management, and option pricing.

    [6] Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024, section 1. Introduction
    “Advancements in reinforcement learning (RL) have led to significant breakthroughs across various domains, notably in finance, where decision-making is crucial  (Hambly et al., 2023). Financial reinforcement learning (FinRL)  (Liu et al., 2020; Liu et al., 2022b) focuses on applyi…”
  23. methodétayée

    FinRL-Meta separates financial data processing from the design pipeline for deep reinforcement learning strategies and provides open-source data-engineering tools for financial big data.

    [7] FinRL-Meta: A Universe of Near-Real Market Environments for Data-Driven Deep Reinforcement Learning in Quantitative Finance, abstract DOI 10.48550/arxiv.2112.06753
    “Deep reinforcement learning (DRL) has shown huge potentials in building financial market simulators recently. However, due to the highly complex and dynamic nature of real-world markets, raw historical financial data often involve large noise and may not reflect the future of mar…”
  24. methodétayée

    FinRL-Meta provides hundreds of market environments for different trading tasks and supports multiprocessing simulation and training using thousands of GPU cores.

    [7] FinRL-Meta: A Universe of Near-Real Market Environments for Data-Driven Deep Reinforcement Learning in Quantitative Finance, abstract DOI 10.48550/arxiv.2112.06753
    “Deep reinforcement learning (DRL) has shown huge potentials in building financial market simulators recently. However, due to the highly complex and dynamic nature of real-world markets, raw historical financial data often involve large noise and may not reflect the future of mar…”
  25. methodétayée

    The stock-trading process is modeled as a Markov Decision Process whose state contains stock prices, stock holdings, and remaining cash balance.

    [8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading
    “Considering the stochastic and interactive nature of the trading market, we model the stock trading process as a Markov Decision Process (MDP) as shown in Fig. 1, which is specified as follows: • State s=[p,h,b]s=[p,h,b]: a set that includes the information of the prices of stock…”
  26. factétayée

    The stock-trading action set includes selling, buying, and holding, while the reward is the change in portfolio value after an action.

    [8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading
    “Considering the stochastic and interactive nature of the trading market, we model the stock trading process as a Markov Decision Process (MDP) as shown in Fig. 1, which is specified as follows: • State s=[p,h,b]s=[p,h,b]: a set that includes the information of the prices of stock…”
  27. methodétayée

    The stock-trading formulation initializes holdings and action-value estimates to zero and initializes the policy uniformly across actions before learning through environmental interaction.

    [8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading
    “Figure 1: One starting portfolio value with three actions leading to three possible portfolio values where actions have probabilities that sum up to one. Note that "hold" can lead to different portfolio values if the stock prices change. Before being exposed to the environment, p…”
  28. methodétayée

    The action-value function is updated using the expected immediate reward plus the discounted expected action value in the next state according to the Bellman equation.

    [8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading
    “Figure 1: One starting portfolio value with three actions leading to three possible portfolio values where actions have probabilities that sum up to one. Note that "hold" can lead to different portfolio values if the stock prices change. Before being exposed to the environment, p…”
  29. methodétayée

    The stock environment updates cash as b_{t+1}=b_t+p_t^T a_t and constrains buying actions so that the resulting portfolio balance is non-negative.

    [8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 2.1 Problem Formulation for Stock Trading
    “Selling: kk (k∈[1,h⁡[d]]k\in[1,h[d]], where d=1,…,Dd=1,...,D) shares can be sold from the current holdings, where kk must be an integer. In this case, ht+1=ht−kh_{t+1}=h_{t}-k. • Holding: k=0k=0 and it leads to no change in hth_{t}. • Buying: kk shares can be bought and it leads …”
  30. methodétayée

    The described DDPG trading agent uses an actor-critic framework, target networks, and experience replay to model large state and action spaces, stabilize training, and reduce sample correlation.

    [8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 1 Introduction
    “Motivated by the above challenges, we explore a deep reinforcement learning algorithm, namely Deep Deterministic Policy Gradient (DDPG) [9], to find the best trading strategy in the complex and dynamic stock market. This algorithm consists of three key components: (i) actor-criti…”
  31. resultétayée

    The described DDPG approach achieved higher return than both traditional min-variance portfolio allocation and the Dow Jones Industrial Average.

    [8] Practical Deep Reinforcement Learning Approach for Stock Trading, section 1 Introduction
    “Motivated by the above challenges, we explore a deep reinforcement learning algorithm, namely Deep Deterministic Policy Gradient (DDPG) [9], to find the best trading strategy in the complex and dynamic stock market. This algorithm consists of three key components: (i) actor-criti…”
  32. methodétayée

    Deep Q-Network training stores previous states, actions, rewards, and next states in experience replay, samples them randomly in small batches, and uses a target Q-network to estimate future rewards.

    [9] Application of deep reinforcement learning for Indian stock trading automation, section 2.1 Deep Q-Network
    “Deep Q-Network is a classical and outstanding algorithm of Deep Reinforcement Learning and it’s model architecture is shown in Figure 1. It is a model-free reinforcement learning that can deal with sequential decision tasks. The goal of the learning is to learn an optimal policy …”
  33. methodétayée

    In DQN, the target Q-network is periodically copied from the main Q-network because using separate networks increases training stability under highly correlated and rapidly arriving data.

    [9] Application of deep reinforcement learning for Indian stock trading automation, section 2.1 Deep Q-Network
    “where, Qt​a​r​g​e​tQ_{target} is the target Q value obtained using the Bellman Equation and θ\theta denotes the parameters of the Q-Network. In DQN there are two Q-Networks: main Q-Network and target Q-Network. The target Q-Network is different from the main Q-Network which is be…”
  34. methodétayée

    Double DQN addresses DQN's tendency to overestimate Q-values by using another neural network to reduce the influence of accumulated estimation error.

    [9] Application of deep reinforcement learning for Indian stock trading automation, section 2.1 Deep Q-Network
    “where, Qt​a​r​g​e​tQ_{target} is the target Q value obtained using the Bellman Equation and θ\theta denotes the parameters of the Q-Network. In DQN there are two Q-Networks: main Q-Network and target Q-Network. The target Q-Network is different from the main Q-Network which is be…”
  35. methodétayée

    The Indian stock-trading study trains DQN, Double DQN, and Dueling Double DQN agents for holding, buying, and selling and validates them on unseen data from a later period.

    [9] Application of deep reinforcement learning for Indian stock trading automation, section 1 Introduction
    “In the present paper Deep Reinforcement Learning is applied to Indian stock market on ten randomly selected datsets to automate the stock trading and to maximize the profit. Model is trained with historical stock data to predict the stock trading strategy by using Deep Q-Network …”
  36. methodétayée

    The described trading agent combines stacked denoising autoencoders for market representation learning, long short-term memory networks for financial time-series dependence, position-controlled actions, and n-step rewards.

    [10] Deep Robust Reinforcement Learning for Practical Algorithmic Trading, abstract DOI 10.1109/access.2019.2932789
    “In algorithmic trading, feature extraction and trading strategy design are two prominent challenges to acquire long-term profits. However, the previously proposed methods rely heavily on domain knowledge to extract handcrafted features and lack an effective way to dynamically adj…”
  37. resultétayée

    The described deep reinforcement learning trading agent reportedly outperformed its baselines and achieved stable risk-adjusted returns in both stock and futures markets.

    [10] Deep Robust Reinforcement Learning for Practical Algorithmic Trading, abstract DOI 10.1109/access.2019.2932789
    “In algorithmic trading, feature extraction and trading strategy design are two prominent challenges to acquire long-term profits. However, the previously proposed methods rely heavily on domain knowledge to extract handcrafted features and lack an effective way to dynamically adj…”
  38. limitationétayée avec réserves

    Trading performance in the evaluated machine-learning strategies was sensitive to changes in transaction costs, and the passage notes that earlier studies often used short backtests, small datasets, limited features, no transaction costs, and no statistical significance tests.

    [12] An Empirical Study of Machine Learning Algorithms for Stock Daily Trading Strategy, abstract DOI 10.1155/2019/7816154Passage states 'trading performance of all ML algorithms is sensitive to the changes of transaction cost' and criticizes earlier studies for 'short backtesting period' and 'no consideration of transaction cost,' but does not explicitly state 'no statistical significance tests' was a flaw of earlier studies—only that their own results lacked it.
    “According to the forecast of stock price trends, investors trade stocks. In recent years, many researchers focus on adopting machine learning (ML) algorithms to predict stock price trends. However, their studies were carried out on small stock datasets with limited features, shor…”
  39. resultétayée

    On datasets containing 424 S&P 500 component stocks and 185 CSI 300 component stocks from 2010 to 2017, traditional machine-learning algorithms performed better on most directional indicators, while DNN models performed better when transaction costs were considered.

    [12] An Empirical Study of Machine Learning Algorithms for Stock Daily Trading Strategy, abstract DOI 10.1155/2019/7816154
    “According to the forecast of stock price trends, investors trade stocks. In recent years, many researchers focus on adopting machine learning (ML) algorithms to predict stock price trends. However, their studies were carried out on small stock datasets with limited features, shor…”
  40. methodétayée

    The RL Trading Agent implements an end-to-end pipeline covering data ingestion, PPO training, backtesting, and live paper-trading deployment for six stocks using live market data, NLP sentiment analysis, and market-regime detection.

    [14] Connor-Appleton/RL-Trading-Agent (Reinforcement learning stock trading agent built with PPO, FinBERT sentiment analysis, and live Alpaca paper trading dep), readme lines L1-L16 @ 1b609c66a4f2
    “# RL Trading Agent A reinforcement learning stock trading agent built from scratch using Proximal Policy Optimization (PPO). The agent learns to manage a portfolio of 6 stocks using live market data, NLP sentiment analysis, and market regime detection — deployed to a live paper …”

Sources

  1. [1]
    Xiao-Yang Liu, Ziyi Xia, Hongyang Yang, Jiechao Gao, Daochen Zha, Ming Fang Zhu. Dynamic Datasets and Market Environments for Financial Reinforcement Learning. arXiv (Cornell University), 2023.openalex · primary · DOI 10.48550/arxiv.2304.13174 · https://doi.org/10.48550/arxiv.2304.13174
  2. [2]
    Xiao-Yang Liu, Ziyi Xia, Jingyang Rui, Jiechao Gao, Hongyang Yang, Ming Fang Zhu. FinRL-Meta: Market Environments and Benchmarks for Data-Driven Financial Reinforcement Learning. RePEc: Research Papers in Economics, 2022.openalex · primary · DOI 10.48550/arxiv.2211.03107 · https://doi.org/10.48550/arxiv.2211.03107
  3. [3]
    Xiao-Yang Liu, Hongyang Yang, Qian Chen, Runjia Zhang, Liuqing Yang, Bowen Xiao, Christina Dan Wang. FinRL: A Deep Reinforcement Learning Library for Automated Stock Trading in Quantitative Finance. arXiv, 2020.arxiv · primary · https://arxiv.org/abs/2011.09607v2
  4. [4]
    Xiao-Yang Liu, Hongyang Yang, Jiechao Gao, Christina Dan Wang. FinRL: Deep Reinforcement Learning Framework to Automate Trading in Quantitative Finance. arXiv, 2021.arxiv · primary · https://arxiv.org/abs/2111.09395v1
  5. [5]
    Adrian Millea. Deep Reinforcement Learning for Trading—A Critical Survey. Data, 2021.openalex · primary · DOI 10.3390/data6110119 · https://doi.org/10.3390/data6110119
  6. [6]
    Nikolaus Holzer, Keyi Wang, Kairong Xiao, Xiao-Yang Liu Yanglet. Revisiting Ensemble Methods for Stock Trading and Crypto Trading Tasks at ACM ICAIF FinRL Contest 2023-2024. arXiv, 2025.arxiv · primary · https://arxiv.org/abs/2501.10709v1
  7. [7]
    Xiaoyang Liu, Jingyang Rui, Jiechao Gao, Liuqing Yang, Hongyang Yang, Zhaoran Wang. FinRL-Meta: A Universe of Near-Real Market Environments for Data-Driven Deep Reinforcement Learning in Quantitative Finance. RePEc: Research Papers in Economics, 2021.openalex · primary · DOI 10.48550/arxiv.2112.06753 · https://doi.org/10.48550/arxiv.2112.06753
  8. [8]
    Xiao-Yang Liu, Zhuoran Xiong, Shan Zhong, Hongyang Yang, Anwar Walid. Practical Deep Reinforcement Learning Approach for Stock Trading. arXiv, 2018.arxiv · primary · https://arxiv.org/abs/1811.07522v3
  9. [9]
    Supriya Bajpai. Application of deep reinforcement learning for Indian stock trading automation. arXiv, 2021.arxiv · primary · https://arxiv.org/abs/2106.16088v1
  10. [10]
    Yang Li, Wanshan Zheng, Zibin Zheng. Deep Robust Reinforcement Learning for Practical Algorithmic Trading. IEEE Access, 2019.openalex · primary · DOI 10.1109/access.2019.2932789 · https://doi.org/10.1109/access.2019.2932789
  11. [11]
    Santosh Kumar Sahu, Anil Mokhade, Neeraj Dhanraj Bokde. An Overview of Machine Learning, Deep Learning, and Reinforcement Learning-Based Techniques in Quantitative Finance: Recent Progress and Challenges. Applied Sciences, 2023.openalex · primary · DOI 10.3390/app13031956 · https://doi.org/10.3390/app13031956
  12. [12]
    Dongdong Lv, Shuhan Yuan, Meizi Li, Yang Xiang. An Empirical Study of Machine Learning Algorithms for Stock Daily Trading Strategy. Mathematical Problems in Engineering, 2019.openalex · primary · DOI 10.1155/2019/7816154 · https://doi.org/10.1155/2019/7816154
  13. [13]
    Nicole Hui Lin Kan, Qi Ping Cao, Chai Hiok Quek. Learning and processing framework using Fuzzy Deep Neural Network for trading and portfolio rebalancing. Applied Soft Computing, 2024.openalex · primary · DOI 10.1016/j.asoc.2024.111233 · https://doi.org/10.1016/j.asoc.2024.111233
  14. [14]
    Connor-Appleton. Connor-Appleton/RL-Trading-Agent (Reinforcement learning stock trading agent built with PPO, FinBERT sentiment analysis, and live Alpaca paper trading dep). GitHub, 2026.github · secondary · https://github.com/Connor-Appleton/RL-Trading-Agent
  15. [15]
    finrl.readthedocs.io. Welcome to FinRL Library! — FinRL 0.3.1 documentation.docs · secondary · https://finrl.readthedocs.io/en/latest/
  16. [16]
    Deep Pandey, Qi Yu. Learn to Accumulate Evidence from All Training Samples: Theory and Practice. arXiv, 2023.arxiv · primary · https://arxiv.org/abs/2306.11113v2
  17. [17]
    Alfonso Guarino, Luca Grilli, Domenico Santoro, Francesco Messina, Rocco Zaccagnino. To learn or not to learn? Evaluating autonomous, adaptive, automated traders in cryptocurrencies financial bubbles. Neural Computing and Applications, 2022.openalex · primary · DOI 10.1007/s00521-022-07543-4 · https://doi.org/10.1007/s00521-022-07543-4
  18. [18]
    Abdul Wahab, Raksha Kumaraswamy, Martha White. Value Bonuses using Ensemble Errors for Exploration in Reinforcement Learning. arXiv, 2026.arxiv · primary · https://arxiv.org/abs/2602.12375v1