Indicador Preguntas varias - página 7

 

Sí, pero hay que codificarla.

Ejemplo:

Hora localAgente AAgente B
00:00
(GMT)
01:00
(GMT+1)
02:00
(GMT+2)

No puede utilizar PERIOD_D1 porque

  • La barra D1 del corredor A comienza a las 23:00 locales (1 hora antes)
  • La barra D1 del Broker B comienza a las 22:00 local (2 horas antes)

Así que debe utilizar las barras H1 con iBarShift y iHighest / iLowest (o CopyHigh/CopyLow) para crear manualmente su "día" como lo desea.

----

Aquí hay un script rápido que puede ilustrar el punto.

Colócalo en un gráfico y verás que dibuja un rectángulo alrededor de un "día" que comienza a las 23:00 hora del servidor.

#define strict
#property show_inputs

#define DAY 86400
#define HOUR 3600

extern int time_shift = -1; // Hours to shift server time by

void OnStart()
  {
   time_shift*=HOUR;

   datetime oldest_bar = Time[Bars-1],
            midnight   = oldest_bar-(oldest_bar%DAY);

   while(midnight<=TimeCurrent())
     {
      datetime day_begin = midnight + time_shift,
               day_end   = day_begin + DAY - 1;
      double high[],
             low[];
      int high_cnt = CopyHigh(_Symbol, PERIOD_H1, day_begin, day_end, high),
          low_cnt  = CopyLow (_Symbol, PERIOD_H1, day_begin, day_end, low);
      if(high_cnt>0 && low_cnt>0)
        {
         double day_high = high[ArrayMaximum(high)],
                day_low  = low [ArrayMinimum(low)];
         string obj_name = TimeToString(day_begin,TIME_DATE);
         ObjectCreate(0, obj_name, OBJ_RECTANGLE, 0, day_begin, day_high, day_end, day_low);
        }
      midnight+=DAY;
     }
  }  


 
honest_knave:

Sí, pero hay que codificarla.

Debería estudiar este ejemplo.

Muchas gracias.

 

Una vez más, muchas gracias por su gran ejemplo.
Después de su comentario he resuelto fácilmente mi problema.

---

Intenté algo para la compensación de tiempo establecida automáticamente para diferentes corredores, desafortunadamente eso no funcionó.

P:¿Puedo escribir algún código para establecer automáticamente la compensación de tiempo para diferentes corredores, es posible?
( Todavía intento algo para ello )

Muchas gracias.

 

Intento el siguiente código, pero no me da el valor correcto.

P:¿Qué hay de malo en el siguiente código? ( No lo he entendido )

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

Muchas gracias.

 
Max Enrik:

Intento el siguiente código, pero no me da el valor correcto.

P:¿Qué hay de malo en el siguiente código? ( No lo he entendido )

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

Muchas gracias.

Parece que no todos los corredores de bolsa de configurar esto correctamente. Por favor, vea aquí
 
honest_knave:
Parece que no todos los corredores de bolsa configuran esto correctamente. Por favor, vea aquí

¡ No hay ninguna posibilidad!
Estoy pensando que los programadores profesionales y los códigos se rindieron? Por supuesto que no: / ( pero yo sí )

Muchas gracias.

( Tengo la idea de que voy a tratar por lo menos - más tarde )
 
Max Enrik:

¡ No hay ninguna posibilidad!
¡Sólo estoy pensando que los programadores profesionales y los códigos se dieron por vencidos?! Por supuesto que no: / ( pero yo sí )

Muchas gracias.

( Tengo la idea de que voy a tratar por lo menos - más tarde )

Siempre hay soluciones.

Por ejemplo, puedes retroceder a través de las barras H1 o M30 en busca de una brecha de tiempo mayor que el lapso de tiempo de 1 barra (es decir, el mercado estaba cerrado durante esta brecha).

Pero hay que tener cuidado con los fines de semana y los días festivos, y con la historia incompleta.

 
honest_knave:

Siempre hay soluciones.
Por ejemplo, puede retroceder a través de las barras H1 o M30 en busca de una brecha de tiempo mayor que el lapso de tiempo de una barra (es decir, el mercado estuvo cerrado durante esta brecha).
Pero hay que tener cuidado con los fines de semana y los días festivos, y con la historia incompleta.

Muchas gracias por tu útil comentario.
 

Solo necesito aprender sobre el tiempo de la fecha, porque hasta ahora cuando trato de escribir código relacionado con el tiempo de la fecha siempre paso mucho tiempo en esa parte de los códigos. ( incluso he terminado con éxito mis scripts pero nunca entiendo más claramente )
Así que ahora trato de obtener los datos de la primera barra (la primera barra del día actual 1m, 5m, 15m, 30m, 1h y así sucesivamente) del día, pero no puedo.

( Tengo muchas y muchas pestañas en el navegador google chrome se refiere a esto - sólo tonterías )

Así que alguien puede ayudarme a escribir el código para la primera barra del día ( M1, 5M y así sucesivamente ) con el ejemplo y explicar, por favor.

Por supuesto mañana seguiré investigando sobre este tema.

Muchas gracias de antemano.

 

La primera barra del día debe ser la primera barra después de que TimeHour() haya comenzado a contar.

Esa será por supuesto la primera barra de cualquier cosa M1 , M5 , M15 etc todos ellos comienzan nuevas barras.