Indicador Preguntas varias

 

Hola,

#Hora de los corredores

Pasé algunas horas para leer algunos comentarios, pero no entendí cómo puedo establecer mi Tiempo deBroker a mis indicadores / cómo puedo establecer mis indicadores a mi Tiempo de Broker. (tal vez me confundí)

Mi hora del Broker comienza a partir de la 01:00, pero todos mis indicadores funcionan a partir de las 00:00.

Entonces, ¿cómo puedo resolver mi problema?

Por favor, ayúdeme.

Gracias.

(El inglés no es mi lengua materna).

 

#Tiempo de los corredores - Cerrado por ahora.

Resuelvo mi problema.

 

#Month OBJ_VLINE

Necesito crear líneas de Meses, pero me cuesta.

int _prd = PERIOD_MN1;
int _cnt_MN1 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_MN1, 0 ) );
for ( int i = 0; i < _cnt_MN1; i++ )
{
    //---date & time
    datetime _time          = Time[i]                                               ;
    datetime _prd_time      = iTime( Symbol(), _prd, 0 )                            ;
    datetime _timeCvrt_MN1  = _time + ( _time % _prd_time ) - PeriodSeconds( _prd ) ;
    //---name
    string   _vlineName_MN1 = _prefix + "PERIOD_MN1 - " + TimeToStr( _timeCvrt_MN1, TIME_DATE )    ;

    if ( _Period < PERIOD_MN1 )
    {
        ObjectCreate( _vlineName_MN1, OBJ_VLINE     , 0, _time, 0 )                 ;
        ObjectSet   ( _vlineName_MN1, OBJPROP_COLOR , C'180,160,080'  )             ;
    }   //---if Close
}   //---for Close

¿Puede alguien, por favor, me?

Mejor

 
Ya sabes cuándo empezó el mes: iTime(_Symbol, PERIOD_MN1, 0 ) No hace falta el bucle, ni todo lo demás. Sólo hay que trazar la línea.
datetime BOM = iTime( Symbol(), PERIOD_MN1, 0 ); // Beginning of the month.
string   _vlineName_MN1 = _prefix + "PERIOD_MN1 - " + TimeToStr( BOM, TIME_DATE )    ;
ObjectCreate( _vlineName_MN1, OBJ_VLINE     , 0, BOM, 0 )                 ;
ObjectSet   ( _vlineName_MN1, OBJPROP_COLOR , C'180,160,080'  )             ;
 
int _cnt_MN1 = 12; // 12 lines for a year 24 for two years and etc.
for ( int i = 0; i < _cnt_MN1; i++ )
{
   ObjectCreate(0,"PERIOD_MN1-"+IntegerToString(i),OBJ_VLINE,0,iTime(Symbol(),PERIOD_MN1,i),0);
   ObjectSetString(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_TOOLTIP,TimeToString(iTime(Symbol(),PERIOD_MN1,i),TIME_DATE));
   ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i), OBJPROP_COLOR , C'180,160,080'  );
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_WIDTH,1);
}
 
whroeder1:
Ya sabes cuándo empezó el mes: iTime(_Symbol, PERIOD_MN1, 0 ) No hace falta el bucle, ni todo lo demás. Sólo dibujar la línea.
datetime BOM = iTime( Symbol(), PERIOD_MN1, 0 ); // Beginning of the month.
string   _vlineName_MN1 = _prefix + "PERIOD_MN1 - " + TimeToStr( BOM, TIME_DATE )    ;
ObjectCreate( _vlineName_MN1, OBJ_VLINE     , 0, BOM, 0 )                 ;
ObjectSet   ( _vlineName_MN1, OBJPROP_COLOR , C'180,160,080'  )             ;

Gracias por la rápida respuesta y tu comentario.

También he probado su código, pero sólo veo un mes anterior 2016/10.

Pero necesito crear Líneas de Meses desde el año actual y el futuro.

ejemplo: El mes comienza desde - enero 2016 - febrero 2016 - marzo 2016 - ... hasta diciembre 2016

Espero que me entienda claramente ahora.

Entonces, ¿qué puedo hacer para ello, por favor?

Gracias de antemano.

 
Marco vd Heijden:
int _cnt_MN1 = 12; // 12 lines for a year 24 for two years and etc.
for ( int i = 0; i < _cnt_MN1; i++ )
{
   ObjectCreate(0,"PERIOD_MN1-"+IntegerToString(i),OBJ_VLINE,0,iTime(Symbol(),PERIOD_MN1,i),0);
   ObjectSetString(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_TOOLTIP,TimeToString(iTime(Symbol(),PERIOD_MN1,i),TIME_DATE));
   ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i), OBJPROP_COLOR , C'180,160,080'  );
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_STYLE,STYLE_DOT);
   //ObjectSetInteger(0,"PERIOD_MN1-"+IntegerToString(i),OBJPROP_WIDTH,1);
}

Usted me entiende claramente lo que estoy pensando, y no vi su gran comentario (mientras escribía la respuesta para el comentario anterior)

Te lo agradezco mucho.

 
Max Enrik:

Usted me entiende claramente lo que estoy pensando, y escribí la respuesta para el comentario anterior (mientras que no vi su gran comentario.)

Muy agradecido.

Sólo mantenerlo simple
 
    ObjectCreate(0,"Future-H4-",OBJ_VLINE,0,0,0);
    ObjectMove(0,"Future-H4-",0,iTime(Symbol(),PERIOD_H4,0)+PERIOD_H4,0);

MN1 está un poco lejos pero aquí hay uno para H4.

También puedes usar

TimeCurrent()
Y mover tu línea en la función OnTick() o OnTimer() entonces se moverá junto con el tiempo.
 
Marco vd Heijden:
    ObjectCreate(0,"Future-H4-",OBJ_VLINE,0,0,0);
    ObjectMove(0,"Future-H4-",0,iTime(Symbol(),PERIOD_H4,0)+PERIOD_H4,0);

MN1 está un poco lejos pero aquí hay uno para H4.

También puedes usar

TimeCurrent()
Y mover su línea en OnTick() o OnTimer() función entonces se moverá junto con el tiempo.

Vaya... Muchas gracias por tu comentario.

Yo uso el siguiente código (el que mencionaste) en mi Indicador de Líneas de Período, por lo que funciona bien para mí hasta 'PERIOD_MN1'.

iTime(Symbol(),PERIOD_*,0)+PERIOD_*

---

He leído un poco más sobre ' Funciones de Manejo de Eventos', pero necesito el consejo de un codificador profesional.

¿Qué función es útil para mi indicador (Hora 4, Día, Semana, Mes)?

ejemplo: init(), start(), OnTick() o OnTimer()

Gracias de antemano.

 

Bueno, puede dibujar todas las líneas en OnInit() y luego dibujar nuevas siempre que el tiempo de apertura de la última barra cambie, sabrá que hubo una nueva barra.

Pero no estoy seguro de qué es exactamente lo que quieres hacer.