Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1081

 
Pokrov:
Hola, ¿podríais decirme cómo obtener los datos de la última barra del array enlazado mediante SetIndexBuffer? Gracias.
massiv[1]
 
Foxonn:
Hola, ¿pueden aconsejar cómo encontrar el punto mínimo y el punto máximo, digamos desde las 08:00 am hasta las 15:00 pm hora del corredor en el marco temporal M5?
iBarShift(), iLowest(), iHighest().
 
evillive:
massiv[1]
¿Qué tal si en el bucle, massiv[i+1] daun array fuera de rango

 
Pokrov:
¿Qué tal si en el bucle, massiv[i+1] da un array fuera de rango

bucle de esta manera, es difícil de decir.
 
evillive:
ciclo aquí, es muy difícil de decir.
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));
}
Necesita los datos de la última barra
 
Pokrov:
Necesita los datos de la última barra
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:
NO he visto ninguno en las condiciones, lo siento, voy a revisar todo ahora.
 
evillive:
iBarShift(), iLowest(), iHighest().
¿Puedes explicar con más detalle cómo enlazar todo esto y establecer el rango de tiempo de los puntos altos y bajos? (si puede vivir el código de ejemplo)
P.d: Voy a empezar a estudiar mql, por favor, tened paciencia =)
 
evillive:
Todo funciona, ¡muchas gracias!
 
Foxonn:
¿Puedo tener más detalles sobre cómo unirlo todo y establecer el rango de tiempo para encontrar los puntos altos y bajos? (si puede vivir el código de ejemplo)
P.s: Voy a empezar a aprender mql, por favor, tened paciencia =)

Puedes leer mucha información interesante por estas palabras clave en la ayuda, sólo tienes que pulsar F1 en el código de ejemplo en la palabra requerida.

Aproximadamente, el código para incrustar en el indicador tendrá este aspecto:

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)); //и максимум
//////
}