Moins de code, plus d'action... l'écriture d'un EA - page 3

 

C'est parti :

Maxim Kuznetsov:

Je vais essayer (ou tenter, si cela vous intéresse) de créer un cadre pour les EA. Aussi approprié que possible pour les choses simples et ne nécessitant pas de connaissances substantielles de la part du programmeur appliqué.

Contrairement à la pratique acceptée localement, laconception sera menée de haut en bas. En partant du cas d'utilisation souhaité par l'utilisateur, et non des principes fondamentaux de l'ingénierie du terminal.

En d'autres termes, vous déclarez la conception non pas à partir de la base technique du terminal et, avec la première liste, vous êtes profondément lié à la base technique des terminaux. Vous êtes tellement ligoté que vous utilisez même des macros de compilation conditionnelle, car vous ne pouvez pas vous en passer, même au plus haut niveau de l'utilisateur.
 
Maxim Kuznetsov:

En principe, vous pouvez utiliser une entrée comme celle-ci dans GetData OnCrossSignal. Potentiellement, vous pourriez même écrire des scripts :-) Mais chaque chose en son temps... Le traitement des données est construit comme une table électronique.

C'est mieux, vous commencez à comprendre ce que je veux vous dire. Si vous déclarez une approche de haut en bas, commencez par le haut. C'est pourquoi "chaque chose en son temps" ne fonctionne plus. C'est la première priorité.

 
 

L'EasyLanguage est-il en train d'être inventé ? Comme tous les conseillers MT4 que j'ai vus, ils sont tous écrits par l'intermédiaire de l'API MT4, sans wrappers complexes. Apparemment, c'est plus simple et plus fiable, puisque le code est très concis.

Si, par exemple, nous utilisons un tel wrapper MT5 pour le trading, ou un tel pour MAX, alors cela ne serait facile que pour l'auteur de ces wrappers.

 
fxsaber:

L'EasyLanguage est-il en train d'être inventé ? Comme tous les conseillers MT4 que j'ai vus, ils sont tous écrits par l'intermédiaire de l'API MT4, sans wrappers complexes. Apparemment, c'est plus simple et plus fiable, puisque le code est très concis.

Si, par exemple, nous utilisons tel wrapper MT5 pour le trading, ou tel autre pour MAX, alors cela ne sera facile que pour l'auteur de ces wrappers.

Je suis d'accord, et le développement et le soutien à l'avenir est important pour utiliser et apprendre quelque chose. Exemple idiot mais quand même, mql6 ou un nouveau type d'ordres vont sortir, le but était de gérer ces enveloppes si vous devez toujours lire le mana sur ce site.
 
Aleksei Beliakov:
Je suis d'accord, et le développement et le soutien à l'avenir sont importants pour utiliser et apprendre quelque chose. Exemple idiot mais quand même, mql6 va sortir ou de nouveaux types de commandes, le sens était de faire face à ces enveloppes si vous devez encore lire le mana sur ce site.
Tu lis du mana, tu bois du pita, tu manges de la nourriture...
Il est très facile d'ajouter de nouveaux objets à une structure bien organisée tout en fumant des poulets et en écoutant les rumeurs :)
 
Artyom Trishkin:.
Il est très facile d'ajouter de nouveaux objets à une structure bien organisée.
Ai-je dit le contraire ?
 
Vasiliy Sokolov:

Eh bien, vous l'écrivez correctement. Mais l'utilisateur comprend beaucoup mieux un tel pseudocode :

De plus, il est beaucoup plus difficile de le faire fonctionner sous cette forme particulière (procédurale, je remarque), mais c'est quand même possible. C'est ce que l'on devrait essayer de faire : rendre les instructions au niveau de l'utilisateur aussi simples et abstraites que possible. Dans votre cas, l'utilisateur doit spécifier des macros de compilation conditionnelle, des fonctions spécifiques pour le calcul des moyennes et d'autres détails techniques qu'il ne peut tout simplement pas gérer.

if(SMA(Close, 12) > SMA(Close, 24))
   BUY();
else
   SELL();

Et quel est le problème pour l'implémenter ? Vous écrivez une classe universelle telle que conçue par TC, puis vous l'incluez avec un inluder et en dessous, un autre inluder qui définit où nous enveloppons les appels de méthode :

#define  BUY()   EA.SendOrder(cmdbuy)
#define  SELL()  EA.SendOrder(cmdsell)

L'implémentation est cachée à l'utilisateur, mais la convivialité sera nécessaire.

donc

 
Pas de commerce s'il vous plaît et pas de liens commerciaux avec des tiers.
 
Vladimir Karputov:
Pas de commerce s'il vous plaît.
Pourquoi avez-vous retiré le post sur la prochaine étape ?