[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 262

 

1 question.Si le nom d'un tableau contient le chiffre 10 entre parenthèses, cela signifie qu'il y a 11 éléments dans ce tableau.

Question 2. Je dois m'assurer qu'il n'y a pas de zéros après le end_set du tableau, mais tous les prix, du allow_set au end_set, doivent être présents . Est-ce que je fais le ArrayResize correctement?

//global
price[10] ;
int i =-1;
//-------------------
int start()
{
if( !TF_F_NewBar())return(0);
if(Allow_setting == true)
{
i++ ;
ArrayResize(price, i) ;//Je comprends que le tableau price[10] restera price[0] (est-ce autorisé ?),
//C'est-à-dire un endroit dans le tableau où le zéro est écrit
. Ainsi, à chaque pas (barre), nous

//augmente la taille du tableau
price[i] = Close[1] ; // J'écris Close[1] au lieu de zéro dans ce tableau à un endroit. Si cela est autorisé,
// alors vous pouvez spécifier le tableau minimum prix[0]
;
}
if(end_set== true)
{
Traitement des données du tableau ;

i = -1 ; //après traitement, retour à la position initiale
}
}

Mes excuses pour avoir mis le code dans le mauvais sens comme il devrait l'être.

 
gince:

1 question.Si le nom d'un tableau contient le chiffre 10 entre parenthèses, cela signifie qu'il y a 11 éléments dans ce tableau.


Ce tableau contient 10 cellules avec des index de 0 à 9. Cela signifie que le premier élément sera dans la cellule 1 avec l'index 0, c'est pourquoi l'instruction for commence par 0.

Question 2. Je dois m'assurer qu'il n'y a pas de zéros après le end_set du tableau, mais tous les prix, du allow_set au end_set, doivent être présents . Est-ce que je fais le ArrayResize correctement?

Voulez-vous obtenir 10 prix de clôture des 10 dernières barres dans le tableau ?

Désolé, je n'ai pas mis le code dans le bon sens.

Vous pouvez toujours modifier ce que vous avez écrit, il suffit de cliquer sur "Modifier".


 
paladin80:

Voulez-vous que le tableau des 10 derniers prix soit proche des 10 dernières barres ?

Vous pouvez toujours modifier ce que vous avez écrit, il suffit de cliquer sur "Modifier".


Non, pas 10, mais Allow_select to end_set. Il peut être soit 40, soit 65. Vous devez vous assurer qu'il n'y a pas de zéros dans le tableau après le end_set.
 
gince:
Non, pas 10, mais Allow_select avant end_select. Il peut s'agir de 40 ou 65, et il ne doit pas y avoir de zéros après le end_set dans le tableau.


C'est bien, il suffit de définir le tableau comme dynamique au début :

double цена[];

...

int init ()

{

…

ArrayResize (цена,0);

…

}

int start ()

{

…

}

 
gince:
Non, pas 10, mais Allow_select avant end_select. Il peut s'agir de 40 ou 65, et il ne doit pas y avoir de zéros après le end_set dans le tableau.

double цена[]; // динамический массив
int    начало=2; // 0 (ноль) это текущий, ещё не закрытый бар
int    конец=45;
int    количество;
//---
int init()
  {
   количество=конец-начало; // =43
   ArrayResize(цена, количество); // устанавливается размер массива - 43 ячейки
   return(0);
  }

//---
int start()
  {
    if(!TF_F_NewBar()) return(0);    
    if(Разрешить_набор == true)
    {
      for (int i=0; i<=количество-1; i++) // заполнить 43 ячейки с индексом от 0 до 42.
                                          // в ячейке 0 будет цена close для бара 2 и т.д.
      цена[i]=Close[i+начало];   
    }
   return(0);
  }
//---
 
paladin80:

Je ne sais pas combien d'éléments doit avoir un tableau. Ça pourrait être 40 ou 65. En un mot, nous avons besoin d'un tableau dynamique

double цена[]; // динамический массив

int i = -1;
//---
int init()
  {
   ArrayResize(цена, 0); // устанавливается размер массива минимальным - 1 ячейка
   return(0);
  }

//---
int start()
  {
    if(!TF_F_NewBar()) return(0);    
    if(Разрешить_набор == true)                // это сигнал по индюку
    {
      //Пришел новый бар и резрешение есть 
      i++.                                     //увеличиваем индех            
      ArrayResize(цена, i)
      цена[i]=Close[i];   
   }
   if(конец_набора== true)   // это сигнал по индюку
   {
      //----
      //работа с массивом
      //----
      Pазрешить_набор == false; 
      i= -1;
//А тут
надо что нибуть делать с бывшим массивом (уменшить, очистить или еще что то)      
   }
   return(0);
 }
//---
 
gince:

Je ne sais pas combien d'éléments doit avoir un tableau. Ça pourrait être 40 ou 65. En un mot, nous avons besoin d'un tableau dynamique

Laissez-moi vous demander de l'autre côté. Pourquoi avez-vous besoin de remplir le tableau avec les prix de clôture ? double close[] lui-même est déjà un tableau de prix de clôture.
 
paladin80:
Je vais vous demander de l'autre côté. Pourquoi avez-vous besoin de remplir un tableau avec les prix de clôture ? double close[] lui-même est déjà un tableau de prix de clôture.
Je me fiche de savoir si c'est fermé ou ouvert. La chose la plus importante est qu'ils sont de maintenant à maintenant. Puis je les filtre. Le filtrage doit être fait dans cette période de maintenant à maintenant. Lorsque j'ai filtré un tableau, j'en refais un autre avec des données différentes. Et je dessine en utilisant le dernier tableau. Donc, ce tableau que vous avez demandé n'est qu'un tableau intermédiaire.
 
Actuellement, pour chaque barre, il met une cloze dans le tableau. Et si je ne le fais pas, je devrai alors calculer à partir de quelle barre collecter les données, faire un cycle, filtrer. Et il ne reste que la dernière.
 
Actuellement, pour chaque barre, il met une cloze dans le tableau. Et si je ne le fais pas, je dois alors calculer à partir de quelle barre collecter les données, boucler et filtrer. Et il ne reste que la dernière.
Raison: