Je suis complètement perdue - page 2

 
zortharg: Je ne demandais pas à quelqu'un de produire quelque chose de valeur commerciale pour moi. Je ne demande pas à quelqu'un de "coder ma méthode POUR moi ", WHRoeder. J'ai juste besoin d'un point de départ.
  1. On aurait dit que c'était le cas.
    zortharg: Je demandais si quelqu'un voulait en écrire un.
  2. Je vous ai donné trois liens pour commencer : apprendre à coder beaucoup de points de départ.
 
zortharg:

Je ne demandais pas à quelqu'un de produire quelque chose de valeur commerciale pour moi. Je ne demande pas à quelqu'un de "coder ma méthode POUR moi", WHRoeder. J'ai juste besoin d'un point de départ. Je peux peut-être trouver quelque chose à partir du lien que vous avez mis dans la rubrique "recherche", mais j'aimerais vraiment recevoir un simple "voici ce qu'il faut". Je ne sais pas à quoi devrait ressembler le programme. Je ne sais pas ce qui est strictement nécessaire pour être dans le programme. Si j'essaye de le faire moi-même sans aucun point de référence, je vais juste avoir des erreurs de compilation parce que je ne vais même pas savoir ce qu'il manque.


Regardez ici
 

Je suis sur le point d'assembler les pièces du puzzle. Mais je ne suis pas tout à fait là. Il y a des choses qui n'ont pas de sens. Par exemple :

https://docs.mql4.com/array/ArrayCopySeries

Cela n'a aucun sens. Que se passe-t-il si le tableau que j'ai déclaré n'a pas la même taille ? Il est pratiquement garanti qu'il ne le sera PAS. Je ne veux pas sortir de la fin du tableau pour pouvoir déclarer que le tableau est plus grand que ce que je pense qu'il sera un jour, mais que se passera-t-il si jamais il est plus grand ? Et s'il est plus petit ? Si le "tableau" a plus d'entrées que les données de la monnaie, alors les entrées restantes sont-elles remplies de 0 ? Et que se passe-t-il pour les tableaux doublement indexés ? Par exemple, supposons que je déclare que le tableau a une taille de [16384][6] et que les données que je veux copier dans [0:16383,0] ont une longueur de 3000. Comment dois-je m'y prendre ? Aurais-je besoin d'une autre variable de tableau pour définir les données relatives à la monnaie, qui serait une variable à indexation unique (de taille 16384 seulement, et non de taille 16384 x 6) et dont les 3000 premières entrées seraient écrites avec les données relatives à la monnaie et les entrées 3000 à 16383 seraient écrites avec 0, et ensuite c'est à moi de déplacer le contenu de la variable temporaire dans le tableau de taille [16384][6] ? C'est le casse-tête auquel je suis confronté en ce moment.

 
zortharg:

Je suis sur le point d'assembler les pièces du puzzle. Mais je ne suis pas tout à fait là. Il y a des choses qui n'ont pas de sens. Par exemple :

https://docs.mql4.com/array/ArrayCopySeries

Cela n'a aucun sens. Que se passe-t-il si le tableau que j'ai déclaré n'a pas la même taille ? Il est pratiquement garanti qu'il ne le sera PAS. Je ne veux pas sortir de l'extrémité du tableau pour pouvoir déclarer que le tableau est plus grand que ce que je pense qu'il sera jamais, mais que se passera-t-il s'il est toujours plus grand ? Et s'il est plus petit ? Si le "tableau" a plus d'entrées que les données de la monnaie, alors les entrées restantes sont-elles remplies de 0 ? Et que se passe-t-il pour les tableaux doublement indexés ? Par exemple, supposons que je déclare que le tableau a une taille de [16384][6] et que les données que je veux copier dans [0:16383,0] ont une longueur de 3000. Comment dois-je m'y prendre ? Aurais-je besoin d'une autre variable de tableau pour définir les données relatives à la monnaie, qui serait une variable à indexation unique (de taille 16384 seulement, et non de taille 16384 x 6) et dont les 3000 premières entrées seraient écrites avec les données relatives à la monnaie et les entrées 3000 à 16383 seraient écrites avec 0, et ensuite c'est à moi de déplacer le contenu de la variable temporaire dans le tableau de taille [16384][6] ? C'est le casse-tête auquel je suis confronté en ce moment.

Je pense que vous devriez relire les docs. Il est écrit, et je cite : " Iln'y a pas de réelle allocation de mémoire pour les tableaux de données et rien n'est copié".

