[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 446

 

Bonjour. Il y a un problème avec l'écriture d'un idnikator, en fait il y a deux tableaux pour les tampons,

Mass1

Mass2

Et les données de chaque élément du tableau sont comptées en petits nombres, c'est-à-dire que les valeurs sont 15, 27, 41, 14, etc.

Si je définis le type int des tableaux et si je parcours chaque élément, je peux voir que les valeurs du tableau correspondent aux valeurs calculées, mais si le type est Int, les lignes de l'indicateur ne sont pas affichées dans la fenêtre.

Si je définis le type de tableau double, le tableau stocke plus de valeurs dont je ne sais pas d'où elles proviennent, par exemple 21456545454, 43654534532, 24325235232, etc. Qui ne correspondent pas du tout aux valeurs calculées.

Quel pourrait être le problème ?

 

Bonjour à tous !

Aidez-moi.

J'ai écrit un script simple pour ouvrir un ordre (à partir du tutoriel MQL4).

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   Alert (GetLastError());
   return;                                   // Выход из start()
  }

Dans cet exemple, le code est donné pour les instruments à 4 chiffres.

J'ai un compte dans une société qui a 5 chiffres après le point.

Pouvez-vous s'il vous plaît modifier le code pour 5 chiffres et pourquoi l'erreur 4109 (trading not allowed) est affichée lorsque le script s'exécute.

 
sss2019: Si je définis le type de tableau int, et si je parcours chaque élément, je peux voir que les valeurs du tableau correspondent aux valeurs calculées, mais si le type est Int, les lignes de l'indicateur ne s'affichent pas dans la fenêtre.

Si je définis le type du tableau comme double, le tableau stocke plus de valeurs dont je ne sais pas d'où elles proviennent, par exemple 21456545454, 43654534532, 24325235232, etc. Qui ne correspondent pas du tout aux valeurs calculées.

Quel peut être le problème ?

Il faut faire appel aux télépathes. Mais il est tout à fait possible que le problème soit une incohérence lors de la division de nombres réels par des nombres entiers.
 

Bonjour, pouvez-vous m'aider à traiter cet indicateur ? L'idée est qu'à l'ouverture de la session américaine à 16:00 heure de Moscou, une marque est placée au-dessus de la bougie, sur n'importe quelle échelle de temps. J'ai des problèmes avec les fonctions datetime, j'ai lu le tutoriel plus d'une fois, regardé d'autres indicateurs, mais je ne comprends toujours pas.

Dossiers :
exfbtix.mq4  2 kb
 
Yulia:

Bonjour, pouvez-vous m'aider à traiter l'indicateur. L'idée est qu'à l'ouverture de la session américaine à 16:00 heure de Moscou, une marque est placée au-dessus de la bougie, sur n'importe quelle échelle de temps. J'ai des problèmes avec les fonctions datetime, j'ai lu le tutoriel plus d'une fois, regardé d'autres indicateurs, mais je ne comprends toujours pas.


#property indicator_chart_window // указываем, что идикатор будет рисоваться в окне, где рисуется график валютной пары
#property indicator_buffers 1 // сколько линий будет рисовать наш индикатор
#property indicator_color1 Lime // какого цвета будет первая линия 
//---- buffers
double Buffer[];

extern int hour =9;

//+------------------------------------------------------------------+
int init()
{
  SetIndexStyle(0,DRAW_ARROW);
  SetIndexArrow(0,108);
  SetIndexBuffer(0,Buffer);  
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{

int counted_bars=IndicatorCounted(); // сколько баров уже просчитано для начего индикатора
if(counted_bars<0) return(-1);// проверяем ошибки


int i=0;
    while(i<Bars)
         {
         if(TimeHour(Time[i])==hour)
            {        
            Buffer[i]=High[i]+150*Point;
            }
         
         i++;
         }

return(0);
}
//+------------------------------------------------------------------+

 
 
Merci beaucoup, mais il y a une petite erreur, j'ai seulement besoin d'une marque sur la première bougie sur M1,M5 etc, sauf bien sûr le quotidien et au-dessus.
 
Reshetov:
Vous devrez consulter un télépathe. Mais il est tout à fait possible que le problème soit une incohérence dans la division des nombres réels par les nombres entiers.


Voici le code

int lowsum, highsum;
int Mass1[];
int Mass2[];

                        while(start1 < end1 + 1)
                                {
                                lowsum = lowsum + iVolume(Symbol(), PERIOD_M1, start1);
                                start1++;
                                }
                        while(start2 < end2 + 1)
                                {
                                highsum = highsum + iVolume(Symbol(), PERIOD_M1, start2);
                                start2++;
                                }
                        Mass[i] = lowsum;
                        Mass[i] = highsum;
                        Alert(Mass[i], " ", highsum);

En conséquence, l'alerte émet ces messages :

Vous pouvez voir que la variable a une valeur, mais vous ne pouvez pas assigner une valeur de variable à un tableau, je ne peux pas comprendre quel est le problème.

 
Yulia:
Merci beaucoup, mais un peu faux, j'ai seulement besoin d'une marque sur la première bougie sur M1,M5 etc., sauf bien sûr le quotidien et au-dessus.

Comme vous l'aviez, cela reste
 
sss2019:

Vous pouvez voir que la variable a une valeur, mais vous ne pouvez pas assigner une valeur de variable à un tableau, je ne peux pas comprendre quel est le problème.

Quelle est la taille du tableau ?
 
sss2019:


Voici le code

En conséquence, l'alerte émet ces messages :

Vous pouvez voir que la variable a une valeur, mais vous ne pouvez pas assigner une valeur de variable à un tableau, je ne peux pas comprendre quel est le problème.


Ne devez-vous pas définir la taille du tableau?
Raison: