Rédaction d'un article sur "Comment rédiger un TOR pour un robot de trading". - page 6

 
Aleksey Vyazmikin:

C'est là que beaucoup de détails apparaissent et que des erreurs sont commises. C'est pourquoi il est impératif que l'EA soit testé sur des cotations réelles.

Il vous suffit d'en tenir compte et de convenir d'un délai raisonnable.


La tâche technique est une chose dont l'exécution peut être contrôlée objectivement par un tiers. Sinon, il s'agit d'un devoir pour une rédaction scolaire "sur l'été".


A propos de la bonté

 
Maxim Kuznetsov:


Une tâche technique est quelque chose qui peut être vérifié objectivement par une tierce partie. Sinon, c'est un devoir scolaire "sur l'été".

Un A pour la rédaction. Grande imagination.

Mais, vous avez sauté le sujet - je dis que le test doit être basé sur des données réelles et le client doit en être conscient, et le contractant doit en tenir compte dans les délais déclarés.

 
Aleksey Vyazmikin:

5 pour l'essai - grande imagination !

Mais vous avez sauté le sujet - je dis que les tests sont obligatoires sur des données réelles et que le client doit en être conscient, et que le contractant doit en tenir compte dans les délais indiqués.

Supposons que vous ayez écrit un EA (code et en grande partie débogué même). La prochaine chose objective - pour vérifier le hibou sur le compte réel pour le client, vous avez besoin d'un certain temps et le même compte réel.

Comment faites-vous tous ensemble pour vous assurer que la tâche est accomplie ?

 
Maxim Kuznetsov:

Supposons que vous ayez écrit un EA (code et, pour la plupart, même débogué). Ensuite, une chose objective s'ensuit - pour vérifier le hibou sur un compte réel, le client, vous, l'arbitre avez besoin d'un certain temps et du même compte réel.

Comment allez-vous tous vérifier si la tâche est accomplie ?

Si vous n'êtes pas sûr de l'exactitude du concours, vous pouvez utiliser les journaux de service du terminal et vérifier la performance de l'ordre et la logique de l'EA.

Quel est le problème ? Oui, j'ai effectivement rencontré un EA fonctionnel dans le testeur qui ne fonctionnait pas correctement sur un compte réel, oui l'EA prétendait qu'il devait l'être, l'arbitre a gardé le silence jusqu'à ce que je sorte un morceau de code et mette le nez de l'EA dedans. J'ai perdu beaucoup de temps et de nerfs à cause de l'incompétence de l'entrepreneur, je ne vois donc aucun problème à ce que l'entrepreneur attende sa rémunération.

Ou peut-être que je ne comprends pas quelque chose, veuillez développer vos arguments pour une discussion de fond.

 
Maxim Kuznetsov:

A quoi sert tout cela ?

La spécification des exigences est rédigée par l'entrepreneur (ou un consultant tiers spécialement formé). Et il inclut la méthodologie de vérification.
Toute exigence inutile pour le client, il n'est pas obligé d'être au courant de tout le savoir-faire du programmeur.

Le client doit dire (par écrit, pas par vidéo ou Skype) :

- J'utilise ces indicateurs et ces scripts

- Je respecte les règles suivantes

- Vous avez négocié sur une démo plus ou moins officielle pendant une semaine, un mois ou un an, voici combien. Et dans une autre période comme celle-ci. Toutes ces données peuvent être sauvegardées en les copiant sur un compte centenaire.

- vous devez automatiser

Le développeur prépare et accepte le TT (sous une forme compréhensible pour les deux parties), écrit un hibou, et si tout dans le testeur converge plus ou moins avec la période mentionnée, alors le conseiller expert est fait.

Variantes - nous devrions le vérifier sur le démo/center-real/etc., c'est déjà au-delà des limites du freelancing

Je ne suis pas impliqué dans le freelancing pour de nombreuses raisons, mais écrire le RPT coûte de l'argent et souvent beaucoup. Et, comme je le vois, le chèque moyen dans le freelancing est de 50 $. B quoi, de cette somme déjà misérable, faut-il encore gratter pour payer le contractant pour la rédaction des RPT ? Ou bien il écrira gratuitement ?

 

J'ai ajouté un peu plus à l'article - j'ai ajouté la section Ce qui devrait être dans les termes de référence et j'ai écrit Où trouver les termes de référence si vous ne pouvez pas le composer vous-même

Что нужно для заказа торгового робота

Les robots de trading sont des programmes qui exécutent les algorithmes qui y sont intégrés. Les algorithmes sont un ensemble d'actions qui doivent être effectuées en cas de survenance d'un événement. Par exemple, la tâche la plus courante dans le trading algorithmique est la définition de l'événement "Nouvelle barre" , à l'apparition duquel le robot vérifie l'apparition de signaux de trading et effectue les actions nécessaires sur ceux-ci.

Mais avant d'écrire ou de commander un robot de trading, il est nécessaire d'avoir un système de trading avec des règles claires pour déterminer les moments favorables pour effectuer des transactions. Le développement de tout système commercial, même le plus complexe, commence toujours par des éléments fondamentaux, à savoir le développement de signaux commerciaux pour l'achat et la vente. Ensuite, vous pouvez y ajouter diverses options de suivi et de clôture.

Vous n'avez pas besoin de passer des années derrière le moniteur du terminal de trading pour développer votre stratégie de trading. Il existe maintenant des centaines d'idées éprouvées publiées sur Internet et dans des livres que vous pouvez essayer. Et même si vous n'êtes pas complètement confiant dans vos compétences en programmation, ce n'est pas un obstacle. Le service Freelance vous aidera à trouver le bon développeur et à payer en toute sécurité le travail effectué.

Mais avant de vous lancer dans l'élément fascinant du trading algorithmique, nous vous recommandons de lire des articles utiles sur le sujet :

Pourquoi est-il important d'avoir un bon mandat?

Lors de la commande ou du développement d'un Expert Advisor, il est nécessaire de formuler des exigences techniques pour celui-ci - quelles tâches il doit résoudre, dans quelles conditions il sera utilisé, ce qui se passera dans les situations d'urgence, de quel type de contrôle il a besoin. Les robots de trading sont des programmes et doivent fonctionner clairement conformément à la logique sous-jacente. Mais avant de programmer l'algorithme d'actions nécessaire, il faut aussi le décrire clairement.

La description de la stratégie de négociation doit être publiée sous la forme d'un mandat. Et mieux ce sera et plus clair, moins il y aura de malentendu entre vous, en tant que client, et le programmeur, en tant qu'exécuteur de votre commande.

La chose la plus importante dans les termes de référence est la présence de règles commerciales formelles sans ambiguïté. Même si vous n'allez pas commander un expert à côté, mais que vous voulez l'écrire vous-même, commencez par développer ces règles par vous-même. Faites un mandat et assurez-vous d'inclure des éléments sur le test/l'optimisation de l'Expert Advisor. Ajoutez également des hypothèses pour tester la qualité de votre stratégie de trading - quels critères utiliserez-vous pour sélectionner les paramètres optimaux, pourquoi considérez-vous ces critères comme importants.

Incluez toutes les étapes de création d'un robot de trading dans les termes de référence - cela aidera à comprendre l'essence de l'algorithme non seulement pour l'interprète, mais aussi pour vous après des semaines, des mois ou des années. Rappelez-vous, le trading algorithmique n'est pas un passe-temps, mais le même chemin de recherche monotone, au cours duquel il est nécessaire de documenter les étapes franchies. Pour moi, plus que pour un programmeur qui écrira un robot pour vous.

Développer les compétences d'un bureaucrate qui aime régler les choses. Vous en aurez certainement besoin. Oui, et les programmeurs aiment les ordres clairs.

Que devrait-il y avoir dans les termes de référence

idée commerciale

Pour une introduction rapide à l'essence d'une stratégie de trading, dédiez le premier paragraphe de votre Ordre Technique à l'idée/hypothèse qu'il contient. Par exemple : "Si le prix s'approche deux fois du niveau de résistance et recule à chaque fois, alors la troisième fois, en règle générale, il le franchit." Ici, vous pouvez joindre un graphique avec des lignes de résistance/support tracées, des indicateurs superposés et des signatures qui illustrent la situation. Pour décrire l'idée, il n'est pas nécessaire de donner des chiffres ou des algorithmes de calcul spécifiques - à ce stade, il n'est pas nécessaire d'expliquer comment nous déterminons :

  • niveau de résistance,
  • panne de niveau,
  • le concept de "généralement".

Un petit niveau d'abstraction au stade initial vous permettra de vous concentrer sur l'idée elle-même, et non sur les détails techniques. Cette méthode vous permet de générer ultérieurement de nombreuses autres variétés de votre stratégie de trading - vous remplacerez simplement un bloc de stratégie par un autre, un indicateur par un autre, ajouterez ou remplacerez des filtres. Dans le même temps, l'idée elle-même ne changera pas, seuls les noms et les valeurs des paramètres d'entrée de votre robot de trading changeront.

De plus, il est nécessaire de donner une description de tous les termes qui sont utilisés dans la description de l'idée. Si la tendance est importante pour la stratégie, décrivez clairement comment elle sera déterminée - sur la base de quel indicateur, comment la direction et la force de la tendance seront déterminées. Les caractéristiques numériques de ces définitions formeront la base des paramètres d'entrée de l' Expert Advisor, et ce sont eux que vous optimiserez ensuite dans le testeur de stratégie. Nommez donc la première section de vos Termes de référence - Idée commerciale.

termes

Pour décrire les termes, nous vous recommandons de créer une section distincte des Termes de référence - Termes. Dans celui-ci, un paragraphe séparé est écrit pour chaque terme, les termes eux-mêmes sont écrits en gras pour mettre en évidence le concept clé de votre stratégie de trading. Si nécessaire, ajoutez une illustration à la description du terme, dans laquelle vous devez montrer le plus nécessaire à la compréhension.

Signaux de trading

Ensuite, vous êtes prêt à compiler la troisième section la plus importante - Signaux de trading - qui décrit dans quelles conditions, les conditions du marché et les lectures des indicateurs, un achat se produit. Pour décrire chaque condition nécessaire à la génération d'un signal d'achat, il faut distinguer un paramètre numérique, dont dépend l'apparition d'un signal. Par exemple, pour une moyenne mobile , il s'agirait du type et de la période de lissage. Ces paramètres importants sont pris en compte dans les paramètres d'entrée du futur Expert Advisor. Décrivez séparément les conditions de vente, même si elles sont simplement à l'opposé des conditions d'achat - parfois des subtilités apparaissent que le programmeur peut comprendre différemment de vous. Par exemple, pour un achat, la condition "Indicateur> 0" est définie - quoi écrire pour une vente ? "Note<0" ou "Note<=0" ?

Même l'idée de trading la plus simple commence très rapidement à acquérir des conditions et des filtres supplémentaires qui confirment la présence d'un signal de trading ou vice versa - interdisent une transaction. Par conséquent, il est important de faire des captures d'écran explicatives pour chaque situation de marché, qui montrent visuellement les indicateurs et les configurations nécessaires. Cela vous permettra de gérer rapidement la situation lorsque votre conseiller a raté un signal de trading apparemment évident ou a soudainement conclu une transaction au mauvais moment.

Captures d'écran et organigrammes

Il existe de nombreux programmes gratuits et pratiques sur Internet pour créer des captures d'écran et des organigrammes. Une petite sélection de conseils pour travailler avec eux est donnée dans l'article Comment rédiger un cahier des charges lors de la commande d'un indicateur . Vous y trouverez également des conseils pour commander un indicateur qui indique avec des flèches sur le graphique les moments où les signaux d'achat et de vente apparaissent. Un tel indicateur, qui fonctionne séparément du conseiller, facilite la vérification et le contrôle du fonctionnement du robot de trading à la fois en ligne et lors des tests visuels.

Durée de vie des signaux/ordres/positions

La deuxième partie importante de la stratégie de trading consiste à quitter une position ouverte et à supprimer les ordres en attente. De plus, les signaux de trading eux-mêmes peuvent également être annulés par le temps ou par la survenance de certains événements. Il est également nécessaire de décrire clairement, comme pour les signaux de trading, dans quelles conditions l'achat/vente sera clôturé, la commande passée sera annulée, lorsque le signal lui-même sera annulé.

Maintien des positions ouvertes et des commandes en attente

Si votre stratégie de trading nécessite de définir des niveaux StopLoss et TakeProfit, veuillez fournir un algorithme de calcul. S'il est nécessaire de remonter/déplacer avec souplesse ces niveaux, il est également nécessaire de décrire les conditions de telles opérations. Les niveaux SL/TP peuvent être modifiés aussi bien à l'ouverture d'une nouvelle barre qu'à chaque tick. Il est nécessaire d'indiquer explicitement ce moment dans les termes de référence et de comprendre la différence dans les modes de test des stratégies de trading. Nous vous recommandons de lire l'article Tester des stratégies de trading sur de vrais ticks .

Où puis-je obtenir les termes de référence si vous ne pouvez pas les rédiger vous-même ?

Un mandat mal rédigé ou son absence effective indique le plus souvent que les règles du système commercial ne sont pas formulées, elles n'existent tout simplement pas. Ce que dans ce cas le client appelle un système de trading, en fait, en règle générale, n'est qu'une idée. Il est impossible de commencer à travailler dans de telles conditions, car très bientôt des nuances inexpliquées ou simplement l'absence d'un algorithme dans certaines situations de marché apparaîtront dans le processus de programmation de l'algorithme. Dans ce cas, le programmeur commence en fait à proposer des options à la place du client.

En conséquence, le Contractant pourra, à ses risques et périls, achever les travaux et remettre un robot de trading au Client. Mais dans ce cas, en plus de perdre du temps à discuter de chaque nouvelle question dans un mandat peu clair, il y a aussi la possibilité que le travail entre en arbitrage. Car lors de l'acceptation et de la vérification d'un tel travail, le Client découvre soudainement que les transactions ne se font pas comme il l'attendait, mais qu'il ne pouvait pas décrire. Et bien sûr, dans ce cas, il reprochera au Contractant d'avoir enfreint certains points du Cahier des Charges et d'avoir mal programmé le robot. L'arbitrage dans de tels cas comprend rapidement la différence de compétence des deux parties et prend sa décision sur la base des termes de référence joints à l'ordonnance. Selon le Règlement Freelance , aucune correspondance à côté avant et pendant l'exécution de la Commande n'est prise en compte :

Lors de l'examen de l'objet du différend dans l'arbitrage, seuls les termes de référence servent de base pour prendre une décision.

Dans la vie, cette option est également possible : vous avez des règles commerciales strictes, mais pour une raison quelconque, vous ne pouvez pas rédiger vous-même les termes de référence. Par exemple, ils ne savent pas comment décrire correctement certaines choses ou ils ont besoin de l'aide d'un spécialiste en mathématiques, en réseaux de neurones, en apprentissage automatique, en programmation, etc. Dans ce cas, vous pouvez commander la création des termes de référence également en Freelance, pour cela, les catégories "Conseil en programmation" ou "Autre" conviennent.

Choisissez l'une de ces deux catégories, nommez-la "Création d'un TOR pour la commande d'un robot de trading" et indiquez le coût initial des travaux, comme vous l'imaginez. Un développeur de système de trading expérimenté vous aidera à formuler correctement les règles de votre stratégie afin qu'elles soient compréhensibles pour un autre programmeur. Dans le même temps, vous devriez pouvoir travailler avec des graphiques, des indicateurs et des objets graphiques afin d'afficher les configurations de vos signaux de trading à l'aide de captures d'écran.

Le programmeur comprendra votre système de trading et vous aidera à rédiger une description de l'algorithme de trading, si possible. Si vous n'arrivez pas à formuler vous-même certains concepts (par exemple, « impulsion » ou « rebond de niveau »), il peut vous donner des idées toutes faites basées sur son expérience. En règle générale, toute situation sur le marché peut être décrite de manière logique (puis programmatique) avec une certaine liberté d'interprétation. Et cette variation peut toujours s'exprimer par un certain paramètre, que vous optimiserez ensuite dans votre Expert Advisor.

Il n'y a pas de modèles idéaux, puisque le marché, d'une part, ne se répète pas, et d'autre part, des situations similaires peuvent toujours se retrouver dans l'histoire. Le résultat de votre travail commun devrait être un cahier des charges prêt pour commander un robot de trading en fonction de votre stratégie.

Quels termes utiliser

... il vaut mieux décrire des termes qui ne sont pas sûrs pour se comprendre

Dans le TK lui-même, mettez en surbrillance les termes en gras - laissez l'interprète y prêter attention et posez une question si quelque chose n'est pas clair

Vous ne pouvez pas envoyer vers d'autres sources (sites web/livres, etc.) Tout doit être décrit ici et maintenant, pas de "je vous expliquerai plus tard sur Skype"

Quoi écrire dans une description de poste en Freelance

... seule une formulation générale est nécessaire - tendance, contre-échange. pour franchir les niveaux (comment les niveaux sont définis en bref), y a-t-il des indicateurs/action sur les prix/utilisation de ticks

Idée générale d'une stratégie de trading

... on trade selon la tendance, on définit la tendance de cette manière, on rentre dans un rollback, on définit un rollback de telle ou telle manière, on ne trade pas le soir et le matin

Description de la configuration pour attendre un signal

... il est nécessaire de former un appartement avec une évasion ultérieure / ou d'attendre la fin de la session européenne et de ne recevoir des signaux que dans le sens de son mouvement

Description des signaux

... Paramètres techniques de la description - tendance / pullback / panne - tout est strictement formalisé

Il est préférable de déboguer les signaux d'achat et de vente séparément en premier

Il serait préférable que le conseiller mette des étiquettes / des objets de signalisation sur le graphique

Il est préférable que les indicateurs de signal soient fabriqués séparément

Durée de vie du signal

... combien de temps le signal est valide - en bars / heures / jusqu'à la fin de la session / jour

Passer des commandes et ouvrir des positions

... y a-t-il des fonctionnalités, par exemple, nous ne définissons pas SL / TP tout de suite,

ou combien de tentatives nous faisons pour entrer sur le marché,

ou définir différents oredermagic / ordercomment en fonction de l'heure / de la configuration / du modèle

autre chose

Maintien d'une position/ordre de trading

... y a-t-il un stop suiveur ou non

quand allumer TS

déplaçons-nous les commandes en attente derrière/contre le prix

suivre le profit / perte actuel sur une position ouverte

autre chose

Annulation d'un ordre et clôture d'une position

... supprimer les ordres par temps/nombre de mesures/fin de période/apparition du signal inverse/perte de réglage

... clôturer la position par temps/nombre de barres/fin de période/bénéfice cumulé/apparition du signal opposé/configuration

autre chose

Calcul du lot pour passer une commande

.... de l'équilibre

fixé

du bénéfice accumulé

sur la base des résultats des N dernières transactions

du risque (distance SL)

autre chose

Gestion des erreurs de trading et de l'état de l'environnement

... journaux détaillés lors de l'envoi d'ordres commerciaux

traitement de redémarrage du terminal/de la connexion/du serveur

retour d'information via messagers/email

La différence entre le trading à l'ouverture du bar et à l'intérieur du bar

... des signaux peuvent disparaître et apparaître pendant la durée de vie de la barre

Stratégies de tick/scalping

... vous devez avoir une bonne idée de ce que c'est, moins il y a de TakeProfit/StopLoss en points, plus la stratégie est critique pour les spreads/commissions/retards du réseau/qualité de l'historique disponible/vitesse du robot lui-même.

Toute détérioration des conditions peut tuer la stratégie

Grilles, martingales, moyenne et les inconvénients de ces améliorations

... Quels sont-ils, pourquoi sont-ils populaires et dans quelle mesure peuvent-ils aider temporairement à étendre la stratégie. Le risque augmente, bien qu'il puisse allonger la durée de vie d'une mauvaise stratégie

Ce qu'il faut rechercher lors du choix d'un entrepreneur

... des questions de fond

Ne prétend pas impressionner

Donne des délais clairs

Indique des endroits peu clairs dans le mandat immédiatement, et non après 2 mois de discussion

Un bon programmeur apprécie son temps et votre temps - c'est pourquoi il aime un TOR cohérent et bien développé

Ce qu'un programmeur ne peut pas faire pour vous

Transformez une stratégie perdante en un robot rentable

Optimiser et identifier les éventuelles lacunes

Écrivez un programme sans erreurs - elles le seront toujours. Les trouver et les décrire de manière compréhensible est votre tâche.


 
Rashid Umarov:

...

Captures d'écran et organigrammes

Il existe sur Internet de nombreux programmes gratuits et pratiques pour créer des captures d'écran et des organigrammes. ...

Les organigrammes sont la partie la plus inutile, la plus longue et la plus irréalisable des TdR.

Pour comprendre cela, vous pouvez faire une petite expérience très simple. Les développeurs de services indépendants devraient se voir confier une tâche : "Réaliser un organigramme pour dessiner un indicateur MA" - et ensuite l'évaluer selon deux critères : 1) l'exactitude et 2) l'intelligibilité.

 
Andrey F. Zelinsky:

L'organigramme est la partie la plus inutile et pratiquement irréalisable du cahier des charges.

Pour comprendre cela, vous pouvez faire une petite expérience très simple. Les développeurs de services indépendants devraient se voir confier une tâche : "Réaliser un organigramme pour dessiner un indicateur MA" - et ensuite l'évaluer selon deux critères : 1) l'exactitude et 2) la lisibilité.

Nous ne parlons pas ici d'un organigramme de l'algorithme de calcul, mais d'un organigramme de la séquence des actions et des relations entre les différents blocs du programme - prise de décision, gestion des positions, filtres, etc.

 
Aleksey Vyazmikin:

Il ne s'agit pas d'un schéma fonctionnel d'un algorithme de calcul, mais plutôt d'un organigramme de la séquence des actions et des relations entre les différents blocs du programme - prise de décision, gestion des positions, filtres, etc.

Pouvez-vous imaginer le niveau d'un client qui, comprenant au moins parfaitement les événements du terminal client, sera capable de décrire habilement "les séquences d'actions et les interrelations des différents blocs de programme - prise de décision, gestion des positions, filtres, etc.

Et puis, vérifiez tout cela du point de vue de la mise en œuvre du programme - sinon, pourquoi faire un organigramme ?

Un tel client ne sera pas en mesure de voir le nom du développeur, non seulement avant l'accord, mais aussi après qu'il ait été conclu (si cela se produit jamais avec un tel client d'entrée de gamme) -- "celui qui multiplie les connaissances multiplie les peines" (Ecclésiaste 1:17-18).


p.s. Encore une fois. Pour vérifier ma thèse sur l'inutilité pratique de faire un organigramme (quelconque) est très simple.

Il suffit de fixer une tâche aux développeurs de services freelance - écrire un organigramme pour l'indicateur MA.

Thèse № 2 - pas plus de 5-10% feront l'affaire.


p.s.2 Question 1 - en cours d'informatique (à l'école ou à l'université) qui (quel pourcentage) a pensé que faire un organigramme était utile ?

Question 2 -- qui (quel pourcentage) a réalisé un organigramme plus compliqué que, par exemple, "rechercher l'élément maximum dans un tableau à N dimensions" au cours de ses travaux pratiques.

 
Andrey F. Zelinsky:

Pouvez-vous imaginer le niveau du client qui, au minimum, comprend parfaitement les événements du terminal client, sera capable de décrire de manière qualifiée "les séquences d'actions et les interconnexions des différents blocs de programme - prise de décision, gestion des positions, filtres, etc.

Et puis, vérifiez tout cela du point de vue de la mise en œuvre du programme - sinon, pourquoi faire un organigramme ?

Un tel client ne sera pas en mesure de voir le nom du développeur, non seulement avant l'accord, mais aussi après qu'il ait été conclu (si jamais cela se produit avec ce niveau de client) -- "qui multiplie la connaissance multiplie la peine" (Ecclésiaste 1:17-18).

Un schéma fonctionnel est utile, au moins pour tester votre logique. Oui, je fais des organigrammes comme concept ou lorsque je développe un algorithme compliqué, le plus souvent sur papier.

Une EA n'est pas un produit fini, elle sera toujours sujette à révision, tant que le client est intéressé par son idée, donc ce client a intérêt à prendre soin des révisions possibles, et pour cela le code doit avoir une certaine structure. Je l'ai compris une fois après avoir commandé probablement 5 EA indépendants. Le niveau le plus élevé d'idiotie est atteint lorsque la logique de la prise de décisions commerciales est emballée dans les fonctions commerciales - il n'est pas étonnant qu'un tel EA ne soit pas sujet à révision, mais doive être retravaillé, surtout si le développeur est une autre personne.