Saturday 28 January 2017

Option Trading Strategies Matlab

MatlabTrading Ce message concerne l'importance de l'utilisation de différents types de méthodes d'optimisation telles que les algorithmes génétiques et la parallélisation pour obtenir des résultats plus rapidement. Optimisation des Algorithmes Génétiques Malgré le fait que le principe de l'algorithme génétique (évolutionnaire) est très bien expliqué dans les webinaires de MathWorks, dans les exemples, il est utilisé uniquement pour l'optimisation du choix d'un groupe de stratégie à partir d'un ensemble. Il s'agit d'un bon exemple de l'utilisation de ces algorithmes, mais il arrive qu'il est nécessaire de définir de nombreuses variables avec des intervalles significatifs pour une stratégie, vous n'obtenez pas avec une itération et la parallélisation des processus 8211 calculs peuvent prendre plusieurs jours . Certes, il existe des stratégies dans la phase finale de l'optimisation. Lorsque nous savons presque sûrement que la stratégie de négociation est couronnée de succès, nous pouvons attendre plusieurs jours ou louer le cluster entier - le résultat pourrait en valoir la peine. Cependant, si nous devons estimer les résultats d'une stratégie volumineuse et décider s'il vaut la peine de passer le temps, alors les algorithmes génétiques peuvent être parfaitement adaptés. Nous proposons la possibilité d'utiliser trois méthodes pour optimiser la stratégie dans WFAToolbox: Méthode linéaire 8211 c'est un mode habituel de tri dans lequel vous verrez tous les résultats intermédiaires (sous-optimale). Il donne une précision maximale. Méthode parallèle 8211 tous les noyaux de votre CPU seront utilisés. Il ne permet pas de voir des résultats intermédiaires, mais accélère considérablement l'opération. Il donne une précision maximale lors de l'augmentation de la vitesse de calcul. La méthode génétique 8211 utilise l'algorithme d'optimisation évolutive. Il permet de voir des valeurs sous-optimales, mais donne le résultat proche de la meilleure. Ce n'est pas une méthode très précise, mais elle est suffisamment précise pour la phase initiale de la stratégie. Très vite. On nous demande souvent si WFAToolbox - Walk-Forward Analysis Toolbox pour MATLAB a la possibilité d'utiliser le GPU dans les calculs. Malheureusement, le GPU n'est pas adapté à toutes les tâches et son utilisation est très spécifique. Pour l'utiliser, vous devez ajuster la logique et le code de chaque stratégie pour les tests de noyaux graphiques. Malheureusement, en raison de cette non-universalité de la méthode on ne peut pas utiliser GPU dans WFAToolbox. Suite à la deuxième partie de la discussion sur les problèmes et solutions dans le test et l'analyse de la stratégie de trading algorithmique dans MATLAB, je vous invite à lire ce post sur le problème de l'indisponibilité de la visualisation des processus dans les solutions logicielles modernes pour tester les systèmes de négociation. Visualisation du processus de test Dans mon expérience de travail, j'ai souvent analysé d'autres plates-formes populaires pour les tests de stratégie de négociation. Tels que TradeStation. MetaStock. Multicharts etc et j'ai toujours été surpris de la façon dont peu d'attention a été accordée à la visualisation du processus d'essai. La chose est que quand nous ne voyons pas les résultats des valeurs intermédiaires, sous-optimales des paramètres optimisés, nous jetons souvent de l'or avec la saleté. La question est en raison d'un échantillonnage trop large, la stratégie ajuste les paramètres de la façon dont nous soit voir une stratégie parfaite qui échoue dans la vie réelle ou de voir un ou deux traite, qui sont censés être le meilleur parce qu'il a été sélectionné telles données d'intervalle de temps où le La meilleure stratégie de négociation serait buy-and-hold, mais pourquoi sont alors d'autres stratégies nécessaires pour la visualisation du processus de test de stratégie de négociation dans MATLAB (proposé dans le webinaire) En conséquence, sans voir les résultats intermédiaires, nous avons 171blindly187 modifier les paramètres à essayer Pour obtenir les meilleures données ou le regarder en 3D ou 4D (la couleur est la 4ème dimension), comme proposé dans les webinaires. L'analyse des valeurs dans les espaces N-dimensionnels peut certainement être une alternative, mais a plusieurs limitations: Que faire si il ya plus de 4 dimensions Lorsque vous voyez quels signaux et à quelle fréquence ils apparaissent dans la fourchette de prix, vous avez presque tous les La représentation visuelle nécessaire de votre stratégie: la fréquence des transactions, leur rentabilité (courbe de revenu), la précision de l'ouverture, la similitude avec d'autres valeurs sous-optimales, etc. qui ne peut pas être dit sur la performance dans l'espace N-dimensionnel où toutes les informations utiles Est en fait que la valeur optimale n'est pas seulement une, mais il existe toute une gamme de valeurs sous-optimales dans une ou plusieurs zones. Tout en optimisant une stratégie dans WFAToolbox 8211 Walk-Forward Analysis Toolbox pour MATLAB174. Comme une nouvelle valeur optimale est trouvée, les signaux de la stratégie de négociation dans la période dans l'échantillon et hors de l'échantillon apparaissent immédiatement sur le graphique, de sorte que vous pouvez toujours contrôler quelle gamme d'options vous devez affecter, et aussi vous pouvez mettre en pause l'optimisation Sans attendre la fin du test, car il devient clair que quelque chose a mal tourné ou tout est fine. Hello, mon nom est Igor Volkov. Je développe des stratégies de négociation algorithmique depuis 2006 et j'ai travaillé dans plusieurs hedge funds. Dans cet article, je voudrais discuter des difficultés sur la façon de développeur de stratégies de négociation MATLAB au cours d'essais et d'analyse, ainsi que d'offrir des solutions possibles. J'ai utilisé MATLAB pour tester des stratégies algorithmiques depuis 2007 et je suis parvenu à la conclusion que ce n'est pas seulement l'outil de recherche le plus pratique, mais aussi le plus puissant car il permet l'utilisation de modèles statistiques et économétriques complexes, L'apprentissage automatique, les filtres numériques, la logique floue, etc. en ajoutant la boîte à outils. Le langage MATLAB est assez simple et bien documenté, donc même un non-programmeur (comme moi) peut le maîtriser. Comment tout a commencé. C'était 2008 (si je ne me trompe pas) que le premier webinaire sur le trading algorithmique de MATLAB avec Ali Kazaam a été publié, couvrant le thème de l'optimisation de stratégies simples basées sur des indicateurs techniques, etc. malgré un code plutôt local, les outils étaient intéressants Assez pour utiliser. Ils ont servi de point de départ à la recherche et à l'amélioration d'un modèle de test et d'analyse qui permettrait d'utiliser toute la puissance des boîtes à outils et la liberté des actions MATLAB lors de la création de stratégies commerciales propres, Des tests et les données obtenues et leur analyse ultérieure choisiraient un portefeuille efficace de systèmes de négociation robustes. Par la suite, les webinaires Mathworks ont été mis à jour chaque année et progressivement introduit des éléments de plus en plus intéressants. Ainsi, le premier webinaire sur le trading par paires (arbitrage statistique) à l'aide de la Boîte à Outils Econométriques a eu lieu en 2010, bien que la Boîte à outils d'analyse et d'analyse soit restée la même. En 2013, Trading Toolbox de Mathworks est apparu qui a permis de connecter MATLAB à différents courtiers pour l'exécution de leurs applications. Bien qu'il y ait des solutions automatiques pour l'exécution des transactions, à partir de ce moment MATLAB pourrait être considéré comme un système d'élaboration de stratégies de négociation avec un cycle complet: du chargement de données à l'exécution de stratégies de trading automatisées. Pourquoi tous les Algotrader devaient-ils réinventer la roue? Cependant, Mathworks n'a pas offert une solution complète pour tester et analyser les stratégies. Les codes que vous pouviez tirer des webinaires étaient les seuls éléments d'un test complet du système et il était nécessaire de les modifier , Les personnaliser et les ajouter à l'interface graphique pour faciliter l'utilisation. Il fallait beaucoup de temps, ce qui posait une question: quelle que soit la stratégie, elle doit passer par le même processus de test et d'analyse, ce qui permettrait de le classer comme stable et utilisable. Pourquoi chaque algotrader devrait-il réinventer la roue et écrire Son propre code pour les stratégies de test appropriées dans MATLAB Ainsi, la décision a été prise de créer un produit qui permettrait d'effectuer l'ensemble du processus associé à l'essai et l'analyse des stratégies de trading algorithmique en utilisant une interface simple et conviviale. Tout d'abord, je voudrais répondre aux questions suivantes: Qu'est-il arrivé avec le blog 1. Jev Kuznetsov n'est pas le propriétaire plus Le blog a été acheté à notre ami, Jev Kuznetsov, qui a déménagé à son autre blog tradingwithpython. blogspot. Il a conclu que Python est meilleur que MATLAB pour la négociation, ce que je considère comme faux. MATLAB reste l'un des meilleurs logiciels dans le monde pour des fins de négociation algorithmique IMHO (j'ai quelques faits à ce sujet si pour la discussion future). 2. Nous avons changé la marque A partir de ce moment, le blog sera appelé MatlabTrading, qui est beaucoup plus compréhensible en ce qui concerne les sujets qu'il comprendra. En outre, le nom de domaine a été changé en matlabtrading au lieu de matlab-trading. blogspot initial. Bien que l'ancien domaine fonctionne toujours redirection à partir du nom de domaine principal. Qu'est-ce qui va arriver au blog 1. Plus de posts et d'articles Nous espérons donner vie à ce blog en affichant des contenus pertinents une ou deux fois par semaine. Dans les premiers mois, nous publierons principalement les articles et les vidéos que nous avons déjà pour faciliter aux lecteurs que nous cherchions des informations sur une ressource et que nous ayons des liens croisés. Ensuite, nous avons des plans pour écrire des messages sur les aspects pratiques de la négociation algorithmique dans MATLAB. Comment créer des stratégies commerciales modernes automatiques telles que: arbitrage statistique paires trading moyen reversion marché neutre stratégies commerciales basées sur cointegration bollinger bandes kalman filtre etc pour les matières premières, les stocks et Forex. Stratégies de suivi des tendances avec Jurik Moyenne mobile et autres filtres numériques sophistiqués Stratégies de prévision avec l'apprentissage automatique (Support Vector Machines) et d'autres méthodes Création de stratégies commerciales robustes à l'aide de la gestion visuelle de l'argent pour réinvestir votre capital (science sur comment obtenir 1M de 10K Dans une année avec des récompenses maximales, mais estimées de risque et de sueur). Peut-être après avoir lu ce que vous avez pensé que ce sera un autre article stupide pour ces pauvres gars cherchant comment devenir riche par le commerce sur le forex et tout cela. Eh bien, c'est totalement faux Nous travaillons dans MATLAB, et la majorité d'entre nous sont des scientifiques et des experts dans cet aspect donc tout est sérieux. 2. Plus d'interactivité Je serai heureux si nous pouvons tous relier par des commentaires dans les messages. Abonnez-vous à nos nouvelles pour vous alerter sur les nouveaux messages et événements. Plus tard, nous avons l'intention de créer des webinaires Google Hangouts. Ne le manquez pas, cliquez sur le bouton Suivre dans le coin supérieur droit pour rejoindre notre communauté. Que voulez-vous lire dans nos articles de blog Quels sujets pouvez-vous suggérer Veuillez écrire ici dans les commentaires. Dans mon précédent post, je suis arrivé à la conclusion que la négociation de paires étroites à proches n'est pas aussi rentable qu'auparavant qu'auparavant. Un lecteur a souligné qu'il pourrait être que la nature de la réversion moyenne des spreads a simplement évolué vers des délais plus courts . Je partage la même idée, alors j'ai décidé de tester cette hypothèse. Cette fois, une seule paire est testée: 100 SPY vs -80 IWM. Le backtest est effectué sur des données de bar de 30 secondes du 11.2011 au 12.2012. Les règles sont simples et semblables à la stratégie que j'ai testé dans le dernier message: si le retour de la paire de la paire dépasse 1 sur z-score, le commerce de la barre suivante. Le résultat semble très joli: je considérerais ceci comme une preuve suffisante qu'il ya encore beaucoup de réversion moyenne sur une échelle de 30 secondes. Si vous pensez que ce tableau est trop beau pour être vrai, c'est malheureusement le cas. Aucun coût de transaction ni écart bid-ask n'ont été pris en compte. En fait, je dirais qu'il n'y aurait plus de profit après avoir soustrait tous les coûts de transaction. Pourtant, ce genre de graphiques est la carotte qui pendent devant mon nez, me gardant en cours. Mauvaise nouvelle tout le monde, selon mes calculs, (que j'espère sincèrement sont incorrects) le commerce des paires classique est mort. Certaines personnes seraient fortement en désaccord, mais voici ce que j'ai trouvé: Laisse prendre une stratégie hypothétique qui fonctionne sur un panier de etfs: SPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA Paires peuvent être faites. Chaque paire est construite comme une propagation neutre sur le marché. Règles de la stratégie: Chaque jour, pour chaque paire, calculez le z-score basé sur l'écart-type de 25 jours. Si z-score gt seuil, aller court, fermer le lendemain Si z-score lt-seuil aller long, fermer le lendemain Pour garder tout simple, le calcul se fait sans gestion du capital (on peut avoir jusqu'à 90 paires en portefeuille Sur chaque jour). Les coûts de transaction ne sont pas pris en compte non plus. Pour simplifier, cette stratégie permet de suivre la nature moyenne des spreads de marché neutres d'une journée. Voici les résultats simulés pour plusieurs seuils: Quel que soit le seuil utilisé, la stratégie est très rentable en 2008, assez bonne au cours de 2009 et totalement sans valeur à partir de début 2010. Ce n'est pas la première fois que je suis tombé sur ce changement de moyen-reverting Comportement en etfs. Peu importe ce que j'ai essayé, je n'ai pas eu de chance de trouver une stratégie de négociation de paires qui fonctionnerait sur les ETFs passé 2010. Mon conclusion est que ces types de modèles simples stat-arb simplement ne pas le couper plus. Bitfinex a annoncé aujourd'hui le début de l'exploitation minière Contrats en tant que produit commercial sur leur plate-forme. Au total, 100 THS (terahashes par seconde) avec une expiration en 3 mois ont été mis à la disposition sous le nom TH1BTC. Les 100 THS font partie d'un plus grand bassin de 3500 THS, donc plus de contrats miniers pourraient être disponibles à l'avenir. Fait intéressant, cela marque la première fois qu'il est possible de court terme un contrat minier. Le raccourcissement d'un contrat minier signifie recevoir un montant de Bitcoin maintenant (le prix auquel nous le vendons) et ensuite verser des dividendes (dans Bitcoin) sur les 3 mois suivants jusqu'à l'expiration du contrat à la mi-décembre. Un bénéfice est réalisé si la somme de tous les dividendes versés (plus les intérêts que nous avons payés à court terme) est inférieure à ce que nous avons reçu au début lorsque nous avons vendu le contrat (à quelqu'un d'autre évidemment). Cela signifie que le prix de TH1BTC devrait dépendre de 3 variables (par ordre décroissant d'importance): Le changement de la difficulté minière jusqu'au 15 décembre Le temps restant jusqu'au 15 décembre Le taux d'intérêt (swap rate) Si la difficulté augmente les paiements de dividendes deviennent plus petits parce que 1 THS représente une fraction plus petite de la puissance de hachage du réseau entier. Par conséquent, le prix d'un contrat devrait diminuer si la difficulté augmente. Plus nous arrivons à l'expiration de la fièvre Bitcoins peut être l'esprit avec 1 THS au total. Par conséquent, le prix d'un contrat devrait diminuer le plus près que nous arrivons à expiration et atteindre un prix de 0 à l'expiration. Plus le taux d'intérêt est élevé, plus il est coûteux d'entrer et de conserver le contrat sur toute la durée de 3 mois. Bitfinex n'offre pas de swaps de 90 jours, donc en entrant un contrat avec le but de le maintenir jusqu'à la fin contient un peu de risque de taux d'intérêt parce qu'à un moment donné un nouveau swap doit être retiré (à un taux d'intérêt potentiellement défavorable). C'est moins un problème quand on va longtemps (taux de Bitcoin sont généralement bas) que quand aller à court (il n'y a qu'un maximum de 100 contrats disponibles au total, pas de court-circuit nu). Pour compenser le risque, les prix devraient augmenter lorsque les taux d'échange augmentent. Le grand inconnu est bien sûr le changement de la difficulté minière au cours des 90 prochains jours. Dans la figure suivante, nous voyons comment la difficulté a changé au cours des 6 mois précédents. Les données proviennent de Tradeblock et montrent non seulement une représentation graphique des changements passés de la difficulté (la difficulté change tous les 14 jours en fonction du taux de hachage passé), mais aussi des statistiques sommaires de base. La difficulté moyenne a augmenté de 27 au cours des 30 derniers jours et de 77 au cours des 60 derniers jours. Pour estimer le prix juste d'un TH1BTC, nous supposerons que la difficulté augmentera en moyenne 15 par mois au cours des 3 prochains mois. Actuellement, le prix d'achat d'un contrat d'une valeur de 1 THS est de 2 BTC. Les frais de piscine est de 3 et nous allons ignorer les taux d'intérêt. En remplissant toutes les informations nous obtenons les résultats suivants: Par conséquent, si nous allons longtemps un contrat basé sur nos hypothèses, nous ferions une perte d'environ 0,39 Bitcoin (un peu plus en réalité, puisque nous allons commencer à minerai au milieu de Septembre jusqu'au milieu De décembre) parce que les dividendes attendus (revenus mensuels) ne vont pas couvrir nos coûts initiaux de 2 CTB avant l'expiration du contrat. D'autre part, aller à court à un prix de 2 Bitcoin aurait généré un bénéfice d'environ 0,39 Bitcoin par contrat. Gardez à l'esprit que nous n'avons pas inclus les coûts d'échange qui sont actuellement à environ 1 par jour (). Il existe deux façons d'examiner les résultats. Soit nous pourrions dire les prix pour TH1BTC sont actuellement surévalués et devrait être plus proche d'environ 1,5 CTB. Si nous supposons que la difficulté augmentera plus de 15 par mois alors les prix devraient être encore plus bas que cela. Ou on pourrait dire que le marché est efficace et que les prix sont corrects, ce qui impliquerait que le marché s'attend à une diminution de la moyenne d'environ 2 par mois au cours des 90 prochains jours. Quoi qu'il en soit, les résultats seront connus avec certitude dans 90 jours. Luttant pour récupérer de la plus récente Bitcoin flash crash qui est né sur Bitfinex seulement quatre jours aller. Les prix de Bitcoin ont pris une autre plongée aujourd'hui comme les commerçants de marge ont obtenu leurs positions liquides sur BTC-e. L'événement a débuté à 13h36 (UTC1) lorsque les grandes commandes de vente ont commencé à apparaître sur la troisième BCO-e de Bitcoin de l'Ouest. La dynamique à la baisse a progressivement augmenté au fur et à mesure que le carnet de commandes devenait de plus en plus mince, ce qui a fait chuter les prix à un minimum de 309 USD par Bitcoin à 13h43. Dans les minutes suivantes, les prix ont rebondi rapidement sur le volume mince de retour à environ USD 442 que les traders d'arbitrage a commencé à profiter de la remise par rapport à d'autres bourses. BTC-e est l'un des rares échanges importants qui offrent des marges de négociation à leurs clients via la plateforme MetaTrader depuis Novembre 2013, mais les détails qui excactly fournit les fonds nécessaires pour marge de négociation sont restés peu clairs. La forme et surtout le moment de l'écrasement se dirige vers les négociateurs de marge en cours de liquidation (ou les ordres stop sont exécutés), semblable à ce qui s'est passé sur Bitfinex il ya quelques jours. Toutefois, contrairement à Bitfinex qui est transparent sur les positions d'échange ouvert. BTC-e ne fournit pas de données importantes qui seraient nécessaires pour fournir une analyse plus approfondie et donc cette dernière déclaration ne peut être considérée comme une bonne supposition. Contrairement à Bitfinex, qui s'appuie sur un algorithme caché dans un effort pour contrôler le flux d'ordre. La CTB-e ne semble pas disposer de mesures de sauvegarde spéciales pour atténuer ces événements. La chute en dessous de 400 a été principalement due à un manque d'offres dans le carnet d'ordres et non pas parce que le marché croyait que la valeur réelle était inférieure à 400, comme le rebond de retour à plus de 440 minutes seulement plus tard essentiellement prouvé. Par conséquent, arrêter le commerce pendant la volatilité extrême vers le bas aurait pu facilement évité le bain de sang parmi les commerçants marge en donnant aux participants du marché d'autres plus de temps pour épaissir le carnet d'ordres. Mise à jour 4:58 PM (UTC1): BrCapoeira a posté sur Reddit un graphique intéressant basé sur les données de la plate-forme Metatrader: Ce graphe implique qu'une seule grande commande a été la cause de cet événement. Si cet ordre a été créé en raison d'un appel de marge, une erreur simple, de manipuler le marché, ou d'ouvrir une grande position courte reste incertain. Le bon sens suggérerait que c'était probablement le résultat d'un appel de marge d'un seul grand négociant. Mon message précédent sur ce sujet a été soulevé lors des discussions au lendemain du dernier crash flash Bitcoin. Coindesk a été l'un des premiers à le reprendre et depuis, divers postes sur la transparence et la responsabilité éventuelle des échanges pour gérer activement l'exécution des ordres ont commencé à apparaître. À la suite de ces événements, Josh Rossi, vice-président du développement des affaires chez Bitfinex, a continué sur Reddit à aborder ouvertement certaines des questions soulevées contre l'échange. Les faits nous savons à coup sûr qu'il y avait quelques gros ordres de vente peu de temps avant le crash a commencé, par exemple une commande de vente de 500 sur Bitstamp à 9.49am (UTC1), environ 6 minutes avant qu'une grande commande de vente sur Bitfinex ait déclenché l'accident. Toutefois, les données ne nous indiquent pas s'il s'agissait de délit d'initié, une forme de manipulation du marché. Ou une simple erreur. Le fait est qu'après le crash flash de Bitcoin, les positions d'échange ouvert ont diminué d'environ 28m à 24m, ce qui indique qu'environ 8400 marges ont été fermées (en supposant une moyenne de 475) d'une manière (appel de marge) ou d'un autre ordre. Les données ne nous indiquent pas ce que le ratio est, mais selon Josh seulement environ 650 Bitcoins ont été vendus à la suite d'appels de marge. Comme l'a souligné à juste titre Jonathan Levin. Le fait est que, commençant environ 24 heures avant le crash flash bitcoin jusqu'à ce que le crash lui-même un autre 1000 Bitcoins ont été pris en positions courtes et environ 2500 shorts ont été par la suite fermés pendant l'écrasement. La question de savoir si ces courts métrages ont été ouverts pour couvrir des positions existantes, comme une tentative malveillante de déclencher un appel de marge, ou une façon de faire front-le marché en utilisant l'information privée ne peut être déterminée à partir des données disponibles. Ce qui était inattendu Personnellement, le point intéressant n'est pas que le flash Bitcoin s'est écrasé. Les fluctuations subites des prix sont arrivées dans le passé et se produiront à l'avenir, en particulier dans les marchés non liquides tels que Bitcoin. Le point intéressant est l'implication de Bitfinex et comment ils ont géré activement l'exécution des ordres sans informer les participants du marché à l'avance. Le moteur de correspondance Bitfinex n'a pas été stoppé pendant l'accident mais il a ralenti (mais nulle part aussi mauvais que l'infâme décalage horaire de 70 minutes sur l'échange MtGox défunt au cours de l'accident en 2012). Toutefois, ce que Bitfinex a fait, ils ont introduit quelque chose qu'ils appellent maintenant les bosses de vitesse. Ce que cela signifie, c'est qu'ils énoncent essentiellement des ordres qu'ils considèrent comme invalides ou potentiellement dangereux et les ralentissent intentionnellement. À première vue, cela pourrait sembler une bonne idée. Qui ne veut pas un filtre pour supprimer ou ralentir les ordres malveillants Cependant, comme si souvent avec ce genre de choses le diable est dans le détail. Le problème est que Bitfinex n'a pas (et peut-être jamais) rendre public comment exactement ils catégoriser un ordre comme 8220bad8221 et 8220slow il down8221. Si un participant au marché décide de mettre en place une grande commande de vente contre un petit carnet de commandes, alors c'est sa décision. Que son action soit intentionnelle ou non, ce n'est pas à l'échange de décider. Il se pourrait que ce participant au marché ait été tout simplement la première personne à réagir à un événement majeur et est entièrement prêt à supporter les coûts supplémentaires du dérapage résultant en prévision d'un mouvement de prix majeur. Il n'existe tout simplement pas un moyen de classer a priori des ordres a priori comme 8220good8221 ou 8220bad8221 puisque cela supposerait automatiquement la connaissance de tous les événements futurs immédiats. Ce qui peut être amélioré, les marges se faire appeler et les gens essaient de jouer le système de toutes les manières possibles. Logiquement, il faut mettre en place des mesures de protection pour protéger les marchés et leurs participants. Bitfinex était certainement conscient du potentiel des flux de commandes toxiques et préparait des contre-mesures. La seule chose qu'ils ont oublié était d'informer leurs clients sur les dispositifs de sécurité cachés. Cacher ces garanties du public ajoute l'incertitude au marché (surtout maintenant que nous savons qu'ils existent et parfois faire quelque chose) et met essentiellement tous les commerçants confiance dans les mains de Bitfinex. À ce stade, un trader peut seulement espérer que Bitfinex agira toujours dans les meilleures intentions de leurs clients. Cet espoir pourrait être futile cependant, puisque Bitfinex fait l'argent des frais de transaction, indépendamment si un commerçant fait réellement n'importe quel argent. On n'a pas à penser longtemps à réaliser le potentiel caché d'abus dans un tel système. La principale raison soulevée par Josh pourquoi Bitfinex n'a pas l'intention de faire connaître leur algorithme est d'éviter de donner aux commerçants la possibilité d'exploiter, il est faux et le suivant montre pourquoi. Ce sont les disjoncteurs officiels du marché utilisés par NASDAQ, affichés en ligne et entièrement transparents pour chaque participant au marché. Ces règles ne sont certainement pas parfaites, mais elles sont simples, transparentes et fonctionnent pour l'un des plus importants marchés boursiers au monde. Maintenant, j'ai un grand respect pour les personnes qui travaillent sur la plate-forme Bitfinex, mais je doute qu'ils ont réussi à trouver un algorithme qui protège les participants du marché mieux que ceux utilisés par un échange important plus de 900 millions d'actions par jour en moyenne . Et si elles le font, c'est maintenant la chance pour Bitfinex de le prouver au monde et peut-être d'écrire l'histoire en enseignant aux grands garçons comment bien gérer un échange. Pour ce qui est des échanges publics, la transparence est un must, non seulement pour Bitfinex, mais pour tout échange. Les participants au marché doivent savoir exactement ce qui se passe lorsqu'ils passent une commande et ne doivent en aucun cas se fier uniquement à la bonne foi. Les mesures de sauvegarde sont importantes parce que les accidents se produisent et les marchés se bloquent, mais il n'est pas à la discrétion de s'engager dans la discrimination des ordres secrets. Il existe différentes façons de sauvegarder les marchés financiers et aucun d'entre eux n'est parfait. L'ajout de complexité augmente habituellement les risques d'effets indésirables et, par conséquent, une approche simple et transparente semble plus appropriée qu'un problème caché et complexe. Il y a deux jours, BitMEX a réduit ses frais de transaction à 0 et l'a célébré en lançant un robot de base sur Github. BitMEX exécute actuellement un défi commercial jusqu'au 29 août 2014 pour promouvoir leur nouvelle plate-forme. Libérer un robot de marquage du marché est probablement un moyen intéressant et efficace d'augmenter le trafic API et de tester la plate-forme un peu. Bien sûr, je ne pouvais pas résister et jeta un coup d'œil. Market-maker est un Liquidbot bifurqué. Qui était originale conçue pour fonctionner sur l'échange maintenant obsolet MtGox. Il y a eu quelques changements mineurs (une nouvelle classe d'api pour se connecter à BitMEX, quelques impressions supplémentaires à la console, des modifications pour s'adapter aux contrats à terme et une impression énorme et inutile à la console lors du démarrage). L'algorithme utilise REST et ne vérifie que les modifications toutes les 60 secondes. Cela déqualifie déjà le bot car il est essentiel trop lent pour réagir aux changements en cours dans le carnet d'ordres. BitMEX limite les demandes à l'API REST à 150 par 5 minutes afin que vous puissiez essayer de réduire les 60 secondes à quelque chose comme 3, mais il won8217t changer le fait que dès que les marchés commencent à bouger, vous allez atteindre la limite et être coincé avec des positions ouvertes. Pour être juste, BitMEX fournit le bot plus comme un stunt marketing et explicitement indique que le passage à WebSocket sera très bénéfique car il permet des mises à jour en temps réel. Dans l'ensemble, l'algorithme est solidement écrit, fonctionne techniquement et est facile à configurer, mais il won8217t vous faire de l'argent à long terme. Si quelqu'un considère sérieusement employer ce bot, je recommanderais les petits changements suivants pour rendre le code plus utilisable: 1. Changez à Websocket 2. Position de sortie sur la fermeture: 3. Construire des ordres à partir du point milieu: En outre, je conseillerais de mesurer La volatilité d'une certaine manière et d'adapter la distance entre les commandes dynamiquement ainsi que la taille. Au cours de mes tests, l'API était toujours réactive et précise. Volume sur l'échange est encore faible, mais les fondamentaux de la plate-forme semblent prometteurs. Ce bot est un outil amusant pour introduire les utilisateurs dans le monde de la fabrication du marché et le trading algorithmique, mais il won8217t stand une chance contre les algorithmes établis. Remarque: Si vous envisagez d'utiliser cet algorithme, gardez à l'esprit que la prise de marché est un travail à temps plein. Tout ce qui est moins que le dévouement complet, le temps de réaction rapide, et le temps de fonctionnement de 100 vous fera perdre de l'argent. Edit: Follow up sur le lendemain aujourd'hui Les prix de Bitcoin ont pris une plongée en tant que négociants de marge sur l'un des plus importants échange Bitfinex obtenu leurs commandes liquidées. Pour de nombreux observateurs de marché proches et des commerçants plus sophistiqués ce n'est pas venu comme une surprise. En fait, les positions longues se sont accumulées en permanence au cours des derniers mois en prévision d'une nouvelle bulle dans les prix de Bitcoin et ont atteint jusqu'à 30m en positions de swap en circulation sur Bitfinex. Maintenant, ce ne serait pas un problème tout seul, tant qu'il ya suffisamment de capital de soutien du prêt. Malheureusement, la plupart de ces positions longues ont été entrées autour de 600 8211 640 USDBTC et la garantie a été fournie principalement dans Bitcoins lui-même. Le graphique suivant montre bien l'accumulation de positions longues, culminant vers le 14 juillet avec près de 32 millions de swaps. Exécution de quelques mathématiques rapides basées sur la marge de maintenance de Bitfinex de 13 et en supposant Bitcoin comme garantie, nous constatons que les appels de marge devrait commencer autour de la marque 520 8211 540 USDBTC. Hier, les prix se sont rapprochés et aujourd'hui, ils ont finalement sauté sur la falaise. Le problème est que, une fois que les appels de marge mis en vous ont un effet en cascade qui déchire le carnet de commandes, ce qui provoque encore plus d'ordres d'atteindre le point de non retour et d'augmenter la dynamique descendante. Ces types d'événements ne sont pas limités aux échanges de Bitcoin, mais peuvent également se produire sur les grands échanges comme lors du crash flash 2010 aux États-Unis. La cause d'un tel flash crashe peut varier et va des fautes d'erreurs de doigt aux erreurs de programmation aux appels de marge en cascade. Il est intéressant de voir comment les échanges portent sur ces événements. Aux États-Unis, Nasdaq a mis en place des disjoncteurs de marché qui feront échouer les transactions dans des circonstances aussi extrêmes. Les marchés de Bitcoin ne sont pas encore aussi avancés et continuent d'être commercialisés. Si nous regardons l'action de commande sur Bitfinex aujourd'hui, nous voyons quelque chose de très particulier: Il semble (et c'est juste une supposition car il n'y a pas de commentaire officiel de l'échange) comme si Bitfinex exécute un algorithme pour gérer les appels de marge. L'algorithme commence à vendre mais se limite à une baisse de 10 dans les prix en 1 minute. Si les prix baissent plus de 10 en 1 minute, il cessera de vendre et attendre les ordres d'achat pour venir po Une fois qu'il ya encore une certaine quantité d'ordres d'achat dans le carnet de commandes de l'algorithme commence à vendre jusqu'à ce que tous les appels de marge sont satisfaits. Edit: LeMogawai a été le premier à signaler cela dans ce post et il correspond à mon observation personnelle au moment de l'événement. Cela semble être une façon intéressante de traiter les appels de marge en cascade mais peut aussi être considéré comme une manipulation de marché limite du côté de l'échange. En étalant les ordres de vente au fil du temps, l'élan à la baisse est réduit, mais les commerçants finissent par négocier contre l'échange lui-même et non le marché plus. L'échange a un avantage informationnel à ce point et est donc plus susceptible de bénéficier que les commerçants. Heureusement, cela n'a duré que 10 minutes environ, après quoi le contrôle a été rendu au marché. D'autres échanges qui offrent également marge de négociation tels que BTC-e et OKcoin sont maintenant dans une position favorable et peuvent apprendre des événements d'aujourd'hui. La mise en place d'un système ressemblant plus étroitement aux disjoncteurs de grands échanges tels que Nasdaq pourrait être un premier pas intelligent. Récemment, je travaille pour obtenir ma nouvelle plateforme de trading va. Cette nouvelle version est basée sur Python, utilise MySQL pour conserver une base de données de toutes les séries temporelles de différentes monnaies virtuelles avec le remplissage automatique de BitcoinCharts et intègre les 3 principaux échanges MtGox, BTC-E et Bitstamp. La plate-forme sera utilisée comme un moyen de backtest certaines stratégies et de s'engager dans le commerce automatique. Au cours de cette période, j'ai décidé de tirer quelques données de BTC contre USD de BitcoinCharts et basé sur les idées d'un article de Hashem et Timmermann (1995) mis en œuvre une stratégie de négociation simple. L'idée est de prévoir le signe du retour de la période t1 sur la base d'une régression, qui est estimée sur une sélection automatique d'indicateurs techniques au cours de la dernière période n jusqu'à t. Ensuite, après t1, nous rafraîchissons le modèle et essayons de prédire t2 en utilisant toutes les données disponibles des n dernières périodes jusqu'à t1 et ainsi de suite. Pour ma thèse de baccalauréat, j'ai examiné quatre règles techniques différentes sur les marchés Forex. Il utilise le test MCS et SPA pour rechercher des modèles valides parmi les différents paramètres qui ne sont pas sujets à la fouille des données. Compte tenu des coûts de transaction réalistes, nous ne trouvons aucune preuve de rendement excessif, ce qui est compatible avec l'efficacité du marché. Avec ce code, vous devriez être en mesure de rechercher des opportunités d'arbitrage Bitcoin au sein de BTC-e. Il utilise l'idée d'un prix et applique l'arbitrage triangulaire, en tenant compte des coûts et de la propagation. La raison pour laquelle je poste ceci ici est en dépit que cela fonctionne, les chances sont que vous soyez trop lent pour rivaliser avec d'autres investisseurs faisant la même chose. Les améliorations possibles seraient de prendre en compte la profondeur du carnet de commandes et de diviser les métiers de façon dynamique, en essayant de sous-estimer les autres commerçants faisant de même. Également la mise en place sur un serveur dédié à proximité de l'emplacement physique du moteur de correspondance BTC-e devrait réduire considérablement le décalage et vous donner un avantage potentiel. Navigation des articles


No comments:

Post a Comment