Como desenhar uma linha de referência a cada 10 Pips - página 2

 

É claro! Chegou a hora. E tudo que temos que fazer é adicionar tempo ao Tempo[0] para fazer o retângulo se estender para o futuro (do lado direito do gráfico). Obrigado. A propósito, eu descobri que o lado esquerdo simplesmente usando Barras.

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

A cor que estou usando é muito sutil. Quase é preciso procurar os retângulos para vê-los.

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

É claro! Chegou a hora. E tudo que temos que fazer é adicionar tempo ao Tempo[0] para fazer o retângulo se estender para o futuro (do lado direito do gráfico). Obrigado. A propósito, eu descobri que o lado esquerdo simplesmente usando Barras.

A cor que estou usando é muito sutil. Quase é preciso procurar os retângulos para vê-los.

Olá MisterDog,

Podemos ver as fotos ?,

Na segunda-feira [0] é na segunda-feira enquanto que o Tempo [1] é no sábado - esse é o intervalo na segunda-feira ;).

:D

 

Suponho que, uma vez que eu faço um gráfico de um minuto, aquilo de que você está falando vai se resolver em um minuto. Acho que vemos bem o que acontece durante o fim de semana.

Aqui está a foto.

 
onewithzachy:

Olá MisterDog,

Simples.

1. Obter a distância temporal entre uma barra e outra. Podemos conseguir isto subtraindo o tempo atual da barra com o tempo da barra anterior ou multiplicando o período com 60 segundos, escolha esta última, pois há uma lacuna de tempo na segunda-feira.

Não tenho intervalo de tempo na segunda-feira, meu primeiro bar da semana começa no domingo ;-)

Por que não adicionar PERÍODO_W1 * 60 ao tempo final ? que deve cobrir praticamente qualquer lacuna ... ;-)

 
MisterDog:

A cor que estou usando é muito sutil. Quase é preciso procurar os retângulos para vê-los.

Agora eu "vejo" o que você quis dizer.

RaptorUK

Não tenho intervalo de tempo na segunda-feira, meu primeiro bar da semana começa no domingo ;-)

Por que não adicionar PERÍODO_W1 * 60 ao tempo final ? que deve cobrir praticamente qualquer lacuna ... ;-)

Você tem um intervalo no domingo, então ;).

 
  1. MisterDog:
    Diga-me, existe alguma forma de usar algum tipo de "wildcard" para coisas como o ObjectDelete? Eu gostaria de fazer algo assim, ObjectDelete("tensLines "*); em outras palavras, apagar qualquer coisa que comece com "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);
        }
    }
    
    Não compilado, não testado.

  2. Também não há motivo para apagá-los, apenas movê-los para a nova posição. A partir do meu 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 que não adicionar PERÍODO_W1 * 60 ao tempo final ? que deve cobrir praticamente todas as lacunas ... ;-)
    Por que não apenas projetar o retângulo até o futuro?
    #define INF 0x6FFFFFFF // Not quite infinite, Jul 2029, or 1,879,048,191
    ObjectSet("tensRec"+ix,OBJPROP_TIME2,INF);
 
WHRoeder:
Por que não apenas projetar o retângulo até o futuro?

Muito obrigado WHRoeder. Eu aceito :D

[ EDIT : Então, de qualquer forma, muitos agradecimentos ]

 
WHRoeder:
  1. RaptorUK:
    Por que não adicionar PERÍODO_W1 * 60 ao tempo final ? que deve cobrir praticamente todas as lacunas ... ;-)
    Por que não apenas projetar o retângulo até o futuro?
Eu não queria ser ganancioso ;-)
 
RaptorUK:
Eu não queria ser ganancioso ;-)
A ganância é boa, você sabe ;)
 
onewithzachy:
A ganância é boa, você sabe ;)
Aprendi da maneira mais difícil que a ganância é certamente uma coisa muito, muito ruim ;-)
Razão: