Comment écrire un robot de trading – aller droit au but. Commander le programme Ecrire un robot de trading


Pour créer un robot de trading, vous avez besoin d'un système de trading

Le trading sur les marchés financiers comporte de nombreux risques, le plus important étant celui de se tromper en prenant une décision commerciale. Le rêve de tout trader est de se remplacer par un robot de trading, une machine automatique toujours en excellent état, qui ne connaît pas la fatigue et qui n'est pas sensible aux faiblesses humaines : la peur, l'avidité et l'impatience.

Chaque nouveau venu sur le marché espère acquérir ou créer un système commercial clair et strict qui puisse être traduit dans le langage des algorithmes et se débarrasser complètement du travail de routine. Est-il possible?

Avoir un système commercial est une condition préalable au trading, et ce système, bien entendu, doit être rentable. Lorsqu’un nouvel arrivant arrive sur le marché, il est littéralement bombardé d’une avalanche d’informations pas si faciles à comprendre. Et les livres et les forums commerciaux viennent ici à la rescousse.

Malheureusement, tous les auteurs de livres ne sont pas des traders à succès, et tous les traders à succès ne sont pas des auteurs de livres. De nombreuses ressources spécialisées sont créées uniquement pour que leurs propriétaires puissent gagner de l'argent, car trader avec son propre argent est beaucoup plus difficile que d'émettre des prévisions et d'enseigner des systèmes de trading.

Chaque trader doit franchir indépendamment toutes les étapes nécessaires à la création de son propre système commercial. Ce n’est pas pour rien qu’ils disent que peu importe le système avec lequel vous négociez, l’essentiel est que vous négociiez réellement avec ce système. Sans cela, les échanges sur le marché se transforment en un jeu de hasard dont l'issue est prédéterminée.

Robots de trading et Forex

Le marché Forex est considéré comme doté d’une énorme liquidité et permet de négocier 24 heures sur 24, contrairement à de nombreux autres marchés. Par conséquent, de nombreux traders tentent de créer des robots de trading spécifiquement destinés au trading sur le marché des changes, car celui-ci est représenté par un assez grand nombre d'instruments.

Cependant, les sceptiques affirment qu'en fait toutes les paires de devises sont fortement corrélées les unes aux autres et que la volatilité du Forex est trop faible. Mais leurs opposants répondent que, malgré la présence d'une corrélation, chaque paire de devises a son propre caractère et qu'une faible volatilité est compensée par un effet de levier important.

Dans tous les cas, les instruments Forex sont intéressants pour créer des robots de trading, et la plupart des partisans du trading automatisé perfectionnent leurs compétences sur les paires de devises.

Téléchargez n'importe quel expert (robot de trading) et exécutez-le dans le testeur de stratégie du terminal client MetaTrader 4 ou MetaTrader 5. Sélectionnez une section de l'historique avec une tendance prononcée et une deuxième section où le prix se situe dans une fourchette/plat. Optimisez les paramètres de saisie de l'expert et voyez en quoi ils diffèrent dans ces deux domaines.

Exécutez un expert avec des paramètres optimaux pour un appartement sur une zone de tendance, et vice versa – sur une zone plate avec des paramètres pour une tendance. Découvrez à quel point les résultats commerciaux changent, comment les distributions commerciales et d'autres paramètres statistiques changent. Ainsi, vous apprendrez à quel point le comportement d'un système commercial peut changer lorsque la situation du marché change.

Il est conseillé d’explorer ainsi plusieurs stratégies de trading classiques dans différentes parties de l’histoire et différents instruments. De tels tests sur un testeur peuvent être une bonne inoculation pour l'avenir sur l'ajustement d'un système commercial à une histoire spécifique et aideront à mieux comprendre l'essence des systèmes de tendance et de contre-tendance.

La prochaine étape pourrait être la création de systèmes de trading plus complexes basés sur une combinaison de signaux simples existants de l'ensemble MQL 5 Wizard. Sans même recourir à la programmation, vous pouvez tester et développer votre intuition de trading en filtrant les mauvais signaux d'un système à l'aide d'un filtre basé sur un autre système.

Mais même ici, l'essentiel est de ne pas en faire trop, car plus il y a de paramètres d'entrée dans le système commercial, plus il est facile de l'ajuster. De nombreuses copies ont été brisées lors de différends sur la manière de distinguer l'optimisation de la personnalisation ; il n'existe pas ici de recettes universelles toutes faites. Mais visualiser les résultats des tests/optimisations et votre bon sens peuvent vous aider.

Apprenez de l’ensemble des paramètres d’entrée pour identifier exactement ceux qui affectent le système commercial. Ne tenez pas compte des paramètres mineurs qui prennent du temps lors de l'optimisation mais n'affectent pas la logique du système lui-même. N'oubliez pas qu'un bon système commercial permet toujours un léger écart dans des paramètres mineurs, mais ne provoque pas d'échecs dramatiques avec un léger changement dans la nature du marché.

Vous pouvez consacrer autant de temps que nécessaire à ce stade pour vous assurer que vous pouvez bien comprendre toute stratégie de trading basée sur les résultats des tests et de l'optimisation. Connaître les forces et les faiblesses des systèmes traditionnels vous permettra d'être mieux préparé lors de la création de votre propre robot de trading.

Programmation d'un robot de trading

Vous avez étudié/étudiez le langage de programmation MQL 4 ou MQL 5 et êtes prêt à rédiger votre premier conseiller pour le terminal client MetaTrader. Ici aussi, plusieurs options sont possibles.

Tout d'abord, vous pouvez analyser plusieurs robots de trading prêts à l'emploi sur la base d'articles publiés afin de mieux comprendre les subtilités de la programmation.

Deuxièmement, vous pouvez poser des questions sur le forum ou si vous ne parvenez pas à comprendre certains points par vous-même. En règle générale, d’autres membres de la communauté sont prêts à aider les nouveaux arrivants s’ils constatent leur intérêt sincère à apprendre le sujet.

Troisièmement, vous pouvez commander la modification ou le développement d'un conseiller ou d'un indicateur dans le service Travail, si, pour une raison quelconque, vous ne pouvez pas créer vous-même le programme requis. Mais même lors de la commande d'un robot de trading via un service freelance, il est conseillé d'avoir une bonne compréhension des enjeux de tests de stratégies afin de parler le même langage avec le développeur.

De plus, la connaissance d'un langage de programmation à un niveau de base vous permettra d'apporter ultérieurement vous-même des corrections et des modifications mineures au code résultant une fois le travail terminé. Après tout, vous ne vous tournerez pas vers un autre programmeur pour chaque problème mineur ; il est beaucoup plus rapide et plus facile de le faire vous-même.

"Tout a été volé avant toi"

Comment trouver son propre système de trading, ou au moins savoir dans quelle direction orienter sa recherche ? Chaque commerçant valorise son propre système, s'il en a un, et chaque débutant rêve de créer le sien ou d'obtenir une stratégie rentable toute faite. En même temps, toute idée trouvée semble trop simple par rapport à ce que devrait être un véritable système fonctionnel dans l’esprit d’un débutant.

L'armée de tous les pays est encline à un niveau excessif de secret, et ce n'est pas pour rien qu'il y a beaucoup de plaisanteries à ce sujet, parmi lesquelles celle-ci : « Un secret militaire ne réside pas dans ce que l'on sait », dit l'instructeur à les cadets de l'école militaire, "mais en cela vous le savez." La situation avec les systèmes de trading est à peu près la même : la plupart des traders utilisent des idées de trading simples et bien connues, avec seulement des modifications mineures, par exemple sous la forme de l'utilisation d'un stop suiveur ou de la confirmation des signaux des indicateurs de tendance.

Il existe de nombreux forums commerciaux fermés où des systèmes commerciaux secrets sont développés ou perfectionnés conjointement et où de simples mortels ne sont pas autorisés à entrer. Le plus intéressant est qu'on ne trouve rien de secret sur eux ; ils prennent toujours la vieille idée classique, comme « le commerce avec la tendance », et la perfectionnent à l'aide de nouveaux indicateurs inconnus du grand public.

Par conséquent, vous pouvez prendre en toute sécurité les codes des robots de trading disponibles dans leur forme originale et essayer de trouver leur utilisation correcte sur certains instruments et délais. Ici, un autre dicton éculé nous vient immédiatement à l’esprit : « Vous n’aimez pas les chats, vous ne savez tout simplement pas comment les cuisiner ! C'est difficile à croire, mais la probabilité que vous trouviez quelque chose de fondamentalement nouveau est très faible. L'essentiel ici est de tout faire correctement vous-même à partir des ingrédients disponibles et de ne pas penser que quelqu'un de super intelligent utilise des développements secrets des laboratoires de la NASA. C'est le secret du Graal.

Un oiseau rare s'envolera au milieu du Dniepr...

« Si les idées de trading sont littéralement sous vos pieds, alors pourquoi personne ne les utilise ? » - une question raisonnable se pose. La réponse réside probablement dans la psychologie humaine. De nombreuses banques et grands fonds d'investissement emploient des traders qui négocient selon des règles écrites et dans les volumes qui leur sont autorisés. Mais pour une raison quelconque, il est rare que les traders institutionnels se libèrent et commencent à trader avec leur propre argent.

Il s'avère que vous avez besoin non seulement de la stratégie de trading elle-même, mais également d'une discipline de fer pour suivre toutes ses règles. De nombreux commerçants étaient amèrement convaincus qu'ils étaient tout aussi mortels que tout le monde et que tous les problèmes de psychologie décrits dans les livres ne leur étaient pas étrangers. Et réalisant que le plus grand ennemi du trader est lui-même, le trader réfléchit à créer un robot de trading qui fonctionnera à sa place et le soulagera du fardeau psychologique.

En sortant un peu du sujet, regardons l'exemple du groupe légendaire « Turtles », qui s'est négocié avec succès sur de nombreux marchés à la fin du 20e siècle. Lisez «La Voie des Tortues» et vous comprendrez que l'essentiel dans le métier de commerçant est une discipline interne à toute épreuve, et non une sorte de système super secret. Hélas, la plupart ne pourront pas négocier en utilisant une stratégie rentable, même s'ils la reçoivent gratuitement.

Le problème est que la plupart des stratégies de trading négociées manuellement avec succès sont difficiles à formaliser et à traduire en langage informatique. Les stratégies les plus faciles à programmer, par exemple à l'intersection de deux moyennes mobiles, sont trop simples et nécessitent de nombreuses clarifications et améliorations pour être utilisées dans la pratique. Ainsi, une idée simple est enrichie de nombreux paramètres externes qui permettent au robot d'éviter les fausses saisies et les erreurs clairement visibles pour les humains. Le problème de l’optimisation d’un robot de trading se pose. En conséquence, cela ne doit pas se transformer en une optimisation excessive et un ajustement à une partie spécifique de l’histoire.

C'est précisément pour lutter contre les ajustements dans le testeur de terminal MetaTrader 5 qui permet de tester en avant les paramètres du système trouvés lors de l'optimisation. Si les résultats des tests avancés d'une stratégie de trading ne diffèrent pas beaucoup des résultats obtenus dans la section optimisation, alors on peut espérer que le robot de trading sera assez stable. pendant un certain temps après son lancement dans le trading en ligne. La longueur de l'intervalle d'optimisation des paramètres et la durée de ce « certain temps » dépendent du système commercial spécifique.

Ainsi, optimiser un robot de trading avant de le lancer dans le trading en ligne est essentiellement comme faire tourner une fronde : la précision avec laquelle nous faisons tourner et lançons un projectile depuis une fronde détermine la distance et la précision avec lesquelles il volera à partir du point de lancement. Un robot de trading bien construit restera sur un compte avec un résultat positif plus longtemps que son homologue obtenu à la suite d'un ajustement. On peut dire que le Graal est une idée de travail et un ajustement correct des paramètres effectué de temps en temps à mesure que les conditions du marché évoluent.

Cet exemple peut être illustré par les résultats du Championnat de trading automatisé, organisé depuis de nombreuses années. Avant le début du concours, tous les participants sont soumis à des contrôles automatiques des experts envoyés - des robots de trading entre janvier et fin juillet. La principale condition pour réussir un tel test est le bénéfice obtenu sur huit mois de test. Mais moins de la moitié des robots admis au Championnat restent dans le noir après trois mois d’autonomie.

Vous pouvez également vous essayer à la création et à la configuration appropriée de votre robot de trading afin d'obtenir les résultats des tests avancés de votre idée. De plus, la participation est gratuite et les prix sont tangibles. Comme on dit : « Bienvenue » !

Conclusion

Un day trader professionnel passe de nombreuses heures devant un écran à attendre le bon moment pour effectuer une transaction, et il n'est pas toujours en pleine forme.

La plupart des traders arrivent à la conclusion que leurs actions commerciales violent souvent leurs propres règles commerciales. Tous les systèmes de trading ne peuvent pas être automatisés, mais même pour eux, dans la plupart des cas, il est possible de créer des outils auxiliaires sous forme d'indicateurs, de systèmes analytiques et de filtres de faux signaux.

Nous ne donnons pas ici de recommandations spécifiques pour l'apprentissage du langage MQL4 ou MQL5. De nombreux autres articles utiles ont été écrits sur ce sujet ; Le but de cette publication était de donner une première idée de comment et par où commencer à créer votre propre robot de trading pour les terminaux MetaTrader 4 et MetaTrader 5.

Nous espérons que cet article fera gagner du temps aux débutants et les orientera dans la bonne direction dans la tâche difficile de créer un système de trading automatique.

Le cerveau du trader ne fonctionne pas de manière très normale. Une personne éloignée des marchés financiers agit de manière rationnelle et prévisible. Lorsqu’un individu qui pense exclusivement en combinaisons de chandeliers entre en jeu, les conséquences sont beaucoup plus difficiles à prévoir. En fait, des priorités de vie confuses et une impulsivité accrue sont des vices bien connus des traders. Le processus de commerce lui-même devient une fin en soi, et l'ordinateur biologique dans les profondeurs du crâne entre dans un cycle sans fin, accroché à l'idée abstraite d'une existence idyllique et à son propre yacht amarré à la jetée du remblai du manoir.

Commençons par le fait que l'idée d'automatiser sa propre stratégie de trading en soi n'offre ni une existence insouciante ni un soulagement aux problèmes urgents du trader. Si vous n’avez aucune idée du fonctionnement du marché, investir du temps et de l’argent dans la construction d’un robot ne remplira pas votre compte bancaire de galions d’or, mais vous ramènera plutôt à la réalité brutale de la classe moyenne typique.

Le temps perdu est donc une expérience. Le temps, c'est de l'argent. En gros, en passant votre temps, vous achetez de l'expérience. Mais vous, en tant que personne raisonnable, souhaiterez probablement économiser un centime supplémentaire sans commettre d'erreurs où vous pourrez contourner le râteau, surtout si une telle opportunité existe. À ce stade, je vais devoir demander un peu de votre temps afin de vous indiquer comment vous devez concrètement vous préparer à la problématique de la création. machines à imprimer de l'argent robot de trading et, bien sûr, comment ne pas faire beaucoup d'erreurs.

1. Nous commençons à développer un robot Forex avec une idée

Développer un robot pour trader sur les marchés est une recherche continue d'idées et, en particulier, une recherche du Saint Graal. Contrairement à ce que prétendent des citoyens non éclairés, le Graal se trouve tout simplement : disons « merci » au progrès technologique. Essayez de taper « Le Saint Graal du Forex » dans Google : il est fort probable que le conseiller de vos rêves se trouve sur la première page des résultats de recherche, et c'est absolument gratuit.

En fait, l’histoire pourrait s’arrêter ici. Si le conseiller idéal existe déjà, pourquoi continuer la recherche ? Mais alors se pose la deuxième question : pourquoi, si le conseiller idéal a déjà été trouvé, y a-t-il encore une pénurie d’eau potable en Afrique ? Si la réponse vous est évidente, félicitations, vous avez franchi la première étape pour devenir un trader raisonnable, après avoir dépassé le niveau d'un débutant ou d'un fanatique de l'algorithme qui ne voit pas les perspectives de son développement et se concentre uniquement sur les résultats.

Je suis sûr que l'idée de votre conseiller est absolument unique et n'a pas d'analogue. Mais, dans tous les cas, il serait stupide de ne pas essayer de trouver des développements similaires chez d'autres auteurs - l'ampleur des recherches effectuées est difficile à évaluer jusqu'à ce qu'on y soit confronté. L’humanité est sur la voie de la singularité technologique, et de nouveaux développements sont introduits si rapidement qu’il est souvent impossible de comprendre tout le matériel présenté. S’il n’existe toujours pas de développements similaires et qu’il est impossible de tester l’idée sans mener vos propres recherches, il est temps de passer à l’étape suivante.

2. 4 questions importantes avant le développement

Mais avant cela, essayez de répondre par vous-même aux questions suivantes :

  • Quelle est votre idée commerciale ?
  • Quelles tâches le conseiller résoudra-t-il et quel avantage objectif cela peut-il apporter dans le trading ?
  • Peut-être avez-vous besoin d'un indicateur graphique ou d'un script d'assistance ?
  • Dans quelle mesure l’idée est-elle techniquement réalisable et pouvez-vous évaluer de manière indépendante sa complexité ?

Ce sont des questions très importantes qui vous aideront non seulement à gagner beaucoup de temps, mais vous permettront également de mieux comprendre votre propre idée. Vous n’êtes sûrement pas venu sur le marché pour distribuer de l’argent à ceux qui en ont besoin, mais vous avez d’autres objectifs.

Idéalement, vous devez parfaitement connaître et comprendre le fonctionnement de la plateforme de trading que vous avez choisie et la stratégie sur laquelle vous gagnerez réellement de l’argent. Toute définition vague ou omission de points apparemment sans importance se révélera néfaste lors des prochaines étapes de développement et nuira au compte de trading. N'ayez pas peur de ressusciter des idées de trading oubliées depuis longtemps, mais n'essayez pas de jouer uniquement sur des solutions toutes faites. Le marché est très volatil et par définition en constante évolution, et la concurrence est de plus en plus rude.

Les nouveaux arrivants sur le marché des changes se posent souvent de nombreuses questions dont les réponses ne sont pas tout à fait évidentes ou ne sont qu'une question d'inexpérience. En tant que trader débutant, il suffit de lire un livre de Bill Williams pour remplacer le concept de chaos commercial par un ordre commercial pour le reste de votre vie. Ensuite, ces personnes se demandent pourquoi elles ne peuvent pas acheter ici et pourquoi elles ne peuvent pas vendre ici, et elles commandent un conseiller aux programmeurs pour l'intersection de deux moyennes mobiles. Mais dans les premiers stades de la formation, cela peut facilement être laissé à des outils de développement prêts à l'emploi. L'un d'eux est MQL5 Wizard – un assistant permettant de créer des conseillers experts pour MetaTrader 5.

Le Master est idéal pour mettre en œuvre des choses simples. Vous n'avez pas besoin de pouvoirs magiques - aucune compétence en programmation n'est requise ici. Quelques étapes simples et le conseiller est prêt. Un conseiller prêt à l'emploi peut être testé dans le même terminal MetaTrader. Gardez une moissonneuse pour la production de graals simples.

Alors, commencez par lancer MetaTrader 5 et accédez à l’éditeur d’application (bouton F4). Dans le menu du haut, cliquez sur le bouton « Créer » et dans la boîte de dialogue qui apparaît, sélectionnez la génération d'un nouveau conseiller.

Ajout de modules de signaux de trading. Les modules peuvent être soit standards, soit développés par la communauté (vous pouvez également participer à ce processus).

En fait, tous les signaux standards sont bien décrits dans l'aide en ligne sur le site officiel. Vous pouvez également y télécharger des fichiers personnalisés.

Après avoir sélectionné un indicateur approprié, vous devez spécifier ses paramètres d'entrée. Ici vous pouvez indiquer le poids du signal par rapport aux autres, s'ils sont nombreux.

Un trailing stop régulier ou la clôture d'une transaction en fonction des valeurs des indicateurs est votre choix.

Vous pouvez également choisir parmi un lot fixe ou le volume de transaction en pourcentage du dépôt. Pour les nouveaux programmeurs les plus risqués, il y a aussi beaucoup de choses avec sa progression géométrique, qui peut vous rapporter des millions pour quelques passages supplémentaires dans le testeur de stratégie.

En fait, même si vous n'êtes pas membre du clan MetaTrader, ce n'est pas grave, un constructeur a probablement déjà été écrit pour la plateforme de trading dont vous avez besoin. Encore une fois, c’est une question d’opportunité et de désir. La morale est simple : Il ne faut pas essayer de mettre en œuvre quelque chose qui a déjà été mis en œuvre il y a longtemps. Ignorer le travail des autres peut s’avérer coûteux ; réinventer la science n’est pas du tout nécessaire.

Ainsi, vous avez déjà une certaine expérience en trading, vous avez testé votre idée en trading ou avez une idée précise de la façon dont elle fonctionnera sur le marché réel. Cela signifie qu’il est temps de passer à la rédaction des règles formelles de votre stratégie. C'est souvent à cette étape que commencent les problèmes pour la plupart des adeptes des sciences humaines : les gens sont confrontés à un mur insurmontable d'incompréhension, lorsqu'un schéma parfaitement élaboré dans leur tête cesse de fonctionner lorsqu'il est traduit dans un langage technique.

Ce problème est si répandu qu’il a créé toute une industrie pour traduire des idées abstraites dans un langage formel de règles clairement structurées, bien sûr, et ce, à un prix payant. En fait, avec un minimum de préparation, vous ne rencontrerez pas une telle complexité simplement parce que vous comprenez le mécanisme de fonctionnement des engrenages de votre robot Forex dans les moindres détails, mais le développement nécessitera quand même un peu de travail.

En fait, une tâche correctement rédigée représente déjà la moitié du travail. Cependant, ce n'est pas le travail d'un programmeur. Si vous demandez à un programmeur d'écrire une tâche pour vous, soyez prêt à rencontrer, au mieux, des incompréhensions et de l'indignation dans la grande majorité des situations. C'est le développeur de l'idée qui est responsable de sa formalisation précise, et non l'implémenteur - si vous préférez, un traducteur vers le langage des commandes de bas niveau.

Un exemple de mauvaise tâche pour créer un conseiller commercial est son absence. L'intention même du client peut être claire : il y a un indicateur, il faut écrire un robot de trading, mais alors quoi ?

"Essayez d'approfondir le processus de travail et tout ce qui concerne directement la mise en œuvre de l'idée de votre conseiller"

Comment conclure une affaire ? Comment l'accompagner ? Quels volumes choisir ? Que faire avec ? Vous devez comprendre que le programmeur n'a pas de capacités psychiques. Si vous trouvez quelqu'un comme celui-ci, n'hésitez pas à me le faire savoir, ces personnes ne devraient pas disparaître.

Voyant les termes de référence pour la création d'une œuvre sans les détails nécessaires, le freelance ajoutera sa propre interprétation et, dans certains cas, pourra effectivement deviner les véritables intentions du client. Mais, en règle générale, de tels appels aboutissent à deux parties offensées et à un recours à l'arbitrage avec résiliation ultérieure du contrat.

Moralité: Plus vous fournissez de détails dans une mission, plus elle sera facile à comprendre, à comprendre et finalement à mettre en œuvre.

7. Sélection de l'interprète

Si vous n’avez aucune expérience des échanges freelance, essayez d’imaginer une version sub-équatoriale de l’enfer. En fait, tout n'est pas si effrayant, mais certaines nuances méritent néanmoins d'être prises en compte.

Premièrement, la politique tarifaire lors de la rédaction d'un conseiller peut être extrêmement incertaine. Il existe un certain minimum qu'un programmeur adéquat n'acceptera pas, mais en même temps, la valeur de ce minimum fluctue considérablement et parfois le minimum devient un maximum (oui, cela arrive aussi).

Il ne faut pas non plus être trop généreux, cela indique immédiatement que la personne a de l'argent et que vous serez certainement écorché pour une tâche simple. Si vous ne comprenez pas le coût d'une tâche, essayez de vous renseigner auprès de personnes de confiance. Communiquez avec des développeurs expérimentés, même si vous n'allez rien leur commander. À l’avenir, cela permettra d’identifier qui peut être contacté et qui ne doit pas l’être.

Deuxièmement, n'hésitez pas à demander aux développeurs de votre conseiller quels points lui paraissent flous, quels points nécessitent des éclaircissements et quelle est en fait la complexité de telle ou telle partie du robot. Il semblerait que tout dans les termes de référence soit clair pour vous, et pourtant les interprètes sont souvent confrontés à des malentendus fondamentaux.

« Il est dans votre intérêt de contrôler le processus de création du conseiller de vos rêves. Demandez des étapes de travail intermédiaires, participez aux tests bêta et n’hésitez pas à apprendre les détails techniques.

Un exemple courant est la mauvaise compréhension des formats de fichiers et de leur signification. Par exemple : « J'ai une bibliothèque .dll ici (fichier .exe ou programme .ex4), pourriez-vous rapidement réparer ceci et cela, et je vous donnerai un joli centime pour cela ? Non? Et pourquoi? Vasily m'a nommé conseiller pour 5 dollars, mais ça veut dire que tu es un mauvais développeur !

Moralité: essayez de vous plonger dans le processus de travail et tout ce qui concerne directement la mise en œuvre de votre idée. Cela vous aidera non seulement à mieux comprendre vous-même le fonctionnement du robot, mais simplifiera également le processus de communication avec les artistes à l’avenir. Il y a toujours au moins deux parties impliquées dans le travail, et si vous avez l'intention de faire du trading votre profession principale, vous devez faire preuve de patience - la vôtre et celle de votre entourage.

L'étape de soumission des travaux est la plus difficile. Rassurez-vous, chaque artiste boit par chagrin une décoction apaisante, marquant d'un marqueur noir le jour du calendrier où il lui est à nouveau demandé de corriger une commande qui a déjà dépassé tous les délais. Comme l'univers, il n'y a pas de limite à la perfection, mais à un moment donné, vous devez vous réunir et dire : la tâche est accomplie.

Je comprends que pour un commerçant, la lumière réfléchie par les montagnes dorées illumine la création d'une pensée technique avancée et le fruit du génie intérieur dans sa présentation d'une immense beauté. Comment cela, parce qu'un conseiller qui ne gagne pas d'argent ne peut tout simplement pas comprendre cela et crée une image de travail inachevé. Comment peut-on payer pour quelque chose qui ne fonctionne pas ?

De la part de l'entrepreneur, les travaux sont terminés exactement lorsque tous les éléments de la commande sont terminés. Une spécification technique pour un programmeur est un chemin clairement défini, et s'en écarter signifie penser pour le client. Parfois, ce chemin mène à une impasse, comme celui qui mène de l'ancienne capitale de la Russie à l'Europe libérale. Autrement dit, au stade de l'acceptation du travail, il s'avère que la tâche n'était pas du tout celle-là, mais complètement le contraire.

Si la tâche est petite, l'artiste interprète peut très bien faire des concessions et corriger le travail conformément aux nouvelles spécifications techniques. Si le travail a été fait à grande échelle, il est déjà trop tard pour changer quoi que ce soit. Un problème courant est le détachement total pendant le processus de développement, par exemple le refus de participer aux tests bêta : « Pourquoi m'avez-vous envoyé un conseiller avec des erreurs, que dois-je tester d'autre pour vous ? ou : "Comment puis-je savoir comment exécuter votre testeur, suis-je un programmeur ou quelque chose comme ça ?"

Pour une personne adéquate, de telles déclarations font mal aux oreilles, mais l'interprète tombe dans la dépression. Développer un robot de trading, c’est avant tout du travail. Si vous recherchez une solution prête à l'emploi, il existe une boutique de conseillers prêts à l'emploi, où le conseiller sera testé et peaufiné pour vous, tout en documentant son succès historique. Dans ce cas, cela ne sert à rien de postuler à un échange freelance.

Moralité: Il ne faut pas tout laisser au hasard. Il est dans votre intérêt de contrôler le processus de création du conseiller de vos rêves. Demandez des étapes de travail intermédiaires, participez aux tests bêta et n'hésitez pas à apprendre les détails techniques.

Conclusion

De grandes personnalités comme Albert Hofmann ne vous laisseront pas mentir. L’expérience de créer votre propre produit n’a pas de prix. Si vous êtes venu sur le marché des changes de votre plein gré, croyez-moi, cela durera longtemps.

L'étude des modèles, la recherche de solutions et leur mise en œuvre changent à jamais la perception du monde, rendant son image plus complète, et la vie prend un sens supplémentaire.

En fait, développer son propre conseiller est une démarche extrêmement intéressante. Même si vous n'avez pas l'intention de lier votre carrière au trading sur les marchés financiers, les connaissances acquises peuvent être appliquées dans d'autres domaines. Le commerce et le développement sont les fondements de toute l’économie moderne, et vous avez aujourd’hui l’occasion d’en faire l’expérience personnellement.

Dans cet article, je vais vous expliquer en détail et vous montrer comment écrire un robot de trading, dont nous avons parlé dans l'article précédent. Ce sera la première et la plus simple leçon sur la création de systèmes automatiques de bourse. Mais malgré cela, après avoir effectué exactement toutes les étapes décrites par moi, le résultat sera un véritable robot de trading.

Je ne verserai pas d’eau, mais j’irai droit au but. Donc, la première chose à faire est de télécharger et d'installer Delphi 7. Cela peut être fait en utilisant le lien - . Après cela, ouvrez le dossier avec le programme shell. Le programme peut être consulté et commandé via le lien :

Nous sommes intéressés par le fichier TradeRobot.dpr. Nous l'ouvrons et voyons ce qui est montré dans l'image ci-dessous.

La fenêtre qui dit « Robot » est Form1, une fenêtre Windows en d'autres termes. Voici à quoi cela ressemble dans le développeur. Sur celui-ci, nous devons placer les commandes et commandes du robot, telles que : deux boutons et trois petites fenêtres rangées. Le premier bouton sera chargé de se connecter à QUIK, le second sera chargé de démarrer et d'arrêter notre robot. Les lignes de fenêtre afficheront des informations sur les volumes d'achats et de ventes récents et l'état actuel du programme.

Pour placer les éléments nécessaires sur le formulaire, vous devez cliquer sur le bouton dans l'onglet Standard.

Après cela, cliquez n'importe où sur le formulaire. Delphi proposera de renommer le bouton et nous l'utiliserons. Appelons-le ConnectButton.

Créons un deuxième bouton de la même manière et appelons-le StartButton.

Créons maintenant des fenêtres à 3 rangées. Pour ce faire, dans le même onglet Standard, sélectionnez l'icône appropriée (comme sur l'image) et placez-la sur le formulaire.

Nous répétons cela trois fois et les appelons ainsi :
- en haut à gauche BuyVolumeModifier
- en haut à droite SaleVolume
- Statut inférieur

Vous devez maintenant modifier les étiquettes des éléments. Cela se fait dans la fenêtre ObjectInspector, pour les boutons de la ligne Légende, pour les fenêtres de ligne de la ligne Texte.

Cela devrait ressembler à l’image ci-dessous.

Nous devons maintenant écrire un script pour chaque bouton. Pour ce faire, double-cliquez sur le bouton Se connecter à QUIK et le code s'ouvrira, comme dans l'image ci-dessous.

Avant de commencer, insérez le texte suivant :

Var EMsg : Tableau de caractères ; EMsgSz:DWord; ExtEC,rez:LongInt; chemin:chaîne; dOrderNum:double; Massage : ficelle ;

Entre le début et la fin, nous insérons ce qui suit :

EMsgSz :=255 ; ExtEC :=0 ; rez:=-1; path:= "C:\Quik-Junior-Zerich\"; FillChar(EMsg, TailleDe(EMsg), 0); rez:=connect(PChar(chemin), ExtEC, EMsg, EMsgSz); Massage:= ResultToString(rez et 255); si Massage = "EXECUTE" alors commencez StatusEdit.Text:= "Connected..."; Statut := "Connecté..." ; end else start StatusEdit.Text:= "Échec..."; Statut := "Échec..." ; fin;

Le résultat devrait être le suivant :

Le chemin vers QUIK est souligné en rouge. Si le vôtre est différent, changez de chemin à cet endroit.

Passons maintenant au bouton START. Ouvrez le script en double-cliquant et insérez ce qui suit entre le début et la fin :

Si StartButton.Caption = "START" alors commencez Status:= "Started"; StartButton.Caption:= "STOP"; end else start Status:= "Arrêté"; StartButton.Caption:= "START"; fin; StatusEdit.Text := Statut ;

Ça devrait ressembler à ça:

Écrivons maintenant les variables globales. Pour ce faire, retrouvons une partie du code :

Et insérez le code suivant :

DataTable : tableau de tableau de chaîne ; Volume d'achat, volume de vente : réel ; Statut : chaîne ;

Maintenant, dans l'ObjectInspector, nous sélectionnons Form1 et dans l'onglet Événements, nous trouvons la ligne onshow. Double-cliquez et le code s'ouvre. Entre le début et la fin, nous insérons ce qui suit :

SetLength(DataTable,2000000,10);

Nous devons maintenant trouver une place dans le code comme dans l'image ci-dessous :

Après var i, j : entier ; insérer ce qui suit :

Chemin, transaction : chaîne ; dOrderNum:double;

Après, commencez ce qui suit :
StatusEdit.Text := Statut ;

Après If(Data.Cells<>"0") et (Data.Cells<>"0.00") puis commencez à insérer le code :

DataTable := Data.Cells ; si DataTable<>"" puis commencez BuyVolume:= StrToFloat(DataTable); VenteVolume := StrToFloat(DataTable); Si StartButton.Caption = "STOP" alors commencez si (BuyVolume > 10) et (Status<>"Achat") puis commencez la transaction :="ACTION=NEW_ORDER; TRANS_ID=1; CLASSCODE= SPBFUT; SECCODE= SiU6; ACCOUNT= SPBFUT00553; CLIENT_CODE= ; TYPE=M; OPERATION= B; QUANTITY=1; PRICE=0;" ; Statut := « Achat » ; dNumCommande :=0 ; send_async_transaction_test(transaction, dOrderNum); fin; si (SaleVolume > 10) et (Statut<>"Vente") puis commencez la transaction :="ACTION=NEW_ORDER; TRANS_ID=1; CLASSCODE= SPBFUT; SECCODE= SiU6; ACCOUNT= SPBFUT00553; CLIENT_CODE= ; TYPE=M; OPERATION= S; QUANTITY=1; PRICE=0;" ; Statut := "Vente" ; dNumCommande :=0 ; send_async_transaction_test(transaction, dOrderNum); fin; fin; fin; BuyVolumeEdit.Text := DataTable ; SaleVolumeEdit.Text := DataTable ;

Ça devrait ressembler à ça:

ATTENTION!

Dans des lignes comme (il y en a deux) :

Transaction:="ACTION=NEW_ORDER; TRANS_ID=1; CLASSCODE= SPBFUT; SECCODE= SiU6; COMPTE= SPBFUT00553; CLIENT_CODE= ; TYPE=M; OPERATION= B; QUANTITE=1; PRIX=0;";

dans le paramètre ACCOUNT=, vous devez spécifier votre compte. Maintenant, mon SPBFUT00553 y est répertorié.

Ça y est, le robot est écrit. Il ne reste plus qu'à le compiler, c'est-à-dire transformer en une application EXE prête à l’emploi. Pour ce faire, cliquez sur le bouton vert Exécuter (ou F9), similaire à Jouer.

Et des technologies liées à ce domaine, mais nous n'avons encore jamais parlé de logiciels avec lesquels, en fait, vous pouvez créer votre propre programme de trading. Sous la coupe se trouve un aperçu des outils logiciels courants permettant de créer des systèmes de trading mécaniques adaptés au marché boursier russe.

Laboratoire de richesse

Le produit de Fidelity International est l'un des outils les plus puissants pour l'analyse technique, le développement et le test de stratégies de trading. Le langage de programmation intégré est WealthScript, qui a beaucoup en commun avec Pascal ; les dernières versions utilisent C# et d'autres langages .NET.

Sur le marché boursier russe, il est utilisé conjointement avec des terminaux de courtage. Dans Wealth-Lab, l'utilisateur décrit sa stratégie, selon laquelle le programme génère des ordres de transactions. A l'aide de bibliothèques spéciales d'intégration, ces ordres sont ensuite transmis au terminal de trading, à partir duquel ils sont exécutés. Objectivement, un tel système impose de nombreuses restrictions, de sorte que Wealth-Lab, bien sûr, ne peut pas être qualifié d'option idéale pour les bourses russes.

MétaStock

Un autre produit étranger. MetaStock contient une vaste bibliothèque de divers indicateurs et outils pour créer vos propres formules. L'un des avantages est un langage de programmation intégré assez simple. À l'aide de modules supplémentaires, vous pouvez générer des ordres d'achat/vente. Comme Wealth-Lab, sur le marché russe, il est utilisé conjointement avec des terminaux de trading utilisant des bibliothèques supplémentaires, ce qui pose à peu près les mêmes problèmes. Un autre inconvénient est le fait que la simplicité du langage de programmation intégré ne permet pas de décrire des stratégies de trading complexes.

Recherche Oméga

Un outil d'analyse technique conçu pour créer et tester des systèmes de trading mécaniques. Vous pouvez écrire des robots dans le langage de programmation Easy Language intégré (la syntaxe est similaire à Pascal). Comme dans le cas des deux programmes ci-dessus, il est utilisé sur la bourse russe à l'aide de « joints ». Parmi les inconvénients figurent respectivement la stabilité de fonctionnement d'une telle conception, ainsi que la complexité de la mise en place d'Omega Research. De plus, le programme fonctionne uniquement avec son propre format de données et ne prend pas en charge la conversion à partir de fichiers texte ou de formats d'autres programmes d'analyse technique.

Outre les produits étrangers, il existe un certain nombre de solutions logicielles proposées par des développeurs russes sur le marché boursier national. Et en voici quelques-uns.

TSLab

Comme le projet précédent, TSLab développe une plateforme de création et de lancement de systèmes de trading mécaniques, « sur mesure » spécifiquement pour le marché boursier russe. L'une des fonctionnalités essentielles pour les traders qui n'ont pas de compétences en programmation est la possibilité d'écrire un algorithme de trading sous la forme d'un organigramme.

StockSharp

Plateforme StockSharp gratuite (dans la version de base) avec open source et produits basés sur celle-ci (S#. Studio). Comme son nom l'indique, vous pouvez programmer en C#. L'un des avantages est la possibilité de se connecter à divers terminaux de trading et systèmes de courtage.

Commerce en direct

Gamme de produits de la société Cofite de Saint-Pétersbourg. Grâce à l'API, vous pouvez lancer des robots implémentés sur la plateforme .NET à l'aide du Terminal LiveTrade. Il est possible de se connecter aux terminaux et systèmes de trading de plusieurs courtiers russes (dont le système ITinvest utilisant l'API SmartCOM). De plus, Cofite propose un produit appelé Robotlab, entièrement dédié à la création de robots. Comme dans le cas de TSLab, les algorithmes de trading peuvent être implémentés à l'aide d'un concepteur visuel. Le schéma fonctionnel du robot résultant peut ensuite être exécuté dans un terminal.

SmartX

Le terminal de trading SmartX n'est pas un terminal ordinaire au sens habituel du terme, mais un produit logiciel intégré qui comprend, entre autres, un langage de programmation de script intégré TradeScript - un langage vectoriel créé par la société américaine Modulus Financial Engineering ( USA) spécifiquement pour la création de robots de trading.

Certaines des fonctions intéressantes du terminal incluent :

  • Possibilité de back testing des stratégies de trading - tester le robot sur des données historiques. Dans le même temps, ces données archivées n'ont pas besoin d'être chargées à partir d'autres sources (souvent payantes) : elles sont chargées automatiquement par le terminal.
  • Possibilité de construire des algorithmes basés sur les données des ticks.
  • Une autre fonctionnalité intéressante est la possibilité de tester une stratégie de trading à la volée en utilisant les données actuelles de la bourse, mais sans envoyer d'ordre à la bourse elle-même - l'heure de la transaction virtuelle, le prix et la rentabilité qui en résulte seront affichés dans une fenêtre séparée.

Le langage de script est assez facile à apprendre et vous pouvez commencer à programmer des robots simples quelques heures après vous être familiarisé avec lui. De plus, de nombreux algorithmes sont similaires en écriture à Metastock, donc si l'utilisateur était auparavant familier avec ce programme, il n'aura pratiquement pas besoin de réapprendre.

Un exemple de robot simple dans TradeScript :

Signaux d'achat # Achetez si la volatilité diminue et que le volume et le prix sont dans une tendance à la hausse Volatilité historique (CLOSE, 15, 252, 2)< REF(HistoricalVolatility(CLOSE, 15, 365, 2), 15) AND TREND(VOLUME, 5) = UP AND TREND(CLOSE, 40) = UP Sell Signals # Продаем, если волатильность снижается, а объем и цена имеют нисходящий тренд HistoricalVolatility(CLOSE, 15, 252, 2) < REF(HistoricalVolatility(CLOSE, 15, 365, 2), 15) AND TREND(VOLUME, 5) = UP AND TREND(CLOSE, 40) = DOWN
L'avantage de cette méthode de création de robots est que, contrairement à Wealth-Lab et Metastock, il n'est pas nécessaire de créer des structures complexes et d'utiliser des « layouts » sous forme de bibliothèques supplémentaires pour transférer les ordres vers le terminal - tout est intégré et immédiatement connecté au système de courtage.

De plus, l'utilisateur peut exécuter autant d'algorithmes exécutés simultanément que la vitesse d'horloge du processeur et la mémoire de l'ordinateur le permettent. Compte tenu du grand nombre de mots et d'opérandes du langage de script, cela signifie qu'il est possible de créer autant de stratégies de trading complexes que vous le souhaitez.

SmartCOM

L'API de notre système de courtage (plus de détails dans), avec laquelle vous pouvez créer des robots de trading de toute complexité. Il existe un plugin supplémentaire pour AmiBroker, qui facilite grandement l'analyse des données.

C'est tout pour aujourd'hui. Dans les sujets suivants, nous parlerons plus en détail de l'écriture de robots de trading et donnerons des exemples de systèmes mécaniques spécifiques créés à l'aide de divers outils. Merci pour votre attention!

Sergey écrit le 08/08/2019 00:05 :
>Écrire des programmes personnalisés. 2 Diplômes du MEPhI (Institut d'ingénierie et de physique de Moscou) - mathématicien et programmeur. 25 ans d'expérience en programmation professionnelle. Expert de haut niveau, il a travaillé de nombreuses années à l’étranger dans des entreprises de renommée mondiale. Langages C, C++, C#, Java, JavaScript, HTML, Pascal, Delphi, Visual Basic, Excell, Assembler, Assembleur pour microcontrôleurs (AVR, PIC, x51, x80-86). Bases de données - toutes, y compris Oracle, MS SQL Server, InterBase, DB2, Paradox, Access, FoxPro, toutes, client - serveur. ASSEMBLEUR de microcontrôleurs (tous dialectes) - 8080, 8085, Z80, x51, AVR, PIC, Arduino. Infographie 2D, 3D - OpenGL, DirectX. Création de sites Web de tout niveau de complexité.

Salutations. Je suis intéressé par l'écriture d'un programme de trace.
Programme Bot pour les paris automatiques dans le bureau d'un bookmaker
Pas pour Betfair. Le programme doit effectuer un certain nombre d'actions, tout devrait ressembler à ceci :

1. Accédez à l'application, appuyez sur le bouton, les paris (prévisions) souhaités sont analysés à partir de l'adresse postale (une nouvelle lettre arrive chaque jour). Peut-être que nous les affichons dans une fenêtre ou un formulaire séparé dans le programme.

2. Sur la base des paris reçus (prévisions), le programme place automatiquement ces paris avec un certain intervalle de temps sur plusieurs comptes du bookmaker.

3. Il peut y avoir un ou plusieurs comptes en Colombie-Britannique. Idéalement, vous pouvez simplement saisir des comptes dans le programme et cocher les cases quel compte utiliser et lequel ne pas utiliser.

4. Le temps entre les paris doit être aléatoire, mais ni inférieur ni supérieur à la plage qui peut être spécifiée dans les paramètres. Par exemple : l'intervalle est réglé de 1 à 5 secondes. 1 pari - boum, deuxième après 2 secondes, troisième après 3,6, quatrième après 1,7, etc.

5. Le site Web du bookmaker doit également être analysé dans la fenêtre du programme et sélectionner uniquement la ligne souhaitée et les événements souhaités. Je ne sais pas comment implémenter cela, le programmeur doit le comprendre. Pour quoi? Parfois, le nom d'une équipe dans les prévisions peut différer du nom indiqué chez le bookmaker. Il ne sera donc pas possible de placer un pari automatiquement. Regardons plus loin.

6. Si néanmoins certains paris ne pouvaient pas être placés automatiquement, le programme devrait permettre à l'utilisateur de les placer manuellement le plus rapidement possible. Ceux. par exemple, 8 paris sur 10 ont été placés avec succès, puis une fenêtre apparaît quels paris n'ont pas été effectués - l'utilisateur du programme voit déjà la ligne analysée avec les événements nécessaires et peut la placer manuellement en un seul clic. Ceux. Cliquez une fois sur le pari souhaité - et le pari sera placé depuis tous les comptes.

7. Le montant des paris est défini dans les paramètres et est le même pour tous les paris.

8. Si les cotes, la taille du handicap (c'est-à-dire le pari lui-même) ou le montant maximum de la mise ont changé pendant le fonctionnement du bot, alors : a) si les cotes changent, pariez à la nouvelle cote si elle n'est pas égale à 1,01 (mais en principe cela n'arrive pas, il peut tomber de 1,9 à 1,7) b) en cas de changement de taille du handicap, donner à l'utilisateur une fenêtre avec un nouveau handicap, où la mise et le nouveau handicap seront être visible, vous pouvez cliquer sur ACCEPTER ou ANNULER c) en cas de modification de la mise maximale (peut passer de 50 à 0,01 par exemple) accepter également un nouveau montant s'il n'est pas inférieur à N (il est conseillé de l'ajouter aux paramètres ).
Ce n’est peut-être pas tout ce dont nous avons besoin, mais c’est au moins 90 %. Veuillez clarifier toute question pendant le développement. Bien sûr, il ne faudra pas changer le programme à l’envers, mais je pense que certaines modifications seront nécessaires. Idéalement, il devrait s'agir d'un programme en trois clics : ouvrir le programme, analyser les paris, placer les paris. Je donnerai personnellement le site Web du bookmaker au programmeur, puis je vous montrerai dans quel format les lettres sont reçues et quelle ligne du bookmaker doit être analysée. Développez le programme afin que vous puissiez effectuer des mises à jour à l'avenir, nous coopérerons pendant longtemps