Il définit simplement une référence et vous ne définissez pas la taille du tableau de destination. Il suffit de le déclarer. Regardez à nouveau l'exemple dans la documentation. Il n'y a pas de taille dans la déclaration.

datetime daytimes[];
ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
 

Je dois donc télécharger les prix historiques une par une avec iclose ? https://docs.mql4.com/series/iClose Le problème, tel que je le vois, c'est que les données peuvent être mises à jour pendant que je suis en train de les télécharger. Il serait très agréable de pouvoir télécharger l'ensemble des données en un seul bloc. Je suppose que je peux télécharger l'heure avec iTime, puis utiliser iclose, puis utiliser iTime à nouveau sur le même index et si elle a changé, alors un nouvel intervalle de temps de barre a commencé et je dois revenir en arrière d'un numéro d'index. Est-ce que mon raisonnement est correct ou y a-t-il quelque chose que je ne comprends pas ?

 

Je ne pense pas que nous parlions la même langue. D'abord, vous posez des questions sur la fonction ArrayCopySeries, maintenant vous voulez télécharger toutes les données via iClose.

Il n'est pas nécessaire de télécharger toutes les données - elles sont là, toujours disponibles, à tout moment où vous en avez besoin.

Qu'est-ce que vous essayez de faire ?

Pourquoi avez-vous besoin de copier toutes les données d'un tableau dans un autre tableau, si vous pouvez déjà y accéder totalement depuis le premier ?

Essayez-vous de transmettre les informations à une DLL externe pour traitement ? Si c'est le cas, vous devez utiliser la fonction "CopyRates" - https://www.mql5.com/en/docs/series/copyrates.

Dans tous les autres cas, vous n'avez pas besoin de télécharger toutes les données. Elles sont déjà accessibles via les méthodes normales.

 

J'ai décidé de relire votre premier message en détail pour voir ce que vous essayez d'accomplir et je me suis rendu compte que vous vous y prenez complètement mal.

Vous n'avez pas besoin de télécharger toutes ces données dans la RAM comme vous l'avez expliqué. L'environnement MetaTrader l'a déjà fait pour vous. Tout ce que vous avez à faire est d'y accéder de la manière habituelle.

Je vous suggère de regarder les nombreux exemples d'EA ici sur le site dans la base de code ou le livre d'introduction à la programmation MQL4, ici aussi sur ce site.

Lisez également les différents articles expliquant comment on peut aborder l'écriture d'une EA :

De cette façon, vous pourrez apprendre comment cela se fait au lieu d'essayer de "réinventer la roue".

 

Personne ne m'a donné la moindre idée de comment faire quoi que ce soit, ils m'ont dit de me débrouiller tout seul ou de payer quelqu'un d'autre pour le faire, lisez les premiers messages de ce fil et vous verrez ça. L'audace des gens sur ce forum ! Ils refusent de me dire quoi que ce soit et ensuite ils se moquent de moi parce que je ne connais pas déjà les "méthodes normales". Oh ! Dites-le ! Mais ça n'a pas l'air idéal de toute façon. Ce que j'essaie de faire, c'est de télécharger les données du marché des devises dans la mémoire vive de mon ordinateur, d'effectuer des calculs sur ces données, puis de faire en sorte que mon ordinateur télécharge des ordres d'achat et de vente pour négocier sur le marché des devises. C'est ce que je veux faire. Si ce n'est pas mon ordinateur qui effectue les calculs, alors qu'est-ce qui les effectue ? Un ordinateur distant ? Je ne peux pas envoyer et recevoir des données sur Internet à chaque fois que je veux accéder à un prix historique. Si je veux accéder à ce prix 1000 fois différentes au cours du processus de calcul, le temps qu'il faudrait pour y accéder ralentirait les calculs par un facteur de plusieurs milliers ou millions. C'est une des raisons pour lesquelles il y a de la RAM dans l'architecture des ordinateurs, les lectures et les écritures sur le disque dur prennent beaucoup plus de temps. C'est le même principe ici, je dois stocker les données dans un tableau sur mon ordinateur parce que faire une requête à travers l'internet chaque fois que je veux accéder à un élément d'information particulier est mauvais.

Quelle idée avez-vous de ce qu'un robot de trading est censé faire ?

 
zortharg:

