Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 388

 

Bonjour à tous.

J'apprends les tableaux.

Pouvez-vous me dire comment retirer la valeur dont j'ai besoin d'un tableau ?

Si je comprends bien, après avoir supprimé une valeur, la taille du tableau sera réduite et probablement

la nouvelle valeur de la taille du tableau devra également être spécifiée.

Je n'ai pas trouvé la fonction permettant de supprimer une valeur de tableau dans le manuel de référence. Pouvez-vous me montrer à quoi ressemble l'ensemble de la procédure ?

de sorte qu'après avoir été supprimé, le tableau continue de fonctionner.

Merci.

Voici un exemple concret de ce dont j'ai besoin.

int start()                                             
{

double mass[3]=
{
1.2414,
1.2438,
1.2874
};

double value =  Bid ;
int S = ArrayBsearch(mass,  value,  WHOLE_ARRAY,  0, MODE_ASCEND);

if ( Bid == mass[S]) //Bid = 1.2874
OrderSend(Symbol(),OP_SELL,0.1,Bid ,3,Ask+400*Point,Ask-200*Point,"jfh",123 );
}
// после того как открылся ордер по цене элемента массива с индексом 2 (1.2874)
// КАК УДАЛИТЬ ИЗ МАССИВА ЗНАЧЕНИЕ 1.2874 так что бы массив продолжил функционировать дальше.
 
ANDREY:

Bonjour à tous.

J'apprends les tableaux.

Pouvez-vous me dire comment retirer la valeur dont j'ai besoin du tableau ?

Si je comprends bien, après avoir supprimé une valeur, la taille du tableau sera réduite et probablement

La nouvelle taille du tableau devra également être spécifiée.

Je n'ai pas trouvé la fonction permettant de supprimer une valeur de tableau dans le manuel de référence. S'il vous plaît, montrez-moi à quoi ressemble la procédure complète. pour supprimer une valeur de tableau,

Ainsi, après avoir été supprimé, le tableau continuera à fonctionner.

Merci.

Voici un exemple concret de ce dont j'ai besoin.

Vous pouvez copier le tableau "dans lui-même" et ensuite redimensionner le tableau en le diminuant de 1. Un exemple avec la suppression de l'indice zéro du tableau et le remplissage du dernier, mais vous pouvez copier à partir de n'importe quel indice n'importe quel nombre d'éléments.

La deuxième option consiste à écraser la dernière valeur dans l'espace "libéré" et à réduire également la taille du tableau.

Подскажите про массивы
Подскажите про массивы
  • 2017.12.03
  • www.mql5.com
Я только учусь и на массивах попал в засаду: пытаюсь написать скрипт в котором массив данных будет перезаписываться...
 
Alexey Viktorov:

Vous pouvez copier un tableau "sur lui-même" et ensuite redimensionner le tableau en le diminuant de 1. Un exemple est la suppression de l'indice zéro du tableau et le remplissage du dernier, mais la copie peut être effectuée à partir de n'importe quel indice avec n'importe quel nombre d'éléments.

La deuxième option consiste à écraser la dernière valeur dans l'espace "libéré" et à réduire également la taille du tableau.

Merci beaucoup pour le conseil.
 

Bonjour !!! Expliquez-moi, même si je ne suis pas un débutant, mais je suis terriblement malade d'un seul problème. J'appelle l'indicateur depuis l'indicateur. Lorsque je reçois une nouvelle barre avec une valeur, j'obtiens des valeurs complètement différentes lorsque je la recompile immédiatement. Le retard dans le calcul de l'indicateur par le temps ne mène à rien. Par conséquent, il n'y a pas de fonction automatique du tout. La question. WHY ???? Je suis si épuisé que je suis épuisé. Quel est cet incroyable pépin... J'en ai marre...

 

Bonjour, je n'arrive pas à résoudre le problème du déplacement des niveaux de signal lorsque le prix les dépasse. Au moment de la compilation, tout est OK, mais dans le testeur, lorsque la condition "appropriée" arrive, rien ne change. Veuillez indiquer ce qui ne va pas avec la condition du prix qui se déplace au-delà des niveaux de signal ?

//-------------------------выход цены за пределы сигнальных уровней-----------------------------------------------------------------------------------------------
 price=iHigh(Symbol(),PERIOD_M15,0);                                                               //Сигнальный уровень О(Сердцевина)
 ObjectCreate("UrO",OBJ_HLINE,0,0,price);
 ObjectSet("UrO",OBJPROP_COLOR,clrYellowGreen);                               
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
 priceA=price+30*Point;                                                                            //Сигнальный уровень А(Максимум)
 ObjectCreate("UrA",OBJ_HLINE,0,0,priceA);
 ObjectSet("UrA",OBJPROP_COLOR,clrDarkSlateBlue); 
//---------------------------------------------------------------------------------------------------------------------------------------------------------------- 
 priceB=price-30*Point;                                                                            //Сигнальный уровень B(Минимум)
 ObjectCreate("UrB",OBJ_HLINE,0,0,priceB); 
 ObjectSet("UrB",OBJPROP_COLOR,clrOrangeRed); 
//--------------------------------------------------------------------------
if((Bid>=priceA) ||(Bid<=priceB)){                                                                 //если цена вышла за одну из ГРАНИЦ, сдвинуть уровни
  ObjectSet("UrO",OBJPROP_PRICE1,iHigh(Symbol(),PERIOD_M15,0));  
                                                                                             

Le niveau"UrA" ou"UrB" devrait être déplacé vers le maximum de la dernière bougie de la m15, mais cela ne se produit pas. Quelqu'un sait-il pourquoi ?

 
vikzip:

Bonjour, je n'arrive pas à résoudre le problème du déplacement des niveaux de signal lorsque le prix les dépasse. Au moment de la compilation, tout est OK, mais dans le testeur, lorsque la condition "appropriée" arrive, rien ne change. Veuillez indiquer ce qui ne va pas avec la condition du prix qui se déplace au-delà des niveaux de signal ?

Le niveau"UrA" ou"UrB" devrait être déplacé vers le maximum de la dernière bougie de la m15, mais cela ne se produit pas. Quelqu'un sait-il pourquoi ?


Quel est le problème avec ObjectMove()?

 
Vitalie Postolache:

Quel est le problème avec ObjectMove()?


Merci ! !!)

 
Vitalie Postolache:

Quel est le problème avec ObjectMove()?


La fonction est géniale ! Mais la condition n'est pas remplie pour une raison quelconque ! Quelqu'un en connaît-il la raison ?

  double price;                                                                                    //цена сердцевины
  double priceA;                                                                                   //цена верхнего сигнального уровня
  double priceB;                                                                                   //цена нижнего сигнального уровня
//+------------------------------------------------------------------------------------------------------------------------------------------------------------
int start(){
//-------------------------выход цены за пределы сигнальных уровней-----------------------------------------------------------------------------------------------

price=iHigh(Symbol(),PERIOD_M15,0);                                                               //Сигнальный уровень О(Сердцевина)
ObjectCreate("UrO",OBJ_HLINE,0,0,price);
ObjectSet("UrO",OBJPROP_COLOR,clrYellowGreen);                                                                                                                               
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
 priceA=price+30*Point;                                                                            //Сигнальный уровень А(Максимум)
ObjectCreate("UrA",OBJ_HLINE,0,0,priceA);
ObjectSet("UrA",OBJPROP_COLOR,clrDarkSlateBlue); 
//---------------------------------------------------------------------------------------------------------------------------------------------------------------- 
 priceB=price-30*Point;                                                                            //Сигнальный уровень B(Минимум)
ObjectCreate("UrB",OBJ_HLINE,0,0,priceB); 
ObjectSet("UrB",OBJPROP_COLOR,clrOrangeRed); 
 //---------------------------------------------------------------------------------------------------------------------------------------------------------------
if((Bid<=priceB)||(Bid>=priceA)){                                                                 //если цена вышла за одну из ГРАНИЦ
  ObjectsDeleteAll();                                                                             //для примера удаляю все объекты, но этого не происходит!
  }                                                                                               //Почему ведь очевидно на тестере цена выходит за пределы, но ни чего не происходит???
return(0);
}
Quelqu'un peut-il expliquer quelle est l'erreur, s'il vous plaît ?
 

Bonjour !

Je commence tout juste à apprendre MQL4. Je n'arrive pas à comprendre pourquoi le script ignore le bouton"Allow automatic trading" dans MT4 (ver. 4.0 build 1090).

Je ne peux pas m'occuper de ce genre de construction :

int start()
{

     Alert("Привет!");

return;
}

Je n'appuie pas sur le bouton, mais il affiche toujours une fenêtre avec une alerte. Lorsque je définis un ordre dans un script, celui-ci est déclenché à chaque tick sans interruption, que le bouton Autotrading soit activé ou non.


J'ai essayé une telle construction :


int start()
{

 while(!IsStopped())
    {
    
      Alert("Привет!");

     if(!IsExpertEnabled()) break;
    }


return;
}

Au début, cela semblait fonctionner, mais en compliquant le script, cela a également cessé de fonctionner...

Je ne sais pas si c'est censé être comme ça, mais je ne ressens pas la fluidité du travail de l'EA : quand je change d'EA, l'ancienne continue à travailler comme en arrière-plan, mais peut-être que je ne l'ai pas encore compris.

 
Dimitry-1983:

Bonjour !

Je commence tout juste à apprendre MQL4. Je n'arrive pas à comprendre pourquoi le script ignore le bouton"Allow automatic trading" dans MT4 (ver. 4.0 build 1090).

Je ne peux pas m'occuper de ce genre de construction :

Je n'appuie pas sur le bouton, mais il affiche toujours une fenêtre avec une alerte. Lorsque j'établis un ordre dans un script, il le déclenche à chaque tick sans s'arrêter, que le bouton Autotrade soit activé ou non.


J'ai essayé une telle construction :


Au début, cela semblait fonctionner, mais en compliquant le script, cela a également cessé de fonctionner...

Je ne sais pas si c'est censé être comme ça, mais je ne ressens pas la fluidité du travail de l'EA : quand je change d'EA, l'ancienne continue à travailler comme en arrière-plan, mais peut-être que je ne l'ai pas encore compris.

Ce bouton n'affecte que les fonctions de trading. Tout le reste fonctionne comme il se doit.