[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 236

 
TarasBY:

Vous ne voyez rien là ? ??

Je constate que ArrayBsearch() renvoie 0 (comme indice d'élément) PARTOUT. Dans la 0ème cellule de votre tableau se trouve le nombre 1.0408. Revenons au code :

Maintenant, substituez les valeurs des variables obtenues dans cette condition (sur la carite Bid est dans la gamme 0.8-0.9, prenons le maximum de cette gamme - 0.9) : si (0.9000 - 1.0408 <= 0) OrderSend(). La condition est remplie DROIT !!! Recherchez les erreurs en complétant votre tableau. Vous n'avez vraisemblablement pas prêté attention à cette clause dans la fonction ArrayBsearch() :

Remarque: la recherche binaire ne traite que les tableaux triés. La fonction ArraySort() est utilisée pour trier un tableau numérique.

P.S. L'impression ne doit pas être fournie sous forme d'image, mais par sélection simultanée de plusieurs lignes (en utilisant SHIFT - si vous ne savez pas comment faire) de cette même impression (10-20 lignes suffisent) dans la fenêtre du terminal, puis copier et coller les lignes sélectionnées dans votre message sous forme de code avec le bouton SRC.

J'ai compris que le problème est dans la fonction ArrayBsearch()

Mais je ne comprends toujours pas pourquoi cette fonction ne devrait pas retourner immédiatement l'unique élément N du tableau dont la valeur est la plus proche par valeur de valeur

Sinon, pourquoi massiv[S-1] et massiv[S+1]devraient-ils participer aux calculs ?

 
solnce600:

Je comprends que le problème est dans la fonction ArrayBsearch()

Mais je ne comprends toujours pas pourquoi cette fonction ne devrait pas retourner immédiatement l' unique élément N du tableau dont la valeur est la plus proche par valeur de valeur

Sinon, pourquoi massiv[S-1] et massiv[S+1]participent-ils aux calculs ?

Le problème n'est pas dans la fonction ArrayBsearch(), mais dans la préparation du tableau passé dans cette fonction !!!

Et puis c'est juste une "fantaisie"... Votre imagination...

La fonction ArrayBsearch() renvoie la valeur UN, et afin de trouver la cause de l'anomalie du code, j'ai imprimé les valeurs : (dans l'ordre) la valeur du tableau cell avec l'indice S (il a été retourné par la fonction ArrayBsearch()), la valeur la plus proche de la gauche dans le tableau donné (massive[]) avec l'indice S-1, la valeur la plus proche de la droite avec l'indice S+1, et le prix au moment de l'ouverture de l'ordre.

Tu es arrivé en 1ère année, et tu essaies de jeter un coup d'oeil dans une classe de diplômés... Retourne dans ta classe ! !! - analogie. :))

 
TarasBY:

Le problème n'est pas dans la fonction ArrayBsearch(), mais dans la préparation du tableau passé à cette fonction ! !!

Et puis c'était juste un "vol de fantaisie"... Votre imagination...

La fonction ArrayBsearch() renvoie la valeur UN, et afin de trouver la cause de l'anomalie du code, j'ai imprimé les valeurs : (dans l'ordre) la valeur de la cellule du tableau avec l'indice S (elle a été retournée par la fonction ArrayBsearch()), la valeur la plus proche de la gauche dans le tableau donné (massive[]) avec l'indice S-1, la valeur la plus proche de la droite avec l'indice S+1, le prix au moment de l'ouverture de l'ordre.

Tu es arrivé en 1ère année, et tu essaies de jeter un coup d'oeil dans une classe de diplômés... Retourne dans ta classe ! !! - analogie. :))

Je l'ai. Merci beaucoup pour votre aide.... Je suis toujours un peu pressé et je prends de l'avance sur moi-même.... Je pense qu'il y a plus de pour que de contre dans l'ensemble.

La seule chose que je ne comprends pas encore.....

Ici, j'ai besoin d'initialiser un tableau avec 3000 valeurs, et je l'ai fait en utilisant EXCEL.

Il me semblait que c'était un processus long, multi-étapes et fastidieux.

Existe-t-il de meilleurs algorithmes pour ce processus ?

Merci.

 
solnce600:

Je l'ai fait en utilisant EXCEL.


Par DDE ou par Lazybones ?

Écrivez une macro et automatisez-la, si vous avez un historique. Vous l'ouvrez dans Word avec l'écriture de macro activée, vous le convertissez là, puis vous l'enregistrez au format csv avec la macro et vous utilisez DDE. Je ne connais pas le format des fichiers de données metatrader et metastock, je n'ai pas le temps de le comprendre moi-même. Et si le double array[3000] avec des zéros, alors utiliser for, mais ils sont initialisés avec des zéros, si je ne me trompe pas.

 
solnce600:
C'est fait. Merci beaucoup pour votre aide.... Je suis toujours un peu pressé et je prends de l'avance sur moi-même.... Je pense qu'il y a plus de pour que de contre dans l'ensemble.

La seule chose que je ne comprends pas, c'est .....

Je dois initialiser un tableau de 3000 valeurs et je l'ai fait en utilisant EXCEL.

J'ai trouvé que c'était un processus long, en plusieurs étapes et fastidieux.

Existe-t-il de meilleurs algorithmes pour ce processus ?

Merci.


Veuillez poster le fichier où les valeurs d'initialisation sont écrites...
 
gyfto:


Par la DDE ou par le Loafer ?

Écrivez une macro et automatisez-la, si vous avez un historique. Ouvrez-le dans Word avec l'écriture de macro activée, convertissez-le en Excel, enregistrez-le en tant que macro csv et utilisez DDE. Le format des fichiers de données metatrader et metastock ne dépend pas de moi, je n'ai pas le temps de m'en occuper. Si je ne me trompe pas, ils sont initialisés avec des zéros, par pour.

Merci, je vais l'étudier. Je viens d'aller au Service - j'ai enregistré l'historique d'une paire dans un fichier EXCEL.

Je divise une seule colonne avec toutes les données par colonnes, je mets une virgule après chaque valeur de la colonne avec les prix d'ouverture - je la transpose en une ligne - triée - et je la colle dans l'éditeur, c'est-à-dire

fichier mqh inclus.

Si vous avez des références à DDE ou Lazybear, faites-le moi savoir.

Merci.

 
solnce600:

Je suis simplement allé dans Service et j'ai enregistré l'historique d'un couple dans un fichier EXCEL.

Dans la colonne contenant les prix d'ouverture, je mets une virgule après chaque valeur, je la transpose sur une ligne, je la trie et je la colle dans l'éditeur.

fichier mqh inclus.

Si vous avez des références à DDE ou Lazybear, faites-le moi savoir.

Merci.



Vous n'avez pas besoin de DDE ou de lazybones. Vous avez juste besoin d'une fonction (10 lignes de code). Lancez le fichier dans le répertoire du terminal et le tableau sera initialisé... Donne-moi le dossier.
 
Dima.A.:

Vous n'avez pas besoin d'un DDE ou d'un Lazybones. Vous avez juste besoin d'une fonction (10 lignes de code). Lancez le fichier dans le répertoire du terminal et le tableau sera initialisé... Donne-moi le dossier.

J'ai besoin d'initialiser 2 tableaux

1.double

2.datetime

Dans le premier tableau, certaines valeurs après la ligne 1120, pour une raison quelconque, ont été converties dans un format différent après que j'ai changé le signe de séparation de la virgule au point (j'avais une virgule à cet endroit).

Si ce n'est pas difficile, veuillez m'envoyer ces 10 lignes de code également ...... Je les étudierai.... Je veux apprendre à le faire moi-même à l'avenir.

Merci beaucoup pour votre aide.

 
solnce600:
Bizarre, le fichier pèse 140 kilos, je l'ai archivé et attaché au post..... et il n'y est pas.


Raccourcissez le fichier, je n'ai besoin que de quelques lignes...
 
Dima.A.:

Réduisez le fichier, quelques lignes dedans me suffisent...

Ai-je bien compris que pour mql 4, la façon dont le tableau est initialisé a de l'importance. Donc ça ne peut pas être fait de la façon dont je l'ai fait ?

FICHIER IMPRIMÉ

Dossiers :
vytxcfq.txt  61 kb