Personne ne m'a donné la moindre idée de comment faire quoi que ce soit, ils m'ont dit de me débrouiller tout seul ou de payer quelqu'un d'autre pour le faire, lisez les premiers messages de ce fil de discussion et vous le verrez. L'audace des gens sur ce forum ! Ils refusent de me dire quoi que ce soit et ensuite ils se moquent de moi parce que je ne connais pas déjà les "méthodes normales". Oh ! Dites-le ! Mais ça n'a pas l'air idéal de toute façon. Ce que j'essaie de faire, c'est de télécharger les données du marché des devises dans la mémoire vive de mon ordinateur, d'effectuer des calculs sur ces données, puis de faire en sorte que mon ordinateur télécharge des ordres d'achat et de vente pour négocier sur le marché des devises. C'est ce que je veux faire. Si ce n'est pas mon ordinateur qui effectue les calculs, alors qu'est-ce qui les effectue ? Un ordinateur distant ? Je ne peux pas envoyer et recevoir des données sur Internet à chaque fois que je veux accéder à un prix historique. Si je veux accéder à ce prix 1000 fois différentes au cours du processus de calcul, le temps qu'il faudrait pour y accéder ralentirait les calculs par un facteur de plusieurs milliers ou millions. C'est une des raisons pour lesquelles il y a de la RAM dans l'architecture des ordinateurs, les lectures et les écritures sur le disque dur prennent beaucoup plus de temps. C'est le même principe ici, je dois stocker les données dans un tableau sur mon ordinateur parce que faire une requête à travers l'internet chaque fois que je veux accéder à un élément d'information particulier est mauvais.

Quelle idée avez-vous de ce qu'un robot de trading est censé faire ?

Ce n'est pas comme ça que l'environnement MetaTrader et MQL fonctionne ! Comme je l'ai dit ! Ne retéléchargez pas les données dans la RAM car cela a déjà été fait pour vous. Arrêtez d'essayer de nous apprendre comment coder en MQL4. C'est vous qui devez mettre de côté vos idées préconçues sur la façon d'écrire le code et apprendre d'abord quels outils et quel environnement vous avez à portée de main.

Si vous ne voulez pas que les gens se moquent de vous, alors ne soyez pas paresseux et LISEZ LA DOCUMENTATION (du début à la fin). Ce site contient de nombreux liens vers de la documentation et des exemples de code.

Lorsque j'ai débuté, je n'ai pas demandé d'aide sans d'abord me familiariser avec l'environnement. J'ai pris le temps de lire le livre, la documentation, et les très nombreux exemples sur ce site et j'ai appris comment faire.

Vous n'êtes pas un bébé et n'avez pas besoin d'être nourri à la cuillère. Apprenez en lisant la documentation totalement GRATUITE ici et sur de nombreux autres sites. Vous pouvez même acheter des livres sur la façon d'écrire un EA en MQL4 ou MQL5 (par exemple, Expert Advisor Programming par Andrew R. Young).

Si toutefois vous cherchez un professeur, c'est différent. Vous payez généralement pour les services d'un "entraîneur personnel". Êtes-vous prêt à payer ? Je suis sûr que beaucoup accepteraient une telle demande dans la section " Emplois"(https://www.mql5.com/en/job).

Par ailleurs, la toute première personne à avoir commenté ici pour vous était "ubzen" et la toute première chose qu'il a faite a été de vous recommander de commencer par lire le "Livre d'introduction" et la "Documentation de référence" puisque vous avez affirmé être déjà un bon programmeur dans d'autres langages. UN CONSEIL TRÈS JUDICIEUX !

Encore une chose - Si vous aviez utilisé vos petites cellules grises et fait une recherche ici dans la section Articles, vous auriez trouvé cet article très ancien mais toujours valable :

Alors, arrêtez de vous plaindre et d'être paresseux et faites votre "recherche" dans le cadre de la recherche et du développement. Vous connaissez bien ce terme, n'est-ce pas ?

 
zortharg:

Personne ne m'a donné la moindre idée de comment faire quoi que ce soit, ils m'ont dit de me débrouiller tout seul ou de payer quelqu'un d'autre pour le faire, lisez les premiers messages de ce fil et vous verrez. L'audace des gens sur ce forum ! Ils refusent de me dire quoi que ce soit et ensuite ils se moquent de moi parce que je ne connais pas déjà les "méthodes normales". Oh ! Dites-le ! Mais ça n'a pas l'air idéal de toute façon.

Pourquoi devraient-ils vous aider ? Qu'est-ce qui vous fait croire qu'ils ont une quelconque obligation envers vous ? ... qui avez-vous aidé sur ce forum ?
Raison: