Modele de regime

La «limite zéro» à des taux d`intérêt bas entraînerait un régime de volatilité sensiblement diminué alors que la période des taux élevés de politique des banques centrales découlant de l`inflation élevée en 1970/80 était caractérisée par une plus grande volatilité-un changement de régime. La première tâche consiste à importer les bibliothèques nécessaires. cornichon est nécessaire pour sérialiser le modèle à utiliser dans le gestionnaire de risque de détection de régime. avertissements est utilisé pour supprimer les avertissements d`obsolation excessive générés par Scikit-Learn, via des appels d`API de hmmlearn. GaussianHMM est importé de hmmlearn formant la base du modèle. Matplotlib et Seaborn sont importés pour tracer les États cachés dans l`échantillon, nécessaire pour un «contrôle de la santé» sur le comportement des modèles: dans cet article, le modèle de Markov caché sera utilisé dans le cadre de QSTrader comme un filtre de régime de marché de gestion des risques. Il va interdire les transactions lorsque des régimes de volatilité plus élevés sont prévus. L`espoir est que ce faisant, il éliminera les transactions non rentables et peut-être supprimer la volatilité de la stratégie, augmentant ainsi son ratio Sharpe. Le code prend le modèle ainsi que les prix DataFrame et crée un sous-tracé, un tracé pour chaque état masqué généré par le modèle.

Chaque sous-tracé affiche le prix de clôture ajusté masqué par cet État/régime masqué particulier. Ceci est utile pour voir si le HMM produit des États «sains d`esprit»: ainsi, l`intuition derrière ces modèles est d`obtenir un modèle avec certains coefficients qui dépendent du régime. Une méthode d`assistance, determine_regime, utilise l`objet price_handler et l`événement sized_order pour obtenir la liste complète des retours de clôture ajustés calculés par QSTrader (voir le code dans la section précédente pour plus de détails). Il utilise ensuite la méthode de prédiction de l`objet GaussianHMM pour produire un tableau d`États de régime prédits. Il prend la dernière valeur et l`utilise ensuite comme «État caché» actuel, ou régime: quelqu`un peut-il donner une définition intuitive d`un régime et d`un commutateur de régime et fournir des exemples? Le premier fichier englobe le montage d`un modèle de Markov caché gaussien à une grande période des retours S&P 500. Le deuxième fichier contient la logique pour la réalisation de la tendance à court terme-suivant. Le troisième fichier fournit le filtrage de régime des trades par l`intermédiaire d`un objet de gestionnaire de risque. Le fichier final lie tous ces modules ensemble dans un backtest. L`un est une interception unique + quelques erreurs aléatoires. Un autre est le même, mais avec la variance des erreurs qui changent à chaque nouveau régime. Une autre approche pourrait être de fermer immédiatement toute position longue ouverte lors de l`entrée du régime #1, bien que ce soit laissé comme un exercice pour le lecteur! Le gestionnaire des risques vérifie, pour chaque transaction envoyée, si l`état actuel est un régime à faible volatilité ou à volatilité élevée. Si la volatilité est faible, n`importe quel long métier est laissé à travers et effectué.

Si la volatilité est élevée, tous les Trades ouverts sont fermés à la réception du signal de fermeture, tandis que tout nouveau potentiel de transactions longues sont annulés avant d`être autorisés à passer à travers. Notez que cette application du filtre de régime est hors-échantillon. En d`autres, aucune donnée de retour utilisée dans le backtest n`a été utilisée dans la formation du modèle Hidden Markov. Pour une exploration de la façon dont le comportement du marché peut varier selon des régimes différents: http://www.emanuelderman.com/writing/entry/regimes-of-volatility-risk-april-1999 l`objet AbstractRiskManager sous-classé est la première utilisation majeure de la gestion des risques appliqué séparément à une stratégie sur le site à ce jour. Comme indiqué ci-dessus, l`objectif de cet objet est de filtrer la tendance à court terme-les métiers suivants lorsque dans un régime de volatilité élevée indésirable. Dans l`article précédent sur les modèles de Markov cachés, il a été montré comment leur application pour indexer les données de retour pourrait être utilisé comme un mécanisme pour découvrir les «régimes de marché latents».