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

 
¿Cómo obtener Open[] del gráfico actual pero no del marco temporal actual?
 

Hola a todos.

Gracias a todos los que ayudan a los recién llegados, sin escatimar su tiempo, a pesar de que el altruismo ha perdido su valor en estos días.

Pido ayuda a los usuarios del foro, he leído todo el hilo de Igor, pero no he encontrado lo que necesito, así que he decidido escribir aquí.

Una función que sospecho no es difícil y en algún lugar ya lo es, pero...

¿Cómo calcular el máximo/mínimo de la vela diaria (semanal, ...) actual (anterior, ...) un MINUTO(5,15,30,60, ...) ATRAS?

Estaré muy agradecido a los profesionales altruistas.

 
KAVrus:

Hola a todos.

Gracias a todos los que ayudan a los recién llegados, sin escatimar su tiempo, a pesar de que el altruismo ha perdido su valor en estos días.

Pido ayuda a los usuarios del foro, he leído todo el hilo Igor, pero no he encontrado lo que necesito, así que he decidido escribir aquí.

Sospecho que la función no es complicada y que ya existe en alguna parte, pero...

¿Cómo se calcula el máximo/mínimo de la vela actual (anterior, ...) diaria (semanal, ...) un MINUTO(5,15,30,60, ...) ATRÁS?

Estaré muy agradecido a los profesionales altruistas.


:)))- es gracioso.

Siga leyendo: encontrará muchas cosas interesantes. :)))

 
boing9267:
¿Cómo obtener Open[] del gráfico actual pero no del marco temporal actual?
iOpen().
 
TarasBY:

:)))-)) - me hizo reír.

Siga leyendo: encontrará muchas cosas interesantes. :)))


Es un pecado reírse de .....))


Lo leí... "Los volúmenes de otros plazos no están modelados"

Entonces debo de haber expresado mal el sentido de la pregunta... Intentaré simplificarlo:

¿Cómo se calcula el máximo/mínimo de la vela actual un MINUTO DESPUÉS?

 
TarasBY:
iOpen().


Gracias
 
KAVrus:

Es un pecado reírse de .....))


Leer... "Los volúmenes de otros plazos no se simulan"

Entonces debo de haber expresado mal el sentido de la pregunta... Intentaré simplificarlo:

¿Cómo se calcula el máximo/mínimo de la vela diaria actual un MINUTO DESPUÉS?

Es más fácil reírse que leer (y mucho menos "profundizar")... :)))

Tratando de resolver el problema en código:

    //---- Находим последний расчётный бар на нужном нам тамфрейме
    int li_Shift = iBarShift (Symbol(), PERIOD_M1, iTime (Sumbol(), PERIOD_D1, 0)),
        //---- Ищем на нужном промежутке номер бара с High
        li_Bar = iHighest (Symbol(), PERIOD_M1, MODE_HIGH, li_Shift, 1);
    //---- Получаем значение High
    double ld_HIGH = iHigh (Symbol(), PERIOD_M1, li_Bar);

En la imagen y la similitud con el mínimo ¿puede manejarlo? ;)

P.D. Como en el historial de precios tenemos una discreción con un tamaño mínimo de 1 minuto, es correcto decir no "hace un minuto", sino "sin contar el último minuto".

 
TarasBY:

Reírse es más fácil que leer (y mucho menos "meterse")... :)))

Tratando de resolver el problema en código:

En su imagen, ¿puede manejar el mínimo? ;)

P.D. Como en el historial de precios tenemos una discreción, cuyo mínimo es 1 minuto, es correcto decir no "hace un minuto", sino "sin contar el último minuto".


¡¡¡Gracias!!!
 
Hola chicos, por favor ayuda con el indicador sAccelerator.mq4. Quiero hacer una alerta cuando se cruza la línea 0, y la alerta de coloración para eliminar, no funciona, y en mql francamente no entiendo.
//+------------------------------------------------------------------+
//|                                                 sAccelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Lime
#property  indicator_color3  Red
//---- indicator buffers
double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];
double ExtBuffer3[];
double ExtBuffer4[];
// Номер бара, по которому будет искаться сигнал
#define SIGNAL_BAR 1
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(5);
//---- drawing settings
   SetIndexStyle(0, DRAW_NONE);
   SetIndexStyle(1, DRAW_HISTOGRAM);
   SetIndexStyle(2, DRAW_HISTOGRAM);
   IndicatorDigits(Digits + 2);
   SetIndexDrawBegin(0, 38);
   SetIndexDrawBegin(1, 38);
   SetIndexDrawBegin(2, 38);
//---- 4 indicator buffers mapping
   SetIndexBuffer(0, ExtBuffer0);
   SetIndexBuffer(1, ExtBuffer1);
   SetIndexBuffer(2, ExtBuffer2);
   SetIndexBuffer(3, ExtBuffer3);
   SetIndexBuffer(4, ExtBuffer4);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("sAC");
   SetIndexLabel(1, NULL);
   SetIndexLabel(2, NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars = IndicatorCounted();
   double prev, current;
//---- last counted bar will be recounted
   if(counted_bars > 0) 
       counted_bars--;
   limit = Bars - counted_bars;
//---- macd counted in the 1-st additional buffer
   for(int i = 0; i < limit; i++)
       ExtBuffer3[i] = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_MEDIAN, i) - 
                       iMA(NULL, 0, 34, 0, MODE_SMA, PRICE_MEDIAN, i);
//---- signal line counted in the 2-nd additional buffer
   for(i = 0; i < limit; i++)
       ExtBuffer4[i] = iMAOnArray(ExtBuffer3, Bars, 5, 0, MODE_SMA, i);
//---- dispatch values between 2 buffers
   bool up = true;
   for(i = limit - 1; i >= 0; i--)
     {
       current = ExtBuffer3[i] - ExtBuffer4[i];
       prev = ExtBuffer3[i+1] - ExtBuffer4[i+1];
       if(current > prev) 
           up = true;
       if(current < prev) 
           up = false;
       if(!up)
         {
           ExtBuffer2[i] = current;
           ExtBuffer1[i] = 0.0;
         }
       else
         {
           ExtBuffer1[i] = current;
           ExtBuffer2[i] = 0.0;
         }
       ExtBuffer0[i] = current;
     }
//---- done
    //---- Статические переменные, в которых хранятся
    //---- время последнего бара и направление последнего сигнала
    static int PrevSignal = 0, PrevTime = 0;
 
    //---- Если баром для анализа выбран не 0-й, нам нет смысла проверять сигнал
    //---- несколько раз. Если не начался новый бар, выходим.
    if(SIGNAL_BAR > 0 && Time[0] <= PrevTime ) 
        return(0);
    //---- Отмечаем, что этот бар проверен
    PrevTime = Time[0];
          if(PrevSignal <= 0)
      {
        if(MainBuffer[SIGNAL_BAR] - 0.0 > 0 && 
           0.0 - MainBuffer[SIGNAL_BAR+1] >= 0)
          {
            PrevSignal = 1;
            Alert("sAC (", Symbol(), ", ", Period(), ")  -  BUY!!!");
          }
      }
    if(PrevSignal >= 0)
      {
        if(0.0 - MainBuffer[SIGNAL_BAR] > 0 && 
           MainBuffer[SIGNAL_BAR+1] - 0.0 >= 0)
          {
            PrevSignal = -1;
            Alert("sAC (", Symbol(), ", ", Period(), ")  -  SELL!!!");
          }
      } 
   return(0);
  }
//+------------------------------------------------------------------+

 

Señores, por favor, aconsejen cómo encontrar la media de las garrapatas en un bar. Asumo lo siguiente:

Promedio[i] = (cantidad total de ticks de la barra[i])/Volumen[i]; ¿Cómo encontrar la cantidad total de ticks de la barra deseada?