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

 
Pokrov:
Bonjour, pouvez-vous me dire comment récupérer les données de la dernière barre à partir du tableau lié via SetIndexBuffer ? Merci.
massiv [1]
 
Foxonn:
Bonjour, pouvez-vous me conseiller sur la façon de trouver le point bas et le point haut, disons de 08:00 à 15:00 heures, heure du courtier, sur l'échelle de temps M5 ?
iBarShift(), iLowest(), iHighest().
 
evillive:
massiv [1]
Et si dans la boucle, massiv[i+1] donneun tableau hors de portée

 
Pokrov:
Et si dans la boucle, massiv[i+1] donne un tableau hors de portée

boucle de cette façon, c'est difficile à dire.
 
evillive:
le cycle ici, c'est si difficile à dire.
int i,limit;
   limit=rates_total-prev_calculated;
if(prev_calculated<1) limit=rates_total-1;
for(i=limit; i>0; i--)
   
{
internal_channelUp[i]= iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,internal_channel,i));
internal_channelDn[i]= iLow(NULL,0,iLowest(NULL,0,MODE_LOW,internal_channel,i));
}
Besoin des données de la dernière barre
 
Pokrov:
Besoin des données de la dernière barre
int i,limit;
   limit=rates_total-prev_calculated-1;
if(prev_calculated<1) limit=rates_total-1;
for(i=limit; i>0; i--)
   
{
internal_channelUp[i]= iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,internal_channel,i+1));
internal_channelDn[i]= iLow(NULL,0,iLowest(NULL,0,MODE_LOW,internal_channel,i+1));
}
 
evillive:
Je n'en ai pas vu dans les conditions, désolé, je vais tout vérifier maintenant.
 
evillive:
iBarShift(), iLowest(), iHighest().
Pouvez-vous expliquer plus en détail comment relier tout cela et définir la plage de temps des points hauts et bas ? (si vous pouvez vivre l'exemple du code)
P.s : Je vais commencer à étudier mql, s'il vous plaît soyez patient =)
 
evillive:
Tout fonctionne, merci beaucoup !
 
Foxonn:
Puis-je avoir plus de détails sur la façon de relier le tout et de définir la plage de temps pour trouver les points hauts et bas ? (si vous pouvez vivre l'exemple du code)
P.s : Je vais commencer à apprendre mql, s'il vous plaît soyez patient =)

Vous pouvez lire beaucoup d'informations intéressantes grâce à ces mots-clés dans l'aide, il vous suffit d'appuyer sur F1 dans l'exemple de code sur le mot requis.

En gros, le code à intégrer dans l'indicateur ressemblera à ceci :

input datetime timestart=D'2016.08.10 08:00'; //время поиска, от
input datetime timeend=D'2016.08.10 15:00';  //и до

int shiftstart=0,shiftend=0,diff=0; 
double hi=0,lo=0;

int OnCalculate()
{
/////
shiftstart=iBarShift(_Symbol,PERIOD_M5,timestart);                                 //выясняем индекс бара с временем старта поиска
shiftend=iBarShift(_Symbol,PERIOD_M5,timeend);                                     //выясняем индекс бара с временем финиша поиска 
diff=shiftstart-shiftend;                                                      //вычисляем кол-во баров для поиска экстремумов
lo=iLow(_Symbol,PERIOD_M5,iLowest(_Symbol,PERIOD_M5,MODE_LOW,diff,shiftend));  //выясняем минимум 
hi=iHigh(_Symbol,PERIOD_M5,iHighest(_Symbol,PERIOD_M5,MODE_HIGH,diff,shiftend)); //и максимум
//////
}