Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 687
Gesamt: 687
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 24.06.20
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 12
drater befindet sich auf einem aufstrebenden Ast
Standard Graphische Elemente duplizieren?

Hallo @all,

ich bin MT4-Rookie und habe mich bisher mit PineScript (TradinngView) befasst. Nun bin ich erstaunt, was mit MQL4 alles möglich ist, auch wenn ich da noch viiiiiel zu lernen habe. Aber man wächst ja mit seinen Aufgaben...

Nun meine Frage: Gibt es die Möglichkeit bspw. eine horizontale Linie gezielt zu duplizieren? Mit gezielt meine ich, dass man die Linie um eine abzufragende Anzahl an Pips nach oben unten duplizeren kann (idealerweise auch in einer wählbaren Farbe und Linienart).

Ich hoffe, jemand kann mir weiterhelfen und DANKE für das viele Konw-How, das ihr hier bereitstellt.
  #2 (permalink)  
Alt 24.06.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von drater Beitrag anzeigen
Nun meine Frage: Gibt es die Möglichkeit bspw. eine horizontale Linie gezielt zu duplizieren? Mit gezielt meine ich, dass man die Linie um eine abzufragende Anzahl an Pips nach oben unten duplizeren kann (idealerweise auch in einer wählbaren Farbe und Linienart).
Du brauchst dazu ein Linie, die eindeutig zu identifizieren ist durch:
1. Art der Linie (horizontal, trend, vertical)
2. Farbe der Linie
3. Stil der Linie
4. Dicke der Linie
5. angeklickt oder nicht
6. Beschreibung
7. Tooltip
Deine gesuchte Linie kann alle oder nur einige Kriterien erfüllen.
(Ich arbeite gerne mit der Kombination aus Art und angeklickt, das reicht bei mir meistens.)

In einem Loop über alle Chart Objecte suchst Du dann die Linie, die die Bedingungen erfüllt.

Hast Du sie gefunden, dann fragst Du ihre Eigenschaften über ObjectGet... ab (z.B. den Price für horizontal, Price1 und 2 für trend, und für trend brauchst Du noch die Time1 und 2). Am besten in Variablen kurzfristig speichern, dann kannst Du schnell drauf zugreifen.

Danach addierst/subtrahierst die gewünschten Werte von den gerade Abgefragten Price-Werten.
Mit diesen errechneten neuen Werten erstellst Du ein neues Object der gleichen Art (kennst Du aus Deiner Suche) mit den errechneten Werten (bei trend bleiben die Zeiten dieselben).

Farbe und Stil der neuen Linie kannst Du z.B. als Benutzereingabe schon vorher festlegen.
Fertig.
Reicht der Weg Dir? AVT
  #3 (permalink)  
Alt 24.06.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Wenn die Linie im Chart angeklickt wird, so dass die weißen quadratischen Griffpunkte sichtbar sind und die Taste "Strg" gehalten wird, kann man sich mit der Maus auf die Linie stellen und eine Kopie irgendwo hinziehen.

Mit dem Rechtsklick auf die angeklickte Linie öffnet sich ein Menü, wo man unter Objekte die Linie auswählen und bearbeiten kann bzgl. u.a. Name, Farbe und Stil.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #4 (permalink)  
Alt 24.06.20
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 12
drater befindet sich auf einem aufstrebenden Ast
Standard

Herzlichen Dank für deine ausführliche Antwort.

Zitat:
Zitat von AVT Beitrag anzeigen
Du brauchst dazu ein Linie, die eindeutig zu identifizieren ist durch:
1. Art der Linie (horizontal, trend, vertical)
2. Farbe der Linie
3. Stil der Linie
4. Dicke der Linie
5. angeklickt oder nicht
6. Beschreibung
7. Tooltip
Deine gesuchte Linie kann alle oder nur einige Kriterien erfüllen.
(Ich arbeite gerne mit der Kombination aus Art und angeklickt, das reicht bei mir meistens.)
Mir würde das Kriterium "angeklickt" absolut reichen. Im Augenblick geht es mir v.a. um horizontale Linien, die ich aber 1:1 duplizieren möchte. Daher wäre es mir sogar am liebsten, wenn ich nur ein Objekt ausgewählt haben dürfte. Ansonsten ist die Gefaht (muss mich noch an die MT4-UI gewöhnen), dass ich versehentlich mehr selektiert habe, als ich eigentlich will. Also idealerweise nur ein selektiertes Objekt (und eigentlich reichen für's erste auch horizontale Linien).

Zitat:
In einem Loop über alle Chart Objecte suchst Du dann die Linie, die die Bedingungen erfüllt.
Hast Du sie gefunden, dann fragst Du ihre Eigenschaften über ObjectGet... ab (z.B. den Price für horizontal, Price1 und 2 für trend, und für trend brauchst Du noch die Time1 und 2). Am besten in Variablen kurzfristig speichern, dann kannst Du schnell drauf zugreifen.
Okay... das sollte ich hinkriegen.


Zitat:
Danach addierst/subtrahierst die gewünschten Werte von den gerade Abgefragten Price-Werten.
Mit diesen errechneten neuen Werten erstellst Du ein neues Object der gleichen Art (kennst Du aus Deiner Suche) mit den errechneten Werten (bei trend bleiben die Zeiten dieselben).

Farbe und Stil der neuen Linie kannst Du z.B. als Benutzereingabe schon vorher festlegen.
Fertig.
Klingt machbar.

Reicht der Weg Dir? AVT
Klingt machbar. Nun bin ich als absoluter Newbie noch ein wenig "lost", was die verschiedenen Arten von MQL4-Programmen angeht.
Bei diesem hier wird es sich ja wohl um ein Script handeln. Wird das auf bestimmte Art im SourceCode gekennzeichnet oder ergibt sich das aus der Tatsache, dass es im Script-Verzeichnis abgelegt wird?

Vielen Dank nochmals - tolle Unterstützung hier.

Hast du noch einen Tipp, wo man sich ambesten in das Thema MQL-Programmierung reinfuchsen kann. Mir geht es erst mal weniger um EAs oder Indikatoren; eher um Skripten, die mir die das Leben erleichtern.
  #5 (permalink)  
Alt 24.06.20
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 12
drater befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Wenn die Linie im Chart angeklickt wird, so dass die weißen quadratischen Griffpunkte sichtbar sind und die Taste "Strg" gehalten wird, kann man sich mit der Maus auf die Linie stellen und eine Kopie irgendwo hinziehen.

Mit dem Rechtsklick auf die angeklickte Linie öffnet sich ein Menü, wo man unter Objekte die Linie auswählen und bearbeiten kann bzgl. u.a. Name, Farbe und Stil.

traderdoc
Danke dir sehr für das Feedback. Das mit dem STRG & Ziehen wusste ich. Das ist aber genau die Sache, die ich gerne unterstützt haben wollte. V.a. das Positionieren mit der Rechnerei ist halt sehr zeitaufwändig.
  #6 (permalink)  
Alt 24.06.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von drater Beitrag anzeigen
Klingt machbar. Nun bin ich als absoluter Newbie noch ein wenig "lost", was die verschiedenen Arten von MQL4-Programmen angeht.
Bei diesem hier wird es sich ja wohl um ein Script handeln. Wird das auf bestimmte Art im SourceCode gekennzeichnet oder ergibt sich das aus der Tatsache, dass es im Script-Verzeichnis abgelegt wird?
Ich habe Dir ein kleines Beispiel Skript gemacht, damit Du lesen kannst wie das geht. Kannst ja versuchen, die Trendlinie zu ergänzen.
Du lädst das im Editor - dann speichern unter Scripts - dann komplieren.
Neuen Chart aufmachen, ein paar Linien rein, eine Horizontale anklicken und Skript auf den Chart werfen. Ist nur die Horizontale, die ich drin habe (damit Du versuchen kannst, ob Du den Trend selber hinkriegst). Kannst natürlich auch alles andere versuchen, Code kürzen, erweitern ...
Und natürlich kann man so was auch als Indikator machen, der sonst noch welche Aufgaben hat (das Prinzip ist ja dasselbe).

Zitat:
Hast du noch einen Tipp, wo man sich ambesten in das Thema MQL-Programmierung reinfuchsen kann. Mir geht es erst mal weniger um EAs oder Indikatoren; eher um Skripten, die mir die das Leben erleichtern.
Am besten
1. im Editor - Hilfe - MQL4 Referenz
-. Inhalt ist so ne Art Buch
-. Index ist zum Suchen von etwas, einfach ein paar Zeichen in die Suchleiste
-. Suchen findet jedes Vorkommen in der ganzen Referenz (manchmal ziemlich viel)
2. im Editor Klick auf Wort, dann F1 Taste, ist DirektHilfe (Stelle in der Referenz)
3. im MetaTrader - Terminal - Bibliothek - Rechtsklick auf Überschrift
-. für Skripte nur die auswählen, dann kannst Du Beispiele herunterladen, die landen unter Scripts - Downloads
-. zum Lesen wie andere es vielleicht lösen

Hoffe, das hilft Dir, um Dich reinzubringen. AVT
Angehängte Dateien
Dateityp: mq4 ParallelLinieErzeugen.mq4 (14,2 KB, 4x aufgerufen)
drater likes this.
  #7 (permalink)  
Alt 24.06.20
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 12
drater befindet sich auf einem aufstrebenden Ast
Standard

WOW! Ganz herzlichen Dank - damit hätte ich ja nicht gerechnet. Super! Klappt!

Geändert von drater (24.06.20 um 21:25 Uhr)
  #8 (permalink)  
Alt 25.06.20
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 12
drater befindet sich auf einem aufstrebenden Ast
Standard

@AVT: Ich habe mir das Skript angeschaut und viel dabei gelernt. Nochmals vielen Dank!
Bekanntlich kommt der ja Appetit beim essen . Ich habe mir daher eine Variante gebaut. Dabei wird ich keine Linie markiert, von der ab die Duplikate gezeichnet werden. Vielmehr gebe ich einen Kurswert vor und es wird eine Linie an diesem Kurs und die Duplikate gezeichnet.
Nun wollte ich bei der Eingabe gerne den Kurswert mit dem aktuellen BidPrice vorbelegen. Da bekomme ich leider eine Fehlermeldung, da man eine Konstante verwenden muss. Gibt es dafür eine Lösung?

Und dann ist mir noch eine Frage eingefallen, die etwas off-topic bzgl. des ursprünglichen Betreffs sind. Ich hänge sie hier mal an:
Kann man mittels eines Skripts eine Berechnung auf zwei beliebige Kerzen anwenden, die man per Maus anklickt. Also Bspw. den Abstand in Pips vom Hoch der einen Kerze zum Tief der anderen Kerze?
  #9 (permalink)  
Alt 25.06.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von drater Beitrag anzeigen
Vielmehr gebe ich einen Kurswert vor und es wird eine Linie an diesem Kurs und die Duplikate gezeichnet.
Nun wollte ich bei der Eingabe gerne den Kurswert mit dem aktuellen BidPrice vorbelegen. Da bekomme ich leider eine Fehlermeldung, da man eine Konstante verwenden muss. Gibt es dafür eine Lösung?
Ich nehme mal an, Du hast solch ein ähnliches Kontrukt (rot die Benutzereingabe für den Preis):
Code:
extern double PreisOriLinie = 10650; //Preis der Originallinie
extern double UpPlus  = 20;         //Point Abstand obere Parallele
extern double DnMinus = 40;         //Point Abstand untere Parallele
Wenn Du den im Skript auf = 0 setzt, dann kannst Du - bevor Du die Originallinie malen läßt, einen Check machen und den Wert auf Bid setzen, etwa so:
Code:
if(PreisOriLinie==0)  //BenutzerHatNixEingegeben
   PreisOriLinie=Bid; //DannNimmBidPreis
//... und nun Linie malen
Bid funktioniert immer, auch wenn man offline ist.
Zitat:
Kann man mittels eines Skripts eine Berechnung auf zwei beliebige Kerzen anwenden, die man per Maus anklickt. Also Bspw. den Abstand in Pips vom Hoch der einen Kerze zum Tief der anderen Kerze?
Ich bin mir nicht sicher, ob das funktioniert, weil Du da Maus-Events einfangen mußt und OnChartEvent geht nicht - wenn ich mich recht erinnere. Aber wenn Du das als Skript machen willst: zwischen den beiden Punkten ne Trendlinie zeichen und deren Start- und Endpunkt auswerten.
AVT
  #10 (permalink)  
Alt 26.06.20
Neues Mitglied
 
Registriert seit: Jun 2020
Beiträge: 12
drater befindet sich auf einem aufstrebenden Ast
Standard

Hallo AVT.

Zitat:
Zitat von AVT Beitrag anzeigen
Ich nehme mal an, Du hast solch ein ähnliches Kontrukt (rot die Benutzereingabe für den Preis):
Code:
extern double PreisOriLinie = 10650; //Preis der Originallinie
Nein, da habe ich mich wohl falsch ausgedrückt. Ich meinte eher so etwas (was aber einen Fehler hervorruft):
Code:
extern double PreisOriLinie = Bid; //Preis der Originallinie
Ich möchte also den Preis immer eingeben. Da die Linie üblicherweise in der Nähe des aktuellen Kurswertes liegen soll, wollte ich das Eingabefeld damit vorbelegen. Das verhindert Vertipper, weil man dann nur noch an den Dezimalstellen etwas verändern muss.

Das mit den beiden Kerzen anklicken habe ich inzwischen hingekriegt.
Thema geschlossen

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------