So zeichnen Sie alle 10 Pips eine Referenzlinie - Seite 2

 

Ja, natürlich! Es ist nur die Zeit. Und alles, was wir tun müssen, ist, die Zeit zu Time[0] hinzuzufügen, damit sich das Rechteck in die Zukunft erstreckt (außerhalb der rechten Seite des Diagramms). Vielen Dank! Übrigens habe ich herausgefunden, dass die linke Seite einfach durch die Verwendung von 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

Die Farbe, die ich verwende, ist sehr dezent. Man muss fast nach den Rechtecken suchen, um sie zu sehen.

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

Ja, natürlich! Es ist nur die Zeit. Und alles, was wir tun müssen, ist, die Zeit zu Time[0] hinzuzufügen, damit sich das Rechteck in die Zukunft erstreckt (außerhalb der rechten Seite des Diagramms). Vielen Dank! Übrigens habe ich herausgefunden, dass die linke Seite einfach durch die Verwendung von Bars.

Die Farbe, die ich verwende, ist sehr dezent. Man muss fast nach den Rechtecken suchen, um sie zu sehen.

Hallo MisterDog,

können wir die Bilder sehen ?,

Am Montag ist Time[0] am Montag, während Time [1] am Samstag ist - das ist die Lücke am Montag ;).

:D

 

Da ich ein Ein-Minuten-Chart verwende, gehe ich davon aus, dass sich das, wovon Sie sprechen, in einer Minute von selbst erledigt. Ich denke, wir werden sehen, was über das Wochenende passiert.

Hier ist das Bild.

 
onewithzachy:

Hallo MisterDog,

einfach.

1. Ermitteln Sie den zeitlichen Abstand zwischen einem Balken und einem anderen. Wir können dies erhalten, indem wir die Zeit des aktuellen Balkens von der Zeit des vorherigen Balkens subtrahieren oder die Periode mit 60 Sekunden multiplizieren, wählen Sie letzteres, denn am Montag gibt es eine Zeitlücke.

Ich habe keine Zeitlücke am Montag, mein erster Balken der Woche beginnt am Sonntag ;-)

Warum nicht PERIOD_W1 * 60 zur Endzeit addieren? das sollte die Lücken gerade so abdecken... ;-)

 
MisterDog:

Die Farbe, die ich verwende, ist sehr dezent. Man muss fast nach den Rechtecken suchen, um sie zu sehen.

Jetzt "verstehe" ich, was Sie gemeint haben.

RaptorUK

Ich habe am Montag keine Zeitlücke, mein erster Balken der Woche beginnt am Sonntag ;-)

Warum fügst du nicht PERIOD_W1 * 60 zur Endzeit hinzu? das sollte alle Lücken abdecken... ;-)

Dann haben Sie am Sonntag eine Lücke ;).

 
  1. MisterDog:
    Sagen Sie mir, gibt es eine Möglichkeit, eine Art "Platzhalter" für Dinge wie ObjectDelete zu verwenden? Ich würde gerne etwas in der Art machen: ObjectDelete("tensLines "*); mit anderen Worten, alles löschen, was mit "tensLines" beginnt.
    #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);
        }
    }
    
    Nicht kompiliert, nicht getestet.

  2. Es gibt auch keinen Grund, sie zu löschen, sondern sie nur an die neue Position zu verschieben. Aus meinem 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:
    Warum fügen Sie nicht PERIOD_W1 * 60 zur Endzeit hinzu? das sollte alle Lücken abdecken... ;-)
    Warum nicht einfach das Rechteck ganz in die Zukunft projizieren?
    #define INF 0x6FFFFFFF // Not quite infinite, Jul 2029, or 1,879,048,191
    ObjectSet("tensRec"+ix,OBJPROP_TIME2,INF);
 
WHRoeder:
Warum nicht einfach das Rechteck ganz in die Zukunft projizieren?

Vielen Dank, WHRoeder. Ich werde es nehmen :D

[EDIT : Also, trotzdem vielen Dank, vielen Dank, vielen Dank, vielen Dank].

 
WHRoeder:
  1. RaptorUK:
    Warum fügen Sie nicht PERIOD_W1 * 60 zur Endzeit hinzu? das sollte alle Lücken abdecken... ;-)
    Warum nicht einfach das Rechteck ganz in die Zukunft projizieren?
Ich wollte nicht gierig sein ;-)
 
RaptorUK:
Ich wollte nicht gierig sein ;-)
Gier ist gut, weißt du ;)
 
onewithzachy:
Gier ist gut, wissen Sie ;)
Ich habe auf die harte Tour gelernt, dass Gier ganz sicher eine sehr, sehr schlechte Sache ist. ;-)