Inhalte aufrufen

  • Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

Nützliche Codefragmente

* * * * * 3 Stimmen

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
11 Antworten zu diesem Thema

  #1
ONLINE   traderdoc

*
BELIEBT

Liebe Freunde des Programmierens,

 

eigentlich war lange nichts geschrieben worden zum Thema "Nützliche Codefragmente", nein ich glaube, es war eigentlich noch gar nichts diesbzgl.geschrieben worden.

Das soll nun nachgeholt werden.

Wer also kurze übersichtliche und funktionierende nützliche Codefragmente besitzt, die problemlos eingebunden werden können, der möge hier dazu beitragen, das Proggerlevel hoch zu halten.

 

Spontan poste ich mal als Entree den Code für das Zeichnen eines Buttons auf den Chart, der per Mausklick zu einer Aktion führen kann, die dann ggf. vom User zu proggen wäre.

Please Login or Register to see this Hidden Content

Über die Funktion CreateButton() können durch Zuweisen von Parametern alle Eigenschaften des Buttons variabel gesetzt werden, wie z.B. Größe des Buttons, Position, Farben, Aufschrift, Schriftart und Schriftgröße.

Damit wird es auch möglich sein, mehrere Buttons auf den Chart zu platzieren.

 

Und das Entscheidende ist an dieser Buttontechnik, dass eben Aktionen eingeleitet werden können, ohne!!! einen Tick abwarten zu müssen. D.h. damit kann u.a. zu jeder Zeit direkt in den Ablauf des Programms eingegriffen werden.

 

Viel Spaß beim Experimentieren!

 

traderdoc


  • MANDL2007, Crashbulle, Tacito und 7 anderen gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #2
ONLINE   traderdoc

*
BELIEBT

Gerade mußte ich feststellen, dass selbst relativ einfache Techniken, manche User vor riesige Hürden stellen.

Z.B. der Wunsch nach dem Auslesen bestimmter Variablen immer nach einem Kerzenwechsel.

Please Login or Register to see this Hidden Content

Dabei wird OldBar in den globalen Variablen als int deklariert und je nachdem, ob beim Éinschalten des Programms auf der aktuellen Kerze bereits ausgelesen werden soll oder erst nach dem ersten Kerzenwechsel, muß dann in der funktion OnInit() stehen:

OldBar = 0;

oder

OldBar = Time[0];

Am Ende des Körpers der Abfrage wird dann nur noch die Variable OldBar aktualisiert. Platziert wird diese kleine, aber sehr nützliche Abfrage bei mir meist gleich am EA-Anfang der Funktion OnTick(), weil auf der aktuellen Auslesung in der Regel viele nachstehende Entscheidungen basieren.

 

Statt Time[0], also der Zeit des Beginns der neuen Kerze des aktuellen Charts, kann da auch stehen

iTime(string symbol, int timeframe, 0); also der Zugriff auf jedes andere Handelsinstrument eines jeweils zur Verfügung stehenden TimeFrames.

Oder auch jede andere Zeiteinheit, z.B.

TimeHour(TimeCurrent()) - also über das Auslesen der jeweiligen Stunde aus der aktuellen Brokerzeit

Oder auch über das Auslesen des aktuellen Tages:

DayOfWeek() - (Ergebnis: 0-Sunday,1,2,3,4,5,6)

usw. usf.

 

Viel Spaß beim Experimentieren!

 

traderdoc


  • MANDL2007, Tacito, maddy.max und 2 anderen gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #3
OFFLINE   Pago

Hallo Traderdoc,

 

ist die Button-Funktion nicht für MQL5? Wäre mir neu, dass in MQL4 OnInit() und OnDeinit(const int reason)verwendet wird. Oder hat sich das mit dem Update geändert?

Jedenfalls bekomme ich das in MQL4 nicht zum Laufen.


Bearbeitet von Pago, 07 September 2014 - 19:35 Uhr,


  #4
ONLINE   traderdoc

Nein, spätestens ab den Builds 600 und höher wurde das sog. MQL4.5 eingeführt, also eine Mischung aus beidem, wo es möglich ist, auch Buttons auf dem Chart zu platzieren.
Welche Build-Version hast Du denn?

traderdoc
  • MANDL2007 und maddy.max gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #5
OFFLINE   Pago

Ich nutze Build 670. Hast du evtl. einen kleinen EA in dem ein Button verbaut wurde damit man sehen kann wie sich die Codezeilen in den gesamten Code einfügen?

Schätze ich mach da noch irgendwo einen Fehler.



  #6
OFFLINE   Pago

Es funktioniert doch Traderdoc! Nur im Backtester passiert nichts wenn man den Button drückt.

Vielen Dank für die schönen Codefragmente!



  #7
OFFLINE   Pago

Hast du evtl. auch ein Codefragment für einen Button den man 2 mal klicken und dann ziehen muss?



  #8
ONLINE   traderdoc

Wie soll sich denn das verstehen? Ein Button ist ein Button. Was willst Du mit dem Ziehen erreichen?
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #9
OFFLINE   Pago

Durch den Button werden Order ausgelöst. Das soll als Sicherheit dienen, damit man nicht versehentlich einen Trade auslöst.

Bearbeitet von Pago, 08 September 2014 - 16:38 Uhr,


  #10
ONLINE   traderdoc

Das löst man über eine aufspringende MessageBox und der dort integrierten Sicherheitsabfrage.

traderdoc
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #11
ONLINE   traderdoc

Wie die Zeit vergeht und es wird höchste Eisenbahn, dass ich in diesem Thread wieder mal was schreibe.

Ich habe den Thread vor lauter Aufträgen fast vergessen, nun ist kurz vor Weihnachten und wieder a bisserl

Zeit zum Durchatmen.

 

Es folgt ein Codesnipped zum Thema: Wie kann man ein Dashboard oder allgemein programmierte Chartobjekte,

die auf der rechten!! oberen Seite des Charts erscheinen sollen, automatisch mit der Scalierung eines Charts immer an derselben

Stelle vom rechten Rand belassen.

Liegt das Objekt auf der linken oberen Seite des Charts ist das keine Kunst, denn die Lage wird immer vom Ankerpunkt 0;0 rechts oben

definiert. Soll aber das Objekt rechts oben im Chart erscheinen, dann würde es bei einer fixen Position verschwinden, wenn man den Chart

von rechts an verkleinert. Mit diesem kleinen Tool werden die Objekte solange sichtbar bleiben, bis die linke Objektseite den linken Rand

erreicht hat.

 

Experimentiert einfach ein bisschen rum!

 

Dasselbe könnte man noch schnell erweitern, wenn das Objekt nicht rechts oben, sondern rechts unten oder auch links unten gezeichnet werden soll,

dann müsste die y-Achse noch mit eingebogen werden über die Variable height.

 

Viel Spaß und ein frohes Weihnachtsfest wünscht Euch

 

traderdoc

Dateianhang


  • Scusi und asfranz gefällt das
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #12
ONLINE   traderdoc

Ich fand auch dieses Tool als sinnvoll, wenn man während des Laufens eines EAs,

den Auto-Trading-Button aus- bzw. wieder einschalten will.

Im eigenen Code muss dann nur noch an gegebener Stelle die Funktion Enable() bzw.

Disable() eingesetzt werden.

 

Wieder viel Spaß beim Experimentieren.

 

traderdoc

Dateianhang


Bearbeitet von traderdoc, 28 December 2019 - 14:06 Uhr,

Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.



Similar Topics

  Thema Eröffnet von Statistik Letzter Beitrag




0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer