tableau statique ?

 

Bonjour à tous,

Tout d'abord, merci à tous pour toutes les réponses, c'était génial d'apprendre MQL4

Je suis en train de comprendre comment construire des tableaux.

Sujet :

Comment stocker des signaux dans un tableau statique, par exemple : Les hauts et les bas d'une série de bougies, etc. Je vais probablement mettre une petite ligne au-dessus de chaque haut et bas.

Donc je pense à un tableau statique [1,2,3,4,5,6,7]

array[1] = (Low[3] < Low[4] && Low[3] < Low[3]) /ou quelque chose comme ça ?

Low_1 = tableau[1]

Low_2 = array[2] et ainsi de suite.

Est-ce que c'est une façon standard de faire ou est-ce que je me trompe ?

Merci de me conseiller.

 

Lisez d'abord... puis relisez jusqu'à ce que vous compreniez.

https://book.mql4.com/variables/arrays

Par exemple, le premier élément d'un tableau est l'élément 0 , un peu comme les barres, c'est fumant, non ? ;-)

 
  1. Vous êtes loin du compte.
  2. array[1,2,3,4,5,6,7] giberish
  3. array[1] = (Low[3] < Low[4] && Low[3]... array est-il un bool ?
  4. Low_1 = array[1] implique que array n'est pas un bool
  5. "stocker les signaux dans un tableau statique" pourquoi faut-il qu'il soit statique quand on peut les calculer à tout moment.
 

Oups, je voulais dire int array[1][7] ;

Merci pour la réponse

Eh bien, après une lecture plus approfondie, vos indications et vos questions, je pense qu'un tableau n'est peut-être pas ce que j'essaie de faire.

En fait, je veux apprendre à créer ma propre version définie des hauts et des bas, et être capable de les référencer pour un signal même après la formation de nouvelles barres. Mais seulement un certain nombre d'entre elles que je choisis, pas l'histoire complète des hauts et des bas.
Je suis peut-être sur la mauvaise voie ici.

Je vais y réfléchir à nouveau.

Je vous remercie.

 
Agent86:


Fondamentalement, je veux apprendre à créer ma propre version définie des hauts et des bas ; et être capable de les référencer pour un signal même après la formation de nouvelles barres. Mais seulement un certain nombre d'entre elles que je choisis, pas l'histoire complète des hauts et des bas.

Pourquoi ? Pouvez-vous expliquer ce que vous essayez d'obtenir ?
 

Je pense que je vais faire quelque chose comme ça :

Je suppose que cela fait que ce post n'est plus sur les tableaux à ce stade, donc je vais retirer ce questionnement jusqu'à ce que je puisse en apprendre plus sur les tableaux.


Merci.

static double Low_A;
   
   if(Low[2] < Low[2]
      && Low [2] < Low[1])
      {
      Low_A = Low[3];
      Print (Low_A + " Low_A has formed");
      }
 
RaptorUK:
Pourquoi ? Pouvez-vous expliquer ce que vous essayez d'obtenir ?

Bien sûr, ce n'est pas vraiment les hauts et les bas d'une bougie particulière mais peut-être une série de bougies.

Par exemple, on pourrait appeler un Low_A en fonction du nombre de bougies que je souhaite utiliser, mais on pourrait aussi dire qu'un Low est considéré comme 4 bougies plus hautes à gauche et 4 bougies plus hautes à droite, et cette bougie basse serait considérée comme un Low_A

Ou on pourrait utiliser plus de bougies, ou moins pour constituer un Low ou un High, et en créer d'autres comme ça pour les Highs et les Lows.
Puis créer des fonctions pour comparer les précédents bas aux prochains bas, et les précédents hauts aux prochains hauts.

Ensuite, je pourrais peut-être tracer une ligne de tendance à partir d'une série de 2) hauts/bas ou de 3/hauts/bas ou peut-être même plus

Ou je pourrais simplement utiliser comme dans cet exemple une bougie qui a une bougie plus basse à gauche et une bougie plus basse à droite et appeler cela un bas.

Au départ, je pensais mettre le résultat dans un tableau, mais je ne pense pas que cela fasse ce que je voulais, ou du moins je ne comprends pas assez bien les tableaux pour le déterminer à ce stade. Une lecture plus approfondie me permettra sans doute d'y voir plus clair. HA !

Je n'étais vraiment pas sûr que les tableaux soient utiles pour stocker une série de hauts et de bas que je définis.
 

Si j'imprime Low[2], cela me donne 8 chiffres au lieu de 5, et certains sont tous 0.0000000

Probablement parce que le type de données que j'ai utilisé était static double Low_A ;

Je ne sais pas si j'ai besoin de faire en sorte que l'impression soit correcte, mais pour stocker la statique correcte, je ne sais pas quelles données utiliser.

 
OK, je laisse tomber le tableau statique et l'idée du double statique.

J'ai besoin d'un nouveau design, il est évident que ce que j'essayais de faire ne fonctionnera pas correctement et je comprends maintenant pourquoi.

Donc, retour à la planche à dessin. OUCH
 

Revenons à ceci,

Après un peu plus d'apprentissage, je me suis demandé si un tableau statique existait vraiment, ou si un tableau était statique par défaut, et après avoir lu les liens que vous avez fournis, je dis que tous sont statiques par défaut. Super.


Quoi qu'il en soit, je pense à des iFractals au lieu d'essayer de marquer les Highs et les Lows comme je les définis. Je peux utiliser les fractales pour le moment jusqu'à ce que j'obtienne de meilleures connaissances et plus de lecture.

Mais qu'en est-il des iFractals, comment puis-je les marquer et m'y référer ?
Est-ce que je peux simplement créer des iFractales supplémentaires et changer le shift et m'y référer de cette façon, ou est-ce que le shift avec les iFractales parlera toujours des Bars et non de la Fractale précédente ?

//+------------------------------------------------------------------+
//|                Support and Resistance                            |
//|                Copyright © 2004/5     Barry Stander              |
//|                http://www.4Africa.net/4meta/                     |
//+------------------------------------------------------------------+

#property copyright "Support and Resistance             Barry_Stander_4@yahoo.com"
#property link      "http://www.4Africa.net/4meta/"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

//---- buffers
double v1[];
double v2[];
double val1;
double val2;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
//----
   IndicatorBuffers(2);

   SetIndexArrow(0, 119);
   SetIndexStyle(0,DRAW_ARROW,STYLE_DOT,1,Red);
   SetIndexBuffer(0, v1);
   SetIndexLabel(0,"Resistance");

   SetIndexArrow(1, 119);
   SetIndexStyle(1,DRAW_ARROW,STYLE_DOT,1,Blue);
   SetIndexBuffer(1, v2);
   SetIndexLabel(1,"Support");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int i=Bars;
//----
   while(i>=0)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      if (val1 > 0) v1[i]=High[i];
      else          v1[i]=v1[i+1];

      val2=iFractals(NULL, 0, MODE_LOWER,i);
      if (val2 > 0) v2[i]=Low[i];
      else          v2[i]=v2[i+1];
      
      i--;
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+


Quelqu'un a écrit ce code et je comprends comment il fonctionne, mais je ne suis pas sûr de comprendre comment je pourrais sélectionner dans le tableau un haut et/ou un bas particulier, c'est-à-dire Support/Résistance.

Je veux dire que je peux sûrement faire une fonction qui ouvrirait un trade si(val1 > imacd) ou quelque chose comme ça, mais qu'en est-il des iFractals précédentes, ou disons 2 en arrière,

Est-ce que ce serait simplement une question de décalage ?

Ou dois-je les placer dans une autre sorte de tableau ?

Merci de me conseiller.

Merci

 
Il y a 2 tampons (tableaux) qui contiennent les valeurs de prix des fractales ... val1 & val2. Si vous voulez trouver les valeurs fractales précédentes, il vous suffit de boucler, en incrémentant une valeur de décalage, et de vérifier les valeurs de la mémoire tampon jusqu'à ce que vous trouviez celles qui ne sont pas EMPTY_VALUE ( https://docs.mql4.com/customind/SetIndexEmptyValue ).
Raison: