Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
La primera barra del día debería ser la primera barra después de que TimeHour() comenzara a contar.
Eso será por supuesto la primera barra de cualquier cosa M1 , M5 , M15 etc todos ellos comienzan nuevas barras.
Lo probaré pronto, también estoy trabajando en este tema.
Muchas gracias.
Sigo leyendo foros e investigando, puedo encontrar foros similares, pero no puedo encontrar exactamente lo que quiero. ( tal vez no entiendo su estilo de código o ... )
Hice rápidamente la captura de pantalla, espero que esto podría ayudar a entender claramente a mí.
Gracias de antemano.
open=iOpen(Symbol(),PERIOD_D1,0);
// put in ontick
if(iOpen(Symbol(),PERIOD_D1,0)!=open)
{
if(TimeHour(open)==0)
{
Alert("New Day !!");
}
open=iOpen(Symbol(),PERIOD_D1,0); // assign new value every hour
}
He tomado unas cuantas cervezas así que espero que te hagas una idea, estoy seguro de que está mal en todos los sentidos posibles.
Creo que open debe ser reemplazado por time.
O tal vez incluso se puede hacer:
{
Alert("NEw DAy m8");
}
Me he tomado unas cuantas cervezas así que espero que os hagáis una idea, seguro que está mal de todas las maneras posibles.
ps. ¿qué pasó con el otro hilo? era casi 40 páginas?O tal vez usted pueda hacerlo:
( Traté de explicar mi problema en la sección de código fuente )
// this code gives me Hour 00:00 - but actually D1 time should show Hour 01:00 | this mean my broker shows absolutely wrong Hour for period PERIOD_D1
// But I need to write code to get first H1 bar Time of the day ( e.g: if first H1 bar 00:00 or 01:00 or ... ) instead of PERIOD_D1
// But I really struggle to write code for get today first H1 time
---
P.S
¿Crees que por qué no abro subtemas?
Todavía estoy trabajando en ello. Puedo encontrar soluciones en los foros. Ahora va bien también un poco lento.
Además:
Cuando empecé a escribir el panel de comercio de EA se pensó que tengo que escribir 4 scripts de función de venta, compra, cierre de todos los pedidos, EXIT ( eliminar ) EA.
Mientras trabajo en ello tengo muchas ideas... ahora que los EA's tienen más de 3k líneas.
Todavía debería escribir casi 10 funciones más útiles si me decidiera por todas ellas.
También tal vez cuando termine mi que el panel de comercio de EA voy a escribir un poco de historia acerca de cómo empecé a escribir la secuencia de comandos para mi panel de comercio de EA. ( aun no lo he terminado - realmente creo que quien lo vea la mayoría de la gente dirá: ¡Wow impresionante! ) jeje :)
---
Gracias Sr. Marco.
Muchas gracias a todos los que respondieron a mis comentarios y por su ayuda.
#property show_inputs
#define HOUR 3600
#define DAY 86400
extern int local_offset = 1; // local time offset from broker (hours)
void OnStart()
{
local_offset*=HOUR;
int D1_shift = (TimeCurrent()%DAY > local_offset) ? 0 : 1;
datetime broker_midnight = iTime(_Symbol,PERIOD_D1,D1_shift);
datetime local_midnight = broker_midnight + local_offset;
int M5_shift = iBarShift(_Symbol,PERIOD_M5,local_midnight);
datetime M5_time = iTime(_Symbol,PERIOD_M5,M5_shift);
double M5_open = iOpen(_Symbol,PERIOD_M5,M5_shift);
printf("M5_time: %s M5_open: %f", TimeToString(M5_time),M5_open);
}
Gracias por tu gran ejemplo.
Tal vez si me tomo un tiempo voy a tratar de explicar con el vídeo / imagen mañana.
Investigo mucho sobre este tema.
( también busco como estas palabras clave en google seo ( comentario no útil hasta ahora en seo): site:mql4.com | site:mql5.com primera barra del día )
¿Buscas una forma de detectar automáticamente el desfase horario local > del broker? por ejemplo, +1 hora
Si vas a tener una configuración manual (esto es mejor porque a veces no quieres usar la hora local sino otra zona horaria en conjunto) los pasos que debes seguir son como en mi script de arriba:
1. Obtenga la medianoche en la hora del corredor (usando iTime o a través de un cálculo)
2. 2. Convertirla en una medianoche local utilizando su configuración de desplazamiento
3. Ponga la medianoche local a través de iBarShift para obtener la barra correcta en su marco de tiempo elegido.
¿Estás buscando una manera de detectar automáticamente el desfase horario local > del broker? por ejemplo, +1 hora
Si vas a tener una configuración manual (esto es mejor porque a veces no quieres usar la hora local sino otra zona horaria en conjunto) los pasos que debes seguir son como en mi script de arriba:
1. Obtén la medianoche en la hora del broker (usando iTime o a través de un cálculo)
2. 2. Convertirla en una medianoche local usando su configuración de offset
3. 3. Poner la medianoche local a través de iBarShift para obtener la barra correcta en su marco de tiempo elegido.
Me has entendido perfectamente - que estoy buscando una manera de automáticamente... - Entonces, ¿por qué? Tengo pocos indicador importante ( auto hecho - con diferentes foros ayudó ) si elijo la forma manual - podría cambiar su configuración ... que es largo camino - Estoy tan perezoso. :)
Gracias mucho más!
Tal vez he encontrado la solución ( en este momento parece que está trabajando - Ya he probado 2 corredores diferentes que obtengo el tiempo correcto ).
Creo que la pregunta viene de la falta de experiencia.
Q:¿Cómo puedo mantener sólo la hora 1 en el resultado de abajo, por favor?
( En realidad he encontrado cómo puedo mantener sólo "1" de abajo resultado - pero necesito método profesional, por favor )
( e.g: resultado: 2017.02.2701:00:00 - Pero necesito mantener sólo: 1 )
Muchas gracias por todo.
( Voy a compartir cómo he encontrado la solución. - si no me ayudaron no puedo encontrar la solución - una más muchas gracias. )
Estaba buscando justo el código de abajo.
Pero todavía tengo que probarlo.
Period_Shift=iBarShift(Symbol(),PERIOD_H4,Period_Look);
Period_Time=iTime(Symbol(),PERIOD_H4,Period_Shift-1);
GMT_Offset=(Period_Time-iTime(Symbol(),PERIOD_W1,0)-PeriodSeconds(PERIOD_D1))/PeriodSeconds(PERIOD_H1); // result: 1
Si el código anterior no es correcto, por favor, háganmelo saber.
Muchas gracias @honest_knave y @Marco
Bueno Max considera esto, si usted está buscando un patrón, y se forma, entonces su gatillo se activará independientemente de la marca de tiempo.
Así que el gatillo puede tener varias marcas de tiempo en diferentes corredores, pero el momento exacto del gatillo sería aproximadamente el mismo en todos los corredores.
No exactamente, pero lo suficientemente cerca.