Jump to content
Tom Next - Daytrading Community

Recommended Posts

Posted

Hallo liebe Freunde, möchte eine waagerechte Linie aufm chart einzeichnen lassen.

 

Irgendwie scheint es nicht zu funktionieren. Hier mein Code

 

start()
{

 double price=Referenzpunkt;

  ObjectCreate("highLine",OBJ_HLINE,0,0,price);
  price=Referenzpunkt*Point;
  ObjectCreate("lowLine",OBJ_HLINE,0,0,price);
  
  ObjectSet("highLine",OBJPROP_COLOR,White);
  // changing the color of the upper line
  ObjectSet("highLine",OBJPROP_WIDTH,3);
  // now the line will be 3 pixel wide
  
  ObjectSet("lowLine",OBJPROP_COLOR,Crimson);
  // changing the color of the lower line
  ObjectSet("lowLine",OBJPROP_STYLE,STYLE_DOT);
  // now the lower line will be dashed   

}

 

Verstehe nicht, warum zeichnet er nicht die waagerechte Linie ? :birdie:

Posted

Verstehe nicht, warum zeichnet er nicht die waagerechte Linie ? :birdie:

Zeichnet er garnichts?

 

Probiers mal, wenn du als Zeitkoordinate NULL oder - wenn das auch nicht - geht Time[0] eingibst!

ObjectCreate("Name", OBJ_HLINE,0,NULL, price);

Posted

@Wogo: ist in MQL zwischen "NULL" und "0" ein Unterschied?

 

Es kann auch sein, dass die Linie gezeichnet wird, man sie aber nicht sieht, weil in der Koordinatenberechnung ein Fehler steckt und dadurch die Linie ausserhalb des sichtbaren Bereichs landet.

Problem hatte ich heute noch mit einem Indikator ... noch steht der Euro ja nicht bei 1.00! :gum:

Posted

@Wogo: ist in MQL zwischen "NULL" und "0" ein Unterschied?

NULL stellt einen leeren String dar, aber du hast schon recht. Daran wird's nicht liegen. :moi_big:

Die Zeitkoordinate sollte komplett ignoriert werden.

 

@sill3000:

Wenn du unter Diagramme-Objekte-Objekte schaust (CTLR-B), werden dir da beiden Objekte angezeigt?

Posted (edited)

Also mein Problem ist, ich möchte eine waagerechte Linie zeichen, die ich mit einem bestimmten Wert immer verändern möchte, den mein EA jede Minute

 

berechnet und vom Typ double ist.

 

Was schreibe ich in init() und in deinit() um das zu erreichen und welche Softwarekomponenten brauche ich da.

 

Mit get oder set oder objectCreate und so ?

 

DAnke, schonmal im voraus.

Edited by sill3000
Posted

So hab mal was gebastelt Sill:

 

der Beispielindikator zeichnet eine horizontale Linie 10 Pips unter den aktuellen Bid.

 

#property indicator_chart_window
#property indicator_color1 HotPink

#define PRICE_LINE   "SLLine"

int init()
 {
  Print("Line indicator initialized");
  if(!ObjectCreate(PRICE_LINE, OBJ_HLINE, 0, 0, 0))
   {
    Print("Error: can't create line_object! code #",GetLastError());
    return(0);
   } 
  ObjectSet(PRICE_LINE, OBJPROP_COLOR, indicator_color1); 
 }

int deinit()
 {
  ObjectDelete(PRICE_LINE);
  ObjectsRedraw();
 }

int start()
 {
    ObjectSet(PRICE_LINE, OBJPROP_PRICE1, Bid - (10 / MathPow(10, Digits - 1))); 
  return(0);
 }

 

Extra für Vola eine schöne Farbe ausgesucht :gum: , aber die kann man ja ändern.

Posted

So hab mal was gebastelt Sill:

 

der Beispielindikator zeichnet eine horizontale Linie 10 Pips und den aktuellen Bid.

 

 

 

Extra für Vola eine schöne Farbe ausgesucht :gum: , aber die kann man ja ändern.

 

 

HotPink :good2:

 

Danke, werde ich gleich mal ausprobieren !

Posted

Und wie muss es aussehen, wenn ich einen EA damit erweitern möchte und im gleichen Fenster ( dem Orginalfenster) darstellen möchte ?

 

Entschudigt meine dummen Fragen.

Posted (edited)

Habs hinbekommen, dass es in einem EA funzt, vielen, vielen Dank euch allen besonders an Bull68. :correct:

 

HotPinkt ist gut, das beisst sich so richtig im Auge. lol

Edited by sill3000
Posted

Sorry sollte "...10 Pips unter dem aktuellen Bid." heissen, habs geändert.

 

Ja Sill, sollte auch in einem EA funktionieren, mußt es nur einfügen, aber scheinst es ja schon hinbekommen zu haben. :correct:

 

Wenn das Prinzip einmal verstanden hast, ist fast alles machbar. :smile:

Posted (edited)

Ich denke so langsam komme ich klar mit der MQL, ab und zu habe ich mal ein paar "Hänger" aber hier wird einem ja schnell geholfen.

 

 

Danke an all die Leute. dddddddaaaaaaaaannnnnnnkkkkkeeeee für die schnelle und kompetente Hilfe

Edited by sill3000
Posted

Extra für Vola eine schöne Farbe ausgesucht :gum: , aber die kann man ja ändern.

:top:

Danke, danke.

Finde es schön wie die jüngeren sich hier in der Vorweihnachtszeit um die etwas älteren liebevoll kümmern. :shell:

  • 1 month later...
Posted

So hab mal was gebastelt Sill:

 

der Beispielindikator zeichnet eine horizontale Linie 10 Pips unter den aktuellen Bid.

 

#property indicator_chart_window
#property indicator_color1 HotPink

#define PRICE_LINE   "SLLine"

int init()
 {
  Print("Line indicator initialized");
  if(!ObjectCreate(PRICE_LINE, OBJ_HLINE, 0, 0, 0))
   {
    Print("Error: can't create line_object! code #",GetLastError());
    return(0);
   } 
  ObjectSet(PRICE_LINE, OBJPROP_COLOR, indicator_color1); 
 }

int deinit()
 {
  ObjectDelete(PRICE_LINE);
  ObjectsRedraw();
 }

int start()
 {
    ObjectSet(PRICE_LINE, OBJPROP_PRICE1, Bid - (10 / MathPow(10, Digits - 1))); 
  return(0);
 }

 

Extra für Vola eine schöne Farbe ausgesucht :gum: , aber die kann man ja ändern.

 

 

 

 

Und wenn ich das "Linienobjekt" nur mal für sagen wir mal eine gewisse Zeit nur ausblenden möchte und nicht löschen.

 

Wie sieht dann der Quellcode aus, ObjectDelete(), löscht ja alles, oder ??

Posted

Kann man die Objekte auch wieder reaktivieren, oder wie kann man die init-Fkt.() neu starten ?

 

Im voraus besten Dank

Du mußt die Objekte ja nicht in der Init-Fktn. erzeugen, sondern kannst das an jeder beliebigen Stelle in Start() machen.

Nimm einfach den Code der Init-Funktion, gib der Funktion einen beliebigen Namen z.B. "void SillsObjekte()" und dann kannst du, die Objekte, wenn du sie vorher löscht, über diese Funktion immer wieder neu erzeugen.

Posted

Du mußt die Objekte ja nicht in der Init-Fktn. erzeugen, sondern kannst das an jeder beliebigen Stelle in Start() machen.

Nimm einfach den Code der Init-Funktion, gib der Funktion einen beliebigen Namen z.B. "void SillsObjekte()" und dann kannst du, die Objekte, wenn du sie vorher löscht, über diese Funktion immer wieder neu erzeugen.

 

 

Danke. das probiere ich sofort aus.

  • 1 month later...
Posted

Ich erzeuge ein graphisches Objekt mit diesem Quellcode:

 

if(!ObjectCreate(PRICE_LINE3, OBJ_HLINE, 0, 0, 0))
   {
    //Print("Error: can't create line_object! code #",GetLastError());
    return(0);
   } 
  ObjectSet(PRICE_LINE3, OBJPROP_COLOR, indicator_color_STR1); 
 }

 

Gib der Linie einen Wert mit diesem Befehl

 

ObjectSet(PRICE_LINE3, OBJPROP_PRICE1,Referenzrot1+STR1Wert*Point);

Lösche ein graphisches Objekt mit diesem Quellcode:

 

ObjectDelete(PRICE_LINE3);
ObjectsRedraw();

 

 

Aber irgendwie kann ich diese beiden Funktionen nicht hintereinander starten, denn beim erneuten Erzeugen von STR1, wird die Linie nicht wieder angezeigt !

 

Das verstehe ich nicht so genau, bräuchte da ein bisschen Unterstützung.

 

Vielen Dank schonmal im voraus.

 

Gruss sill3000

Posted

Aber irgendwie kann ich diese beiden Funktionen nicht hintereinander starten, denn beim erneuten Erzeugen von STR1, wird die Linie nicht wieder angezeigt !

Kriegst du eine Fehlermeldung beim Versuch das Objekt wieder zu Erzeugen, wenn du die auskommentierte Print-Anweisung aktivierst?

Posted

Kriegst du eine Fehlermeldung beim Versuch das Objekt wieder zu Erzeugen, wenn du die auskommentierte Print-Anweisung aktivierst?

 

Keine Fehlermeldung, aber ich sehe die Linie nicht mehr auf dem Bildschirm, und obwohl ich die gleichen Werte genommen habe bzw. die Werte lasse ich mir mit Print auf dem

 

Reiter "Experten" ausgeben.

Posted

Keine Fehlermeldung, aber ich sehe die Linie nicht mehr auf dem Bildschirm, und obwohl ich die gleichen Werte genommen habe bzw. die Werte lasse ich mir mit Print auf dem

 

Reiter "Experten" ausgeben.

Das Print aktualisiert sich oft erst beim Schließen von MT4. Ersetze Print mal durch Alert!

Posted

Das Print aktualisiert sich oft erst beim Schließen von MT4. Ersetze Print mal durch Alert!

 

Es geht doch um die Linie auf dem Bildschirm(Chart), die ist weg, wenn ich einmal das "Objectdelete" aufgerufen habe.

Posted

Es geht doch um die Linie auf dem Bildschirm(Chart), die ist weg, wenn ich einmal das "Objectdelete" aufgerufen habe.

 

Was genau machst du denn im Code derzeit? Derzeit können wir hier nur mutmaßen wie genau die Codeschnippsel eingebaut sind bzw. was du machst. Und da ist eine Fehlersuche sehr schwierig.

Einfacher wäre es wenn du ein Codeschnippsel posten könntest, wo der Fehler auftritt, und das man auch selber testen kann.

Posted (edited)

Was genau machst du denn im Code derzeit? Derzeit können wir hier nur mutmaßen wie genau die Codeschnippsel eingebaut sind bzw. was du machst. Und da ist eine Fehlersuche sehr schwierig.

Einfacher wäre es wenn du ein Codeschnippsel posten könntest, wo der Fehler auftritt, und das man auch selber testen kann.

 

 

Der Code ist ja weiter oben beschrieben zum erzeugen, editieren und löschen der Objekte oder was genau meinst du ?

 

Meine Grundidee eben: Werte von einem Indikator werden berechnet und auf dem chart als Linie abgebildet, und dabei werden eben manche Linien manchmal gebraucht und

 

manchmal nicht.

 

Die berechnungen sind korrekt, die gebe ich ja mit der Print-Fkt. aus, das einzige Problem ist eben, das wenn die "Linienobjekte" gelöscht sind, sie nicht wieder auf dem

 

Bildschirm(Chart) angezeigt werden, mehr nicht.

Edited by sill3000

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...