Mon approche. Le noyau est le moteur. - page 129
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
Travaillez avec la version du moteur que vous avez jointe à titre de démonstration.
C'est assez simple. Si votre approche fonctionne comme je le pense, alors je ne vois aucun problème à utiliser une table dynamique ou à mettre à jour les valeurs de position via une minuterie. Peter, pourquoi as-tu fait un gâchis dès le début ?)
Vasiliy, l'essentiel est de ne pas tirer de conclusions hâtives. Ni pour vous ni pour moi)).
Je vais mettre mes cinq cents. Je n'ai pas le temps pour ça en ce moment. Mais il existe une idée pour mettre en place un panneau similaire à la maison. Donc je pense qu'il ne faut pas seulement faire un cross pour fermer la position (bien que ce soit nécessaire), mais aussi faire une marque, spécifier le lot et faire cette fermeture en gros. Cela permettra une plus grande flexibilité dans le travail avec les postes, ainsi que leur fermeture partielle.
Je peux le faire.
Peter, créez une boucle for dans le timer, qui passerait par les ordres ouverts et enverrait les changements dans la liste des ordres à votre table. De même, faites en sorte que le bénéfice de l'ordre dans votre tableau change également de manière dynamique.
Vasily, veuillez coller ce code dans le fichier EA de test (les fonctions tick et timer à la place des anciennes)
Et aussi, vous devez remplacer la ligne 68 et la ligne 114 dans le fichier de connexion externe.
C'est un peu mélangé. Au lieu deOrderOpenTime(), mettezOrderOpenPrice().
Cela devrait fonctionner correctement. Vérifiez-le.
Eh, ce n'est pas la chose canonique à faire - séparer les données (modèle) des vues et utiliser le modèle observateur pour abonner des vues spécifiques aux changements de modèle ou à des champs de modèle spécifiques.
Mais cela exigerait de l'utilisateur d'une telle bibliothèque qu'il pense de manière orientée objet et qu'il fasse entrer ses données d'AE dans la structure objet proposée (oui, oui, vous devez apprendre les méthodes de cette bibliothèque/ce cadre pour construire une interface). Et beaucoup de gens ne savent rien de la POO.
Mais Pierre dit que vous n'avez rien à apprendre ! Il vous suffit de placer vos variables globales dans le flux de gestionnaires générés et l'interface fonctionnera. Ce n'est pas "fabrique des planches pour une étagère, relie-les selon les instructions et dispose les livres", mais "dessine ton étagère et dispose tes livres dessus". Code Less Do More ((c)/JQuery si vous êtes)
Il est clair qu'il y a un problème de positionnement du produit. Et si c'est le cas ? Hé, le programmeur ! Vous voulez gagner de l'argent ? Vous pouvez vendre ce qui vous semble bon ! Prenez une centaine d'Expert Advisors sans interface et vendez-les avec interface. hahaha ;))
Il y a un inconvénient du fichier d'interface, dans lequel les gestionnaires des contrôles "ressortent" - c'est statique. Je vais devoir me creuser les méninges et créer un nouveau type de gestionnaire qui agirait comme un modèle et accepterait les données de l'utilisateur/du programme via des paramètres d'entrée.
Eh, pour ne pas faire le canon...
C'est bon, Rehtag fera Konowam. )))
Eh, ce n'est pas la chose canonique à faire - séparer les données (modèle) des vues et utiliser le modèle d'observateur pour abonner des vues spécifiques aux changements de modèle ou aux champs de modèle spécifiques.
Mais cela exigerait de l'utilisateur d'une telle bibliothèque qu'il pense en termes d'objet et qu'il fasse entrer ses données d'AE dans la structure d'objet proposée (oui, oui, vous devez apprendre les méthodes de cette bibliothèque/ce cadre pour construire l'interface). Et beaucoup de gens ne savent rien de la POO.
Mais Pierre dit que vous n'avez rien à apprendre ! Il vous suffit de placer vos variables globales dans le flux de gestionnaires générés et l'interface fonctionnera. Ce n'est pas "fabrique des planches pour une étagère, relie-les selon les instructions et dispose les livres", mais "dessine ton étagère et dispose tes livres dessus". Code Less Do More ((c)/JQuery si vous êtes)
Il est clair qu'il y a un problème de positionnement du produit. Et si c'est le cas ? Hé, le programmeur ! Vous voulez gagner de l'argent ? Vous pouvez vendre ce qui vous semble bon ! Prenez une centaine d'Expert Advisors sans interface et vendez-les avec interface. hahaha ;))
Il y a un inconvénient du fichier d'interface, dans lequel les gestionnaires des contrôles "ressortent" - c'est statique. Je vais devoir me creuser les méninges et créer un nouveau type de gestionnaire qui agirait comme un modèle et accepterait les données de l'utilisateur/du programme via des paramètres d'entrée.
Au début, j'ai pensé que c'était un autre lot de négativité, mais ensuite je l'ai mieux lu et il s'est avéré que non. Juste des émotions.
Ce constructeur est destiné aux personnes qui sont vraiment passionnées par le trading algorithmique. Il est logique qu'ils ne perdent pas leur temps à étudier les bibliothèques de graphes mais qu'ils créent simplement un tel code :
Et prends une fenêtre avec une table à manger.
Dans le fichier d'interface, l'utilisateur obtiendra ce code :
Et il déterminera ce qu'il faut faire et comment le faire sur les événements de clic de bouton.
Le prochain tableau dynamique sera encore plus intéressant. Les cellules comporteront des champs de saisie, des listes déroulantes, des cases à cocher, des boutons, des boutons radio, des barres de progression et des champs de saisie avec des boutons +/-.
La partie la plus délicate est le dynamisme d'une telle table. Après tout, l'accès aux éléments et l'obtention de leurs valeurs ne sont pas liés à des paramètres spécifiques, mais dépendent de la disposition des lignes.