Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 635

 
Top2n:

Cette fonction renvoie le nombre de cellules dans le tableau, et non le nombre de cellules remplies.

Seule une boucle peut vous aider. Passez en revue et comptez
 

Quelques conseils pour un débutant, s'il vous plaît !

Ma tâche consiste à créer une (des) sous-fenêtre(s) à partir d'un Expert Advisor dans la fenêtre graphique à laquelle il est attaché.

J'ai tout regardé, mais je n'ai pas trouvé comment le faire. Vous pouvez créer/modifier des objets

des sous-fenêtres qui ont déjà été créées par d'autres indicateurs, mais elles n'ont pas ce dont j'ai besoin...

Comment puis-je me sortir de cette situation ?

 
boroda4:

Quelques conseils pour un débutant, s'il vous plaît !

Ma tâche consiste à créer une (des) sous-fenêtre(s) à partir d'un Expert Advisor dans la fenêtre graphique à laquelle il est attaché.

J'ai tout regardé, mais je n'ai pas trouvé comment le faire. Vous pouvez créer/modifier des objets

des sous-fenêtres qui ont déjà été créées par d'autres indicateurs, mais elles n'ont pas ce dont j'ai besoin...

Comment puis-je me sortir de cette situation ?


Jetez un coup d'œil à l'article, vous y trouverez peut-être quelque chose.
 
Vinin:

Seule une boucle peut vous aider. Passez en revue et comptez.

Pouvez-vous me dire comment calculer le nombre de cellules remplies dans un tableau ?

Le tableau contient les prix de la ligne de tendance, par rapport à la barre actuelle.

 sch=ObjectsTotal(OBJ_TREND);//количество трендовы линий
for(int s=0;s<sch;s++) 
 {
 
// ArraySort(masS,WHOLE_ARRAY,0,MODE_DESCEND);
// ArraySort(masB,WHOLE_ARRAY,0,MODE_DESCEND);
  
   DWnem=ObjectName(s); //Текущее имя объекта
   DW="downtrendline"+IntegerToString(s);//Для фильтрации запроса
   DW2="uptrendline"+IntegerToString(s);//
  if(DWnem="")//если объекта уже нет, то обнуляем ячейку массива
   {
   masS[s]=0;
   masB[s]=0;
   }
 if(DWnem=DW)//если имя совпадает с фильтром, то запоминаем в массив
{
  if(ObjectGet(DWnem,OBJPROP_COLOR)==Goldenrod) { 
   masS[s]=ObjectGetValueByShift(DWnem,1);}
  if(ObjectGet(DWnem,OBJPROP_COLOR)==Gainsboro) { 
   masS[s]=ObjectGetValueByShift(DWnem,1);}
  if(ObjectGet(DWnem,OBJPROP_COLOR)==White) { 
   masS[s]=ObjectGetValueByShift(DWnem,1);}
}   
for(int a=0;a<20;a++)// ну а тут счетчик, чтоб посчитать сколько ячеек записано в масив { if(mas[a]>0) sch++; } Как остановить счетчик?

Je n'arrive pas à comprendre.

Je n'arrive pas à comprendre et c'est tout, s'il vous plaît aidez moi !!!

 

Pouvez-vous me dire comment obtenir le signal de terminaison du TerminalTester dans le terminal ?

int start()
   {
    //---------------------------------- Из Терминала запустим ТерминалТестер -------------------------
    Start   = ShellExecuteW(0, "Open", "terminal.exe", "D:\\Alpari_Terminal_Tester\\tester\\optimise.ini", "D:\\Alpari_Terminal_Tester", 3);
    while(STOP)
        {
         //------ Функция запроса проверки состояния ТерминалТестера ------
         // STOP=?????????????????????????????????????????????????;
         Sleep(1000);
        }
    return(0);
   }
 
Top2n:

Pouvez-vous me dire comment calculer le nombre de cellules remplies dans un tableau ?

Le tableau contient les prix de la ligne de tendance, par rapport à la barre actuelle.

Je n'arrive pas à comprendre.

Je n'arrive pas à comprendre et c'est tout, s'il vous plaît aidez moi !!!

Essayez comme ça :

int limit = ...; //до какого числа нужно
MathMin(sch++,limit); //если это будет работать, не пробовал

Peut-être que ça va marcher. Bonne chance !

 
Top2n:

Pouvez-vous me dire comment calculer le nombre de cellules remplies dans un tableau ?

Le tableau contient les prix de la ligne de tendance, par rapport à la barre actuelle.

Je n'arrive pas à comprendre.

Je n'arrive pas à comprendre et c'est tout, aidez-moi s'il vous plaît ! !!


Probablement besoin de mettre à zéro le compteur dans le temps, de sorte qu'il ne s'enroule pas plus, et recalculé à partir de zéro ?

Les fonctions kilométriques ne sont pas bonnes, il est préférable de mettre les morceaux d'actions complétés dans des fonctions séparées, même si certaines d'entre elles ne sont appelées qu'une seule fois. Et il est préférable d'appeler ces fonctions distinctes à partir de la fonction principale.

Ce comptage fera l'affaire ?

#property strict

/******************************************************************************/
uint getFilledCellsNumber(double &array[]) { // Массив принимается по ссылке, то есть, НЕ копируется
  uint cnt = 0;

  for (int i = 0, limit = ArraySize(array); i < limit; i++) {
    if (array[i] > 0) {
      cnt++;
    }
  }

  return cnt;
}

/******************************************************************************/
void OnStart() {
  double a[] = {0, 1.2, 1.3, 0, 1.1};
  uint filledCellsNumber = getFilledCellsNumber(a); // Массив передаётся по ссылке, то есть, НЕ копируется

  Print("Number of filled cells: ", filledCellsNumber);
}

Lorsque je le démarre, j'obtiens ce qui suit :

00:24:46 Script 1 EURUSDm,H1: loaded successfully
00:24:46 1 EURUSDm,H1: initialized
00:24:46 1 EURUSDm,H1: Number of filled cells: 3
00:24:46 1 EURUSDm,H1: uninit reason 0
00:24:46 Script 1 EURUSDm,H1: removed

Ça a l'air de compter.

 

Bonjour.

Lors de la compilation d'un programme écrit en 2012, un avertissement apparaît :

perte possible de données due à la conversion de type FinBuy1531.mq4 144 7

Qu'est-ce que cela signifie et comment puis-je l'éviter ?

P.S. Le programme fonctionne normalement dans le testeur.

 
simpleton:

Peut-être faudrait-il remettre le compteur à zéro à temps pour qu'il n'en rajoute pas et ne recommence pas à zéro ?

Les fonctions kilométriques ne sont pas bonnes, des morceaux complets d'actions sont mieux placés dans des fonctions séparées, même si certaines d'entre elles ne sont appelées qu'une seule fois. Et à partir de l'appel de la fonction principale, ceux qui sont séparés.

Ce comptage fonctionnera-t-il ?

Lorsque je le démarre, j'obtiens ce qui suit :

Il semble compter correctement.


OOO merci beaucoup ! !!)) Il fonctionne très bien en général.

Merci à tous pour votre aide)

 
Shurkin:

Bonjour.

Lors de la compilation d'un programme écrit en 2012, un avertissement apparaît :

perte possible de données due à la conversion de type FinBuy1531.mq4 144 7

Qu'est-ce que cela signifie et comment puis-je l'éviter ?

P.S. Le programme fonctionne normalement dans le testeur.

Vous devez effectuer correctement la conversion de type dans le code.
Raison: