Comment tracer une ligne de référence tous les 10 pips ? - page 2

 

Bien sûr ! Il s'agit simplement de temps. Et il suffit d'ajouter du temps à Time[0] pour que le rectangle s'étende dans le futur (sur la droite du graphique). Merci. Au fait, j'ai trouvé que le côté gauche en utilisant simplement Bars.

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

La couleur que j'utilise est très subtile. Il faut presque chercher les rectangles pour les voir.

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

Bien sûr ! Il s'agit simplement de temps. Et il suffit d'ajouter du temps à Time[0] pour que le rectangle s'étende dans le futur (sur le côté droit du graphique). Merci. Au fait, j'ai trouvé que le côté gauche en utilisant simplement Bars.

La couleur que j'utilise est très subtile. Il faut presque chercher les rectangles pour les voir.

Bonjour MisterDog,

Pouvons-nous voir les photos ?

Le lundi, le temps [0] est le lundi alors que le temps [1] est le samedi - c'est l'écart du lundi ;).

:D

 

Je suppose que, puisque j'utilise un graphique d'une minute, ce dont vous parlez se règlera de lui-même en une minute. Je suppose que nous verrons bien ce qui se passe pendant le week-end.

Voici l'image.

 
onewithzachy:

Salut MisterDog,

C'est simple.

1. Obtenez la distance temporelle entre une barre et une autre. Nous pouvons l'obtenir en soustrayant l'heure de la barre actuelle de l'heure de la barre précédente ou en multipliant la période par 60 secondes, choisissez la dernière option, car il y a un décalage horaire le lundi.

Je n'ai pas d'écart de temps le lundi, ma première barre de la semaine commence le dimanche ;-)

Pourquoi ne pas ajouter PERIOD_W1 * 60 à l'heure de fin ? cela devrait couvrir les écarts ... ;-)

 
MisterDog:

La couleur que j'utilise est très subtile. Il faut presque chercher les rectangles pour les voir.

Maintenant je "vois" ce que tu voulais dire.

RaptorUK

Je n'ai pas de décalage horaire le lundi, ma première barre de la semaine commence le dimanche ;-)

Pourquoi ne pas ajouter PERIOD_W1 * 60 à l'heure de fin ? cela devrait couvrir tous les écarts ... ;-)

Vous avez un écart le dimanche alors ;).

 
  1. MisterDog:
    Dites-moi, y a-t-il un moyen d'utiliser une sorte de "joker" pour des choses comme ObjectDelete ? Je voudrais faire quelque chose comme ceci : ObjectDelete("tensLines "*) ; en d'autres termes, supprimer tout ce qui commence par "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);
        }
    }
    
    Non compilé, non testé.

  2. Il n'y a pas non plus de raison de les supprimer, il suffit de les déplacer vers la nouvelle position. A partir de mon code :
    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:
    Pourquoi ne pas ajouter PERIOD_W1 * 60 à l'heure de fin ? cela devrait couvrir toutes les lacunes ... ;-)
    Pourquoi ne pas simplement projeter le rectangle dans le futur ?
    #define INF 0x6FFFFFFF // Not quite infinite, Jul 2029, or 1,879,048,191
    ObjectSet("tensRec"+ix,OBJPROP_TIME2,INF);
 
WHRoeder:
Pourquoi ne pas simplement projeter le rectangle dans le futur ?

Merci beaucoup WHRoeder. Je vais le prendre :D

[ EDIT : Donc, quoi qu'il en soit, un grand mercisssssssss ]

 
WHRoeder:
  1. RaptorUK:
    Pourquoi ne pas ajouter PERIOD_W1 * 60 à l'heure de fin ? cela devrait couvrir toutes les lacunes ... ;-)
    Pourquoi ne pas simplement projeter le rectangle dans le futur ?
Je ne voulais pas être gourmand ;-)
 
RaptorUK:
Je ne voulais pas être gourmand ;-)
La cupidité a du bon, vous savez ;)
 
onewithzachy:
La cupidité est une bonne chose, vous savez ;)
J'ai appris à mes dépens que la cupidité est certainement une très, très mauvaise chose ;-)