Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Oooh, merci beaucoup, avec autant d'informations on peut faire beaucoup de choses...
Je suis sur le point de partir en voyage d'affaires, et je pense donc approfondir le matériel qui m'a été donné, mais le codage... Je pourrais aussi le faire sur une feuille de papier, ce serait un bon outil d'entraînement...
Salutations, Roman
Il ne s'agit que d'une infime partie de ce que vous devez savoir, un grain de sable dans la mer de code des programmes. Mais il ne suffit pas de savoir quoi utiliser, où l'utiliser et quand l'utiliser !
Si vous vous basez sur le nom du sujet"Création de robots", vous devez avoir une stratégie de trading rentable (ou ce que vous voulez), et seulement ensuite étudier le langage de programmation MQL5.
À propos, le MetaEditor du terminal MT5 dispose de l'assistant MQL5, à l'aide duquel vous pouvez facilement obtenir le code du conseiller expert prêt à l'emploi en utilisant les modules de signaux de trading, qui ont été créés à leur tour sur la base d'indicateurs populaires, sans aucune connaissance du langage de programmation. Avec l'aide de l'Assistant MQL5, vous pouvez rapidement construire un Conseiller Expert et tester votre stratégie, si elle est basée uniquement sur des indicateurs. Voici le lien vers l'article sur la construction d'un robot de trading à l'aide de l'assistant MQL5 : https://www.mql5.com/ru/articles/171.
Sincèrement, Vladimir.
57 et un peu. Et la réponse à votre question sur la façon dont est déjà connue, et je cite :
"Roman Zhilin:Non, il n'y a pas de processus dans le freelancing, que vous pouvez développer vous-même selon vos besoins. Et la seule personne à blâmer pour mes erreurs sera moi-même, et non un programmeur tiers. Vous devrez donc apprendre, apprendre, coder, trébucher, améliorer vos stratégies et apprendre à nouveau".
Sincèrement, Vladimir.
Une bonne sélection, merci.
Cela me rappelle le testament de Lénine :) Mais c'est vrai, il n'est jamais trop tard pour apprendre.
Pour comprendre le type de conseiller expert dont vous avez besoin, vous devez commencer par y travailler.
Ajout de deux boutons supplémentaires pour fermer une position
... je ne comprends toujours pas le sens de la phrase constante commençant par le mot"retours".
Qui revient, à qui revient-il, où revient-il, pourquoi revient-il? Je n'arrive toujours pas à comprendre...
Je peux peut-être expliquer.
Supposons que vous ayez un symbole (symbole, par exemple EUR/USD) qui oscille à l'écran et qu'un programme/conseiller/robot fonctionne dans le terminal. Le robot exécute le code que vous lui avez fourni. Et ce code a ces chaînes :
"orderSelect" est une fonction commerciale, elle sélectionne un ordre déjà ouvert pour continuer à travailler avec lui.//Dans cet exemple, si la sélection des ordres échoue (...==false), l'exécution de la fonction " if " est interrompue par la commande " break ".
Suivant. Nous avons sélectionné l'ordre à l'aide de la fonction commerciale OrderSelect. Maintenant, nous travaillons avec elle, avec un ordre spécifique. Pour simplifier, nous prendrons comme condition que nous n'ayons que deux ordres ouverts.
Ensuite, nous entrons une variable OpenPrice [type double] et nous lui attribuons la valeur du prix auquel l'ordre que nous avons sélectionné a été ouvert (section de code OpenPrice=OrderOpenPrice() ; ).
Voici une explication pour vous de ce que signifie le RETOUR d'un paramètre. La fonction OrderOpenPrice renvoie la valeur du prix actuel de l'instrument. En d'autres termes, après que le programme a demandé le prix actuel au serveur, il vous a renvoyé la valeur de ce prix et a affecté cette valeur à une variable.
Indicateur MACD ajouté
Ajout de l'indicateur MACD
Les bases sont là - maintenant, tout dépend de vous.
Je pourrais être en mesure d'expliquer.
Disons que vous avez actuellement un symbole (par exemple EUR/USD) qui fluctue sur votre écran et un programme/conseiller/robot qui fonctionne dans le terminal. Le robot exécute le code que vous lui avez fourni. Et ce code a ces chaînes :
"orderSelect" est une fonction commerciale, elle sélectionne un ordre déjà ouvert pour continuer à travailler avec lui.//Dans cet exemple, si la sélection des ordres échoue (...==false), l'exécution de la fonction " if " est interrompue par la commande " break ".
Suivant. Nous avons sélectionné l'ordre à l'aide de la fonction commerciale OrderSelect. Maintenant, nous travaillons avec elle, avec un ordre spécifique. Pour simplifier, nous prendrons comme condition que nous n'ayons que deux ordres ouverts.
Ensuite, nous entrons une variable OpenPrice [type double] et nous lui attribuons la valeur du prix auquel l'ordre que nous avons sélectionné a été ouvert (section de code OpenPrice=OrderOpenPrice() ; ).
Voici une explication pour vous de ce que signifie le RETOUR d'un paramètre. La fonction OrderOpenPrice renvoie la valeur du prix actuel de l'instrument. C'est-à-dire qu'après que le programme ait demandé le prix actuel au serveur, il vous a renvoyé la valeur de ce prix et a affecté cette valeur à une variable.
Merci de votre précision. J'espère que cela aidera également Roman à apprendre le langage de programmation.
Salutations, Vladimir.
Bonjour ! Eh bien, peut-être que quelqu'un peut m'aider aussi...
Je m'occupe actuellement des mécanismes d'ouverture/fermeture des ordres et j'ai rencontré un problème avec la fermeture des positions ouvertes.
Le code est simple. L'idée de l'algorithme est de dessiner la MA (moyenne mobile) avec une période de 100 sur le graphique. Si la bougie précédente [1] s'est ouverte au-dessus de la MA, et a clôturé en dessous de la MA, alors la bougie suivante [0] ouvre un ordre de VENTEpour vendre.
//(Les conditions d'achat sont inversées. Je ne les explique pas)
Pour la clôture de l'ordre, les conditions suivantes doivent être remplies : le prix actuel a dépassé, par rapport au prix d'ouverture de l'ordre, la valeur fixée de points, par exemple 40.
Exemple : Un lot est ouvert à Bid= 1.20045, il devrait clôturer à Ask= 1.20005.
Le code d'ouverture et de fermeture est emballé dans 2 fonctions correspondantes qui, à leur tour, sont appelées par la fonction OnTick(). En fait, à chaque tick la condition de clôture devrait être vérifiée, mais en fait le prix peut tomber en dessous du niveau spécifié (niveau de clôture) mais l'ordre ne sera pas clôturé. Les captures d'écran et le code sont joints.
Bonjour ! Eh bien, peut-être que quelqu'un peut m'aider aussi...
Je m'occupe actuellement des mécanismes d'ouverture/fermeture des ordres et j'ai rencontré un problème avec la fermeture des positions ouvertes.
Le code est simple. L'idée de l'algorithme est de dessiner la MA (moyenne mobile) avec une période de 100 sur le graphique. Si la bougie précédente [1] s'est ouverte au-dessus de la MA, et a clôturé en dessous de la MA, alors la bougie suivante [0] ouvre un ordre de VENTEpour vendre.
//(Les conditions d'achat sont inversées. Je ne les explique pas)
Pour la clôture de l'ordre, les conditions suivantes doivent être remplies : le prix actuel a dépassé le prix d'ouverture de l'ordre de la valeur fixée de points, par exemple 40.
Exemple : Un lot est ouvert à Bid= 1.20045, il devrait clôturer à Ask= 1.20005.
Le code d'ouverture et de fermeture est emballé dans 2 fonctions correspondantes qui, à leur tour, sont appelées par la fonction OnTick(). En fait, à chaque tick, la condition de clôture devrait être vérifiée, mais en fait le prix peut tomber en dessous du niveau spécifié (niveau de clôture) mais l'ordre ne sera pas clôturé. Je joins les captures d'écran et le code.
Il existe un fil de discussion sur le forum à l'adresse https://www.mql5.com/ru/forum/160683/page767#comment_10725713
Vous pourriez obtenir de l'aide plus rapidement.
Sincèrement, Vladimir.