Indicador Preguntas varias - página 6

 
Respondió mirando más de cerca.
 
Marco vd Heijden:

Bueno, si se trata de cambiar de marco de tiempo, entonces el temporizador no es una buena opción porque el temporizador se destruye al cambiar de marco.

Puedes crear tus líneas en la función OnInit(), y actualizarlas en las funciones OnTick() o OnTimer().

También tenga en cuenta el ObjectsDeleteAll() en la función OnDeint() esto se asegurará de que todo se elimina antes de que se crea de nuevo en su nuevo marco.

---

Y adicionalmente si quieres actualizar las líneas cada vez que surja una nueva vela puedes combinar el ejemplo de la página anterior con el último para darte esto:

...

Si hay más problemas, por favor muestre algún código.

He investigado tus últimos comentarios.

Otros 2 grandes comentarios. Parece que el código similar (su comentario # 18), pero que es muy diferente para mí.

Así que, sí me sentía 'Timer' destruir cuando me cambio de marco. Pero eso es muy útil para mí porque mi actualización del indicador una vez en un PERIOD_**'s.

¡Si! Ya creo las líneas principales en la función especial init(), y las actualizaciones en la función OnTimer().

(usted puede entenderme más claramente desde el código de abajo)

...surge una nueva vela que puedes combinar...

Si hay másproblemas...

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Como he dicho hay un problema que lleva más tiempo. En este momento tengo que mostrar algo de mi código del indicador. Y no uso 'operador switch & ObjectMove()' en mi indicador.

@Marco

Por favor, hágame saber es por debajo de código es bueno o qué?

¿Cuál es su consejopodría empezar a investigar ampliamente sus dos últimos comentarios y podría involucrar 'switch() y ObjectMove() ' a mi indicador? (¿Por qué estoy preguntando antes de hacer? - porque se necesita mucho tiempo).

(como usted ve que tengo más beneficio de su # 18 commment - y ahora me enfrento dilema entre mi código de abajo y sus dos últimos grandes comentarios)

//|+--------------------------------------------------------------------------------+
int  init()
{
    EventSetMillisecondTimer( 1250 );
    _CreateLines_M5();

    return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int  start()
{
    return(0);
}
//|+--------------------------------------------------------------------------------+
int  deinit()
{
    ObjectsDeleteAll( 0, _prefix );
    return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
    //---
    if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
    {
         _dt_Prd_M5  = iTime( Symbol(), _prd_M5, 0 );
         _CreateLines_M5();
    }
    return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
    //---
    int _dayCnt_M5 = _prd_cnt + 0;
    int    _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
    for ( i = 0; i < _cnt_M5; i++ )
    {
        _time_M5     = Time[i];
        _prdCvrt_M5  = PeriodSeconds( _prd_M5 );
        _timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;

        _vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );

        if ( _Period < PERIOD_M15 )
        {
            if (
                    ...
                    TimeHour( _timeCvrt_M5 ) == 12
               )
            {
                ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0  );
            }
        }
    }
    return;
}

Todo lo mejor para ti.

 
Keith Watford:

No sé si alguien más, pero encuentro que tu mezcla de fuentes, colores, negritas y cursivas, etc., distraen y molestan. De hecho, no me he molestado en leer este post.

Completamente de acuerdo, desde el inicio del tema estoy "saltando" por encima de todos estos comentarios.
 
Max Enrik:

He investigado tus últimos comentarios.

Otros 2 grandes comentarios. Parece que el código similar (su comentario # 18), pero que es muy diferente para mí.

Así que, sí me sentía 'Timer' destruir cuando cambio de marco. Pero eso es muy útil para mí porque mi actualización del indicador una vez en un PERIOD_**'s.

¡Si! Ya creo las líneas principales en la función especial init(), y las actualizaciones en la función OnTimer().

(usted puede entenderme más claramente desde el código de abajo)

...surge una nueva vela que puedes combinar...

Si hay másproblemas...

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Como he dicho hay un problema que lleva más tiempo. En este momento tengo que mostrar algo de mi código del indicador. Y no uso 'operador switch & ObjectMove()' en mi indicador.

@Marco

Por favor, hágame saber es por debajo de código es bueno o qué?

¿Cuál es su consejopodría empezar a investigar ampliamente sus dos últimos comentarios y podría involucrar 'switch() y ObjectMove() ' a mi indicador? (¿Por qué estoy preguntando antes de hacer? - porque se necesita mucho tiempo).

(como usted ve que tengo más beneficio de su # 18 commment - y ahora me enfrento dilema entre mi código de abajo y sus dos últimos grandes comentarios)

//|+--------------------------------------------------------------------------------+
int  init()
{
    EventSetMillisecondTimer( 1250 );
    _CreateLines_M5();

    return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int  start()
{
    return(0);
}
//|+--------------------------------------------------------------------------------+
int  deinit()
{
    ObjectsDeleteAll( 0, _prefix );
    return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
    //---
    if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
    {
         _dt_Prd_M5  = iTime( Symbol(), _prd_M5, 0 );
         _CreateLines_M5();
    }
    return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
    //---
    int _dayCnt_M5 = _prd_cnt + 0;
    int    _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
    for ( i = 0; i < _cnt_M5; i++ )
    {
        _time_M5     = Time[i];
        _prdCvrt_M5  = PeriodSeconds( _prd_M5 );
        _timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;

        _vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );

        if ( _Period < PERIOD_M15 )
        {
            if (
                    ...
                    TimeHour( _timeCvrt_M5 ) == 12
               )
            {
                ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0  );
            }
        }
    }
    return;
}

Todo lo mejor para ti hombre.

Bueno, si funciona y si no lo hace sólo seguir intentando.

 
Marco vd Heijden:

Bueno, si funciona y si no, sigue intentándolo.

¡Muchas gracias!
 

#Tiempo de los corredores - Reabrir

He leído algunos foros aquí y allá. Tal vez mi solución cualquiera de ellos. Pero no he descubierto.

Antes de este comentario - He intentado una vez más. Pero no puedo encontrar la solución.
Por lo tanto, tengo 2 corredor, A y B.

  • A: Vline objetos coloca el tiempo correcto. Que quiero. por ejemplo: Tiempo 2017.02.18 0:00 también vline objeto colocado mismo tiempo.
  • B: Vline objeto colocado tiempo incorrecto ( tal vez estoy equivocado ). eg: Tiempo 2017.02.18 1:00 pero el objeto vline coloca 0:00.
Así que si alguien entiende mi preocupación, cualquier comentario sería mejor para mí.

Que tengan un buen fin de semana.

 
Max Enrik:

#Tiempo de los corredores - Reabrir

He leído algunos foros aquí y allá. Tal vez mi solución cualquiera de ellos. Pero no he descubierto.

Antes de este comentario - He intentado una vez más. Pero no puedo encontrar la solución.
Por lo tanto, tengo 2 corredor, A y B.

  • A: Vline objetos coloca el tiempo correcto. Que quiero. por ejemplo: Tiempo 2017.02.18 0:00 también vline objeto colocado mismo tiempo.
  • B: Vline objeto colocado tiempo incorrecto ( tal vez estoy equivocado ). eg: Tiempo 2017.02.18 1:00 pero el objeto vline coloca 0:00.
Así que si alguien entiende mi preocupación, cualquier comentario sería mejor para mí.

Que tengan un buen fin de semana.

Necesitaría ver el código
 

El código de abajo me da resultados diferentes en dos Brokers diferentes.
( Mi comentario anterior podría ayudar a entenderme )

Gracias por adelantado.

void PerioDay()
  {
// High

   ObjectSet("PeriodHigh",OBJPROP_PRICE1,iHigh(Symbol(),PERIOD_D1,0));
   ObjectSet("PeriodHigh",OBJPROP_PRICE2,iHigh(Symbol(),PERIOD_D1,0));

   ObjectSet("PeriodHigh",OBJPROP_TIME1,TimeCurrent());
   ObjectSet("PeriodHigh",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));

// Low

   ObjectSet("PeriodLow",OBJPROP_PRICE1,iLow(Symbol(),PERIOD_D1,0));
   ObjectSet("PeriodLow",OBJPROP_PRICE2,iLow(Symbol(),PERIOD_D1,0));

   ObjectSet("PeriodLow",OBJPROP_TIME1,TimeCurrent());
   ObjectSet("PeriodLow",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));
  }
 

Si te refieres a que los valores de iHigh e iLow difieren entre corredores, eso es bastante común.

2 razones:

1. Los precios varían ligeramente entre los corredores, y

2. Si los servidores de los brokers tienen diferentes desviaciones GMT, las barras comienzan a diferentes horas.

 
honest_knave:

Si te refieres a los valores de iHigh y iLow difieren entre los corredores, que es bastante común.
Hay dos razones:
1. Los precios varían ligeramente entre los corredores, y
2. Si los servidores de los brokers tienen diferentes desviaciones GMT, las barras comienzan a diferentes horas.

Me refiero sólo a la hora diferente.

Entonces, ¿no hay posibilidad de resolver este problema, por favor?

Muchas gracias.