tableau statique ? - page 5

 
AHHHHHHHHH ! Maintenant il me le dit LOL

Ok voici ce que j'ai obtenu quelque chose d'un peu mieux avec quelques résultats, je ne comprends pas complètement les résultats mais je pense que je peux le comprendre à partir de là et comprendre pourquoi je n'ai JAMAIS pu obtenir un résultat.

Merci

//+------------------------------------------------------------------+
//|                                                  Agent86_5min.mq4 |
//|                                                    Unfinished POS |
//|                                    
//+------------------------------------------------------------------+
#property copyright "Unfinished POS by Agent86"


//---- input parameters
extern double    TakeProfit=20.0;
extern double    Lots=0.1;
extern double    StopLoss=15.0;
extern int MagicNumber=123486;

double v1[5];
double v2[];
double v3[];
double val1;
double val2;
double val3;


//++++ These are adjusted for 5 digit brokers.

int     pips2points;    // slippage  3 pips    3=points    30=points
double  pips2dbl;       // Stoploss 15 pips    0.0015      0.00150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)

    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   if (Digits == 5 || Digits == 3)
   {    // Adjust for five (5) digit brokers.
      pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
   } 
   else 
    {    
      pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; 
    }
    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
     
   
    
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
   
    
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
  
   double   faster = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1), //MODE_MAIN
            slower = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //MODE_SIGNAL
            
  
          
   
    for(int i=Bars; i >= 0; i--)
     {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
   
      // Print (val1, (" val1")); //will print some 0's
      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];
       
     }   
     
     for(i=Bars; i >= 0; i--)
     {
     val1=iFractals(NULL, 0, MODE_UPPER,i);
     if(val1>0)
      {
      double v1[6];
      v1[5]=High[i];
      Print ("v1[", 5, "]= ", v1[5]);
      }
     }
     
        
                       
        
           

//---- 

 
                    
        

                
   return(0);
  }    

//+------------------------------------------------------------------+
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3312
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3315
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3284
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3299
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3306
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3325
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3343
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3399
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3419
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3422
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3398
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3374
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3375
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3378
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3387
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3389
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3383
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3373
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3372
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3368
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3356
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3366
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3369
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3386
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3361
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3296
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3303
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3314
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3307
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3302
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3301
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3294
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3297
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3292
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.3293
2011.09.21 10:54:46 2011.01.03 02:28 Agent86_5min EURUSD,M5 : v1[5]= 1.329
 
Je peux maintenant me remettre à chercher comment faire référence aux fractales précédentes

.

Merci

 
Il y a toujours une explication... il faut juste la trouver. :-)
 
RaptorUK:

Oui, les tampons Indicator sont traités différemment des tableaux ordinaires.

v[i] ne déclare pas le tableau, c'est juste un des éléments . . mais double v[] ; est un tableau avec zéro élément . . donc v[anything] = toujours 0

Je ne comprends pas bien.
Donc, vous pouvez réellement mettre des valeurs dans le tableau et pourtant, puisqu'il n'est pas déclaré, il n'y a aucun moyen d'accéder à ces éléments sans savoir quel élément c'était/est ? n'est-ce pas ?

Alors comment le tampon peut-il savoir comment dessiner la ligne de v1[i] s'il y a zéro élément dans le tableau ? ?

Est-ce parce qu'il s'agit plutôt d'un bool statique et qu'il ne se comporte pas vraiment comme un tableau à ce moment là. c'est-à-dire que High[i] = True, donc dessine High[i] ?
Mais le dessine avec AUCUNE valeur dans l'élément, juste True et ok pour dessiner High[i] à ce moment là ?

S'il vous plaît clarifier si je ne suis même pas proche sur ce point.

Et merci pour le tutorat
 

Lestampons d'indicateurs sont des tableaux spéciaux... Ne confondez pas les tableaux et les tampons, ils sont similaires mais différents.

Dans le code original, v1[] et v2[] sont des tampons, dans votre dernier code, ce sont des tableaux, lorsque vous déclarez un tableau, vous devez lui donner une taille, par exemple, v1[50] a 50 éléments de v1[0] à v1[49]. La mémoire tampon se redimensionne automatiquement lorsqu'il y a plus d'éléments nécessaires et les valeurs se déplacent automatiquement dans la mémoire tampon. Considérez la barre en cours de formation, la barre 0, lorsque cette barre se termine, la valeur de l'indicateur associée à cette barre doit se déplacer vers l'index 1... ceci est fait automatiquement avec les tampons... si vous voulez faire quelque chose de similaire avec des tableaux, vous pouvez le faire, mais vous devez le coder vous-même.

 
Ok, je vois, je ne savais pas que les tampons n'étaient pas vraiment les mêmes, c'est justement ce que j'avais besoin de comprendre et j'aurais probablement compris depuis longtemps.

Merci
 
for(i=Bars; i >= 0; i--)
      {
      val3=iFractals(NULL, 0, MODE_UPPER,i);
      if(val3>0)
         {      
         v3[1]=High[i];
         double v3[9];
// if I put v3[1]=High[i]; here in stead of above it will not draw the line, probably because of this buffer topic again
         Print ("v1[", 1, "]= ", v3[1]);
         }
      }

Quoi qu'il en soit, je pense que je peux faire des progrès maintenant.


Je vois que je peux mettre cette ligne juste au-dessus de la déclaration du tableau et qu'elle affiche l'indicateur, mais qu'elle n'imprime que 0. Si je la mets en dessous, elle imprime la valeur.

 
Puis-je vous poser une question sur les iFractals et quand val1>0

Je suppose que cela signifie ==Vrai et continue ensuite

Donc au moment où cela est vrai, comment puis-je connaître cette valeur puisque la simple impression imprimerait un changement continu de la valeur tant qu'elle est vraie

Et aussi en déclarant le tableau et en déclarant un élément dans le tableau tel que v1[3]=High[i] les résultats de l'impression continuent aussi à changer comme val1>0

J'essaie donc de comprendre ce qui se passe et comment je peux figer le temps au moment où val1>0 ou comment je peux savoir quelle est la valeur fractale réelle sans utiliser la valeur [i] dans le tampon, puisque je ne peux pas obtenir la valeur du tampon, comme nous l'avons vu précédemment, car [i] ne déclare pas le tableau et est lui-même non déclaré. Enfin, partiellement non déclaré.

Donc, je suppose que déclarer le tableau et assigner une valeur comme High[i] produira les résultats d'impression que je veux, cependant, ce n'est pas fixe comme c'est le cas avec l'indicateur, donc comment l'indicateur a une valeur fixe et comment puis-je reproduire cela afin d'utiliser cette valeur ou la renommer comme une autre variable pour être utile.

Merci de me conseiller.

Merci






 
Peut-être devriez-vous commencer par expliquer ce que vous essayez de faire... sans mentionner de code... simplement en anglais. Cela rendra probablement les choses plus claires pour nous deux... ;-)
 
RaptorUK:
Peut-être devriez-vous commencer par expliquer ce que vous essayez de faire... sans mentionner de code... simplement en anglais. Cela rendra probablement les choses plus claires pour nous deux... ;-)
LOL ok

Je pense que je veux juste apprendre à me référer aux ifractales que le signal lui-même montre sur le graphique.
Pas toutes en général mais en choisir une, ou une précédente, d'un haut et/ou d'un bas et les sélectionner pour les utiliser.
Pour les utiliser dans une sorte de schéma d'appellation ABCD.

Puisque iFractals semble faire presque tout ce que j'allais créer moi-même pour cette utilisation, je voulais être capable de donner un nom variable à ces fractales.

Ainsi, je pourrais concevoir du code pour faire référence à ces iFractals fixes comme indiqué dans l'indicateur et comme indiqué pour v1[i]=High[i] qui continue à être affiché jusqu'à ce qu'un nouveau soit formé. L'indicateur montre la valeur qui reste fixe

J'allais donc essayer de créer un code qui créerait une variable pour, disons, la valeur actuelle v1[i]=High[i] et cela pourrait être A mais je veux une valeur fixe comme dans l'indicateur et non une valeur mobile comme mon instruction Print.

Ensuite, je pourrais vouloir sélectionner un précédent High[i] pour le marquer comme A ou B. Cela pourrait être C si (A>High[i] à ce moment-là) et ainsi de suite. Pour essayer de trouver un bon schéma ABCD à utiliser dans une autre partie d'une stratégie complètement différente. Mais j'ai remarqué que beaucoup de gens utilisent ce type de schéma ABCD avec les fibs et beaucoup d'autres parties et indicateurs, mais je voulais juste apprendre à créer un schéma ABCD de base et peut-être même plus tard lui faire dessiner des lignes de tendance basées sur ces ABCD, etc.

Et beaucoup d'autres choses, mais pour l'instant juste un type d'ABCD.

Merci
Raison: