Cómo dibujar una línea de referencia cada 10 pips - página 2

 

¡Claro que sí! Es sólo tiempo. Y todo lo que tenemos que hacer es añadir tiempo a Time[0] para que el rectángulo se extienda hacia el futuro (fuera del lado derecho del gráfico). Gracias. Por cierto, he encontrado que el lado izquierdo simplemente usando Bares.

datetime timeGap = (Time[0] - Time[1]); // get the amount of time between bars
ObjectSet("tensRec"+ix,OBJPROP_TIME2,Time[0] + (timeGap*150)); // multiplying timeGap by 150 seems to extend the rectangle off the right-hand window edge

El color que estoy usando es muy sutil. Casi tienes que buscar los rectángulos para verlos.

ObjectSet("tensRec"+ix,OBJPROP_COLOR,0x080808) 
 
MisterDog:

¡Claro que sí! Es sólo tiempo. Y todo lo que tenemos que hacer es añadir tiempo a Time[0] para que el rectángulo se extienda hacia el futuro (fuera del lado derecho del gráfico). Gracias. Por cierto, he encontrado que el lado izquierdo simplemente usando Bares.

El color que estoy usando es muy sutil. Casi tienes que buscar los rectángulos para verlos.

Hola MisterDog,

¿Podemos ver las fotos?

El lunes la Hora[0] está en lunes mientras que la Hora[1] está en sábado - ese es el hueco del lunes ;).

:D

 

Supongo que, como manejo un gráfico de un minuto, lo que comentas se solucionará en un minuto. Supongo que veremos lo que ocurre durante el fin de semana.

Aquí está la foto.

 
onewithzachy:

Hola MisterDog,

Simple.

1. Obtenga la distancia de tiempo entre una barra y otra. Podemos obtener esto restando el tiempo de la barra actual con el tiempo de la barra anterior o multiplicando el período con 60 segundos, elija este último, coz hay brecha de tiempo en el lunes.

Yo no tengo ningún intervalo de tiempo el lunes, mi primera barra de la semana empieza el domingo ;-)

¿Por qué no añadir PERIOD_W1 * 60 a la hora de finalización? eso debería cubrir cualquier hueco... ;-)

 
MisterDog:

El color que estoy usando es muy sutil. Casi hay que buscar los rectángulos para verlos.

Ahora "veo" lo que querías decir.

RaptorUK

No tengo ningún hueco de tiempo el lunes, mi primera barra de la semana empieza el domingo ;-)

¿Por qué no añades PERIOD_W1 * 60 a la hora de finalización? eso debería cubrir cualquier hueco... ;-)

Entonces tienes un hueco el domingo ;).

 
  1. MisterDog:
    Dígame, ¿hay alguna forma de utilizar algún tipo de "comodín" para cosas como el ObjectDelete? Me gustaría hacer algo como esto, ObjectDelete("tensLines "*); en otras palabras, borrar cualquier cosa que empiece por "tensLines".
    #define ONDA_BEGINS   0
    #define ONDA_CONTAINS 1
    void ObjectNameDeleteAll(string name, int where=ONDA_BEGINS, int type=EMPTY){
        for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--){
            string on   = ObjectName(iObj);
            int    iPos = StringFind(on, name);
            if (iPos < 0)                         continue;
            if (iPos > 0 && where == ONDA_BEGINS) continue;
            if      (type == EMPTY))         ObjectDelete(on);
            else if (type == ObjectType(on)) ObjectDelete(on);
        }
    }
    
    No compilado, no probado.

  2. Además no hay razón para borrarlos, sólo moverlos a la nueva posición. De mi código:
    void Rect(string name, datetime T0,double P0, datetime T1,double P1, color clr){
        if (!Show.Objects)  return;                         #define WINDOW_MAIN 0
        if      (ObjectMove( name, 0, T0, P0 ))     ObjectMove(name, 1, T1, P1);
        else if (!ObjectCreate( name, OBJ_RECTANGLE, WINDOW_MAIN, T0, P0, T1, P1 ))
            Alert("ObjectCreate(",name,",RECT) failed: ", GetLastError() );
        if (!ObjectSet(name, OBJPROP_COLOR, clr )) // Allow color change
            Alert("ObjectSet(", name, ",Color) [3] failed: ", GetLastError());
        string  P0t = PriceToStr(P0);           if (MathAbs(P0 - P1) >= Point)
                P0t = StringConcatenate(P0t, " to ", PriceToStr(P1));
        if (!ObjectSetText(name, P0t, 10))
            Alert("ObjectSetText(",name,") [1] failed: ", GetLastError());
    }
    

  3. RaptorUK:
    ¿Por qué no añadir PERIOD_W1 * 60 al tiempo de finalización? eso debería cubrir cualquier hueco... ;-)
    ¿Por qué no proyectar el rectángulo hasta el futuro?
    #define INF 0x6FFFFFFF // Not quite infinite, Jul 2029, or 1,879,048,191
    ObjectSet("tensRec"+ix,OBJPROP_TIME2,INF);
 
WHRoeder:
¿Por qué no proyectar el rectángulo hasta el futuro?

Muchas gracias WHRoeder. Me lo apunto :D

[EDIT : Así que, de todos modos, muchas graciassssssss]

 
WHRoeder:
  1. RaptorUK:
    ¿Por qué no añadir PERIOD_W1 * 60 a la hora de finalización? eso debería cubrir cualquier hueco... ;-)
    ¿Por qué no proyectar el rectángulo hasta el futuro?
No quería ser codicioso ;-)
 
RaptorUK:
No quería ser codicioso ;-)
La avariciaes buena, ya sabes ;)
 
onewithzachy:
La avaricia es buena, ya sabes ;)
He aprendido por las malas que la avaricia es ciertamente algo muy, muy malo ;-)