Comment trouver les prix les plus proches les uns des autres ?
Résultats de 1 é 7 sur 7

Sujet : Comment trouver les prix les plus proches les uns des autres ?

  1. #1
    J'essaie de trouver un moyen de le faire. Au d?but, j'ai essay? de faire quelque chose en utilisant MathAbs et en soustrayant les valeurs les unes des autres, mais il semblait que je le simplifiais ? l'exc?s puisque j'ai affaire ? environ 20 prix ici. Je les ai d?j? d?clar?s et tout, donc c'est juste une question de trouver les bons.

    Existe-t-il un moyen rapide et facile de prendre un tel nombre de prix et d'obtenir la diff?rence de prix de chaque combinaison possible (ou de trouver un moyen de n'obtenir que les combinaisons qui comptent)?? Ou peut-?tre les filtrer par une valeur maximale arbitraire (que si la diff?rence la d?passe, le prix est ignor?)??

  2. #2
    Une fa?on de proc?der?: cr?ez un tableau et remplissez-le avec tous les prix que vous souhaitez v?rifier. Triez le tableau, de cette fa?on vous les obtenez dans un ordre croissant ou d?croissant agr?able avec 1 commande. d?clarer une double LowestDistance = 9999999.99?; commencer ? une extr?mit? du tableau et comparer les prix comme ceci : if(price1-price2 lt;= LowestDistance) {LowestDistance=price1-price2;
    price_a = price1; prix_b = prix2?; } if(price2 - price3 lt;= LowestDistance) {LowestDistance = price2-price3;
    price_a = price2; price_b = price3 } if(price3 - price4 lt;= LowestDistance) {LowestDistance = price3-price4;
    price_a = price3; price_b = price4 } ..... .... Ceci peut ?tre fait en boucle. Apr?s la fin de la boucle, vous aurez 3 champs remplis avec les bonnes valeurs : LowestDistance price_a price_b Je pense que c'est ce dont vous avez besoin.

  3. #3
    Merci. Donc, je cr?e un tableau, puis une boucle qui parcourt l'index des tableaux et compare les valeurs dans les indices?? Avez-vous une id?e de la fa?on dont je devrais ajuster dans le cas o? il y aurait 4 ? 5 valeurs relativement proches les unes des autres (disons la diff?rence, mais cela pourrait ?tre n'importe quel montant en dessous d'un maximum sp?cifi??: 0,00005, 0,00004, 0,00003, 0,00002). Ce n'est pas que j'ai sp?cifiquement besoin des 2 prix les plus proches, mais d'un nombre de prix qui correspond ? la diff?rence maximale?? Serait-ce une bonne solution ? ce probl?me ? Code ins?r? double Array#91;19#93;#91;1#93;; ArrayInitialize(Array#91;19#93;#91;1#93;, 20); Tableau#91;0#93;#91;0#93; = Prix0?; Tableau#91;1#93;#91;0#93; = Prix1?;/etc...etc...etc... ArraySort(Array#91;19#93;#91;1#93;,WHOLE_ARRAY,0,M ODE_ASCEND); maxdiff = 0,00005?; Arr?t = 19?; for (i=0;ilt;Stop;i ) { if (MathAbs(Array#91;i#93;#91;0#93; - Array#91;i 1#93;#91;0#93; ) lt;= maxdiff) {Tableau#91;i#93;#91;1#93; = je 1?; Tableau#91;i 1#93;#91;1#93; = i;} Si j'utilise correctement des tableaux comme celui-ci, nous devrions nous retrouver avec un tableau ? 2 dimensions, et la premi?re dimension contient 20 prix et la seconde 20 ou 0 ? 19 entiers. Si l'entier est 20 aucun prix n'est assez proche, si le prix est 0-19 alors cela correspond ? l'indice du prix qui est assez proche de ce prix. Bien que l'index puisse ?tre ?cras? par le prix suivant, l'autre prix contiendra toujours l'index et je pourrais ?ventuellement ajouter une v?rification qui compare la diff?rence de prix 1 et de prix 3 (le prix 2 ?tant dans maxdiff du prix 1 et du prix 3) avant de d?finir la deuxi?me dimension du tableau (if (Array == 20), quelque chose comme ?a).

  4. #4

    Citation Envoy? par ;
    Avez-vous une id?e de la fa?on dont je devrais ajuster dans le cas o? il y aurait 4 ? 5 valeurs relativement proches les unes des autres (disons la diff?rence, mais cela pourrait ?tre n'importe quel montant en dessous d'un maximum sp?cifi??: 0,00005, 0,00004, 0,00003, 0,00002). Ce n'est pas que j'ai sp?cifiquement besoin des 2 prix les plus proches, mais d'un nombre de prix qui correspond ? la diff?rence maximale??
    Pipsgeek, c'est diff?rent de ce que vous avez demand?. Donc, vous voulez d?finir une distance maximale et trouver toutes les paires de prix qui sont aussi proches les unes des autres ? Il y a plus d'une fa?on de le faire. L'une serait : Cr?ez un tableau ? 1 dimension et remplissez-le avec tous les prix que vous avez. Triez-le (ascendant ou d?croissant, peu importe). Bouclez une fois dans le tableau et v?rifiez si la distance entre ces 2 prix lt;= maximum_difference Si oui, faites quelque chose avec cette valeur. Soit le stocker dans un autre tableau (ou faire toute la v?rification dans un tableau ? 2 dimensions o? l'index 0 contient le prix et l'index 1 contient la distance au prix pr?c?dent) De cette v?rification, vous avez extrait tous les niveaux de prix qui sont plus proches les uns des autres que votre maximum_difference d?fini (ou ?gal ? max diff ). Je ne peux pas en dire plus car je n'ai aucune id?e de pourquoi vous faites cela et de ce que vous ferez avec les niveaux de prix extraits. Mais cela est n?cessaire pour savoir comment stocker les niveaux et quelles informations suppl?mentaires sont n?cessaires pour travailler avec ceux-ci.

  5. #5
    L'exemple que j'ai post? ne fonctionnera pas? Peut-?tre pour clarifier les choses, les prix sont des cibles possibles de prix futurs bas?s sur divers indiors. Je veux savoir quand plusieurs de ces cibles possibles sont proches les unes des autres et baser les entr?es/sorties sur ces prix. La fa?on dont je vais d?finir ?troitement est un probl?me enti?rement diff?rent qui pourra probablement ?tre r?solu en utilisant ATR ou quelque chose de similaire, ou simplement une valeur externe que je peux ajuster ? mesure que la volatilit? change. Je me rends compte que ce n'est pas la m?me chose que ce qui est demand? dans le titre du fil, mais le probl?me est que je ne suis pas encore s?r ? 100% de la fa?on de s'y prendre. A mi-parcours, j'ai r?alis? qu'il serait pr?f?rable de d?finir un maximum car il se pourrait que plus de 2 prix soient proches les uns des autres. Je suis int?ress? par la fa?on d'avoir fondamentalement la configuration et que je peux aller d'une mani?re diff?rente ? partir de l?. Si le code que j'ai post? fonctionne comme je le pense, cela devrait suffire pour ce que je veux faire. Je n'ai aucune exp?rience avec les tableaux autres que les s?ries utilis?es dans les int?rieurs, donc je ne sais pas exactement quelle est la bonne fa?on de travailler avec le tableau. Je suppose que vous allez juste comme Array [Dimension1] [Dimension2] et vous avez la valeur qui est ? ces coordonn?es. J'ai juste omis la d?claration r?p?titive de tous les prix du tableau (Price0, Price1 devrait continuer jusqu'? Price19). Par exemple, est un double Array[19][1]?; correct ou dois-je utiliser [20][2] parce que z?ro n'est pas compt? lors de sa d?claration?? (il devrait cr?er un tableau de 20x2, et si je suppose correctement, l'index devrait commencer ? 0 et se terminer ? 19 et les deuxi?mes indices de dimension devraient ?tre 0 et 1)

  6. #6
    Je n'ai pas utilis? de tableaux depuis environ 1 an et j'ai oubli? comment les utiliser. Dans MetaEditor, il y a un bouton Aide et ? partir de l?, vous pouvez trouver comment d?clarer des tableaux, etc. Ou ici?:
    http://docs.mql4.com/D?sol?, je n'ai pas le temps de faire la lecture pour vous

  7. #7
    lol, merci de m'avoir donn? l'id?e d'utiliser des tableaux. J'ai pens? que les tableaux ?taient des cacahu?tes pour vous et que vous pouviez voir imm?diatement si c'?tait correct ou incorrect. D'apr?s les exemples d'aide MQL4 plut?t peu clairs, il semble que la bonne fa?on de le d?clarer serait d'utiliser le nombre de valeurs, pas les num?ros d'index (donc Array[20][2] pour un tableau 20x2).

Régles des messages

  • Vous ne pouvez pas cr?er de sujets
  • Vous ne pouvez pas r?pondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas ?diter vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Désactivé
  • Le code HTML est Désactivé
Le site d'sundytrading utilise des cookies
Le site d'sundytrading utilise des cookies pour vous assurer la meilleure expérience sur notre site ; certains sont déjà effectifs. Vous pouvez consulter plus de détails sur leurs usages ici. Veuillez cliquer sur le bouton à droite pour accepter nos cookies. Si vous continuez à utiliser le site internet d???sundytrading, nous considérerons que vous acceptez nos cookies.