Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 22.03.18
next user next user ist offline
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Hi Neueinsteiger,

erstmal kurz ein paar Tipps:
  • Wenn du einen Beitrag verfasst, kannst du mit dem Doppelkreuz(Raute)-Zeichen Code etwas besser formatiert einfügen.
  • Wenn du unter Windows bist, kannst du mit der Druck/Drucken-Taste auf der Tastatur einen Screenshot machen, den du
    dann in einem Bildbearbeitungsprogramm (Paint in Windows) mit STR+V einfügen kannst.
  • Für Objekteigenschaften würde ich nicht "ObjectSet()", sondern die spezielleren, umfangreicheren Funktionen
    • ObjectSetInteger(): Für Ganzzahlige (Integer) Werte wie z.B. Farbe, Breite, X & Y-Koordinaten ect.
    • ObjectSetDouble(): Für Gleitpunktwerte (Double) wie z.B. Preiskoordinate, Winkel ect.
    • ObjectSetString(): Für Textwerte (String) wie z.B. Objektname, Objektbeschreibung, Schriftart ect.
    verwenden. Genaueres findest du hier.
  • Eine horizontale Linie hat nur eine Koordinate, nähmlich den Preis. Somit solltest du bei deinen "ObjectCreate()" die Zeitkoordinate,
    bei dir "Time[0]", mit einer einfachen "0" ersetzen.
  • Neben dem Setzen der Koordinaten mit "ObjectSet...()" wie du es machst, kann man die Koordinaten auch direkt beim Erstellen
    des Objekts angeben, so spart man bischen Code und muss die Koordinaten nicht direkt nach Erstellung ändern.
    In deinem Fall könntest du die Variablen "HighestPrice / LowestPrice" direkt in "ObjectCreate()" anstatt der Angabe "Open[0]" verwenden.

Mit den obigen Punkten würde dein Code dann so aussehen:
Code:
// finde den hoechsten Preis fuer 30 Kerzen
double HighestPrice = High[iHighest(NULL,0,MODE_HIGH,30,0)];

// Erstelle ein Linien-Objekt fuer Hoechstpreis
ObjectCreate("ObereLinie",OBJ_HLINE,0,0,HighestPrice);

// Setze die Objektfarbe
ObjectSetInteger(0,"ObereLinie",OBJPROP_COLOR,clrGold);

// Setze Linienbreite
ObjectSetInteger(0,"ObereLinie",OBJPROP_WIDTH, 3);

// finde den niedrigsten Preis fuer 30 Kerzen
double LowestPrice = Low[iLowest(NULL,0,MODE_LOW,30,0)];

// Erstelle ein Linien-Objekt fuer Niedrigstpreis
ObjectCreate("UntereLinie",OBJ_HLINE,0,0,LowestPrice);

// Setze die Objektfarbe
ObjectSetInteger(0,"UntereLinie",OBJPROP_COLOR,clrGold);

// Setze Linienbreite
ObjectSetInteger(0,"UntereLinie",OBJPROP_WIDTH,3);
=== === === === === === === === === === === ===

Zitat:
Zitat von Neueinsteiger Beitrag anzeigen
ABER - ich will die beiden horizontalen Linien unabhängig nach oben bzw. unten bewegen können.
Üblicherweise kannst du auf ein Objekt doppelklicken. Dann erscheint am Objekt ein kleines Rechteck, was die "Selektierung markiert".
Wenn du jetzt auf das Objekt klickst und die Maustaste hälst, so kannst du das Objekt frei verschieben.

Zitat:
Zitat von Neueinsteiger Beitrag anzeigen
... und den Abstand der beiden Linien über den Kurs bestimmen
Wenn du damit meinst, das du die Linien im EA mit dem Kurs verschieben willst (und nicht selbst per Hand), dann kannst du
die Funktion "ObjektMove()" aufrufen.