Überführung von Werten von OnCalculate zu OnTick

 

Hallo zusammen,

ich versuche mir einen EA auf Basis der Heiken-Ashi Kerzen zu bauen. Aktuell scheitere ich daran, dass ich die berechneten Werte des Indikators in dem OnCalculate Bereich nicht in den OnTick Bereich überführen kann. Wenn ich in dem OnCalculate Bereich eine Variable definiere und dort z.B. den letzen HA-High-Wert speichere (das funktioniert soweit, da ich den Wert auch printen kann), und ich im darauffolgenden OnTick darauf referenziere,  schmeißt mir MQ5 einen Fehler, dass diese Variable nicht definiert wurde. 

Als Newbe habe ich verstanden, dass eine Variable nur innerhalb einer Funktion verwendet wird. Deshalb die Frage, wie ich die dort gespeicherte Variable aus der Funktion rausbekomme um sie weiter im Kontext verwenden zu können.

Meinen Code habe ich angehängt. Wie bekomme ich den aktuellen "ExtHBuffer[i-2]" Wert von OnCalculate in OnTick?

Wie man sieht, bin ich noch ziemlicher Anfänger und lerne Schritt für Schritt. Daher wäre ich sehr froh über konstruktive Hilfe :-)


Danke euch vorab!

Ben

Dateien:
 
al_ben:

Hallo zusammen,

ich versuche mir einen EA auf Basis der Heiken-Ashi Kerzen zu bauen. Aktuell scheitere ich daran, dass ich die berechneten Werte des Indikators in dem OnCalculate Bereich nicht in den OnTick Bereich überführen kann. Wenn ich in dem OnCalculate Bereich eine Variable definiere und dort z.B. den letzen HA-High-Wert speichere (das funktioniert soweit, da ich den Wert auch printen kann), und ich im darauffolgenden OnTick darauf referenziere,  schmeißt mir MQ5 einen Fehler, dass diese Variable nicht definiert wurde. 

Als Newbe habe ich verstanden, dass eine Variable nur innerhalb einer Funktion verwendet wird. Deshalb die Frage, wie ich die dort gespeicherte Variable aus der Funktion rausbekomme um sie weiter im Kontext verwenden zu können.

Meinen Code habe ich angehängt. Wie bekomme ich den aktuellen "ExtHBuffer[i-2]" Wert von OnCalculate in OnTick?

Wie man sieht, bin ich noch ziemlicher Anfänger und lerne Schritt für Schritt. Daher wäre ich sehr froh über konstruktive Hilfe :-)


Danke euch vorab!

Ben

Du kannst nicht erwarten, dass Dir hier jemand Programmieren beibringt, das musst Du schon selber machen, aber hier ein paar Links dafür:

https://www.metatrader5.com/de/terminal/help/startworking
https://www.metatrader5.com/de/terminal/help/startworking/start_advanced

https://www.mql5.com/de/articles/648 // Das MQL5-Kochbuch: Mehrwährungsfähiger Expert Advisor – eine einfache, saubere und schnelle Herangehensweise
https://www.mql5.com/de/articles/650 // Das MQL5-Kochbuch: Entwicklung eines mehrwährungsfähigen Expert Advisors mit unbegrenzter Anzahl von Parametern
https://www.mql5.com/de/articles/651 // Das MQL5-Kochbuch: Schreiben der Historie von Abschlüssen in eine Datei und Erstellen von Bilanzdiagrammen für jedes Symbol in Excel
https://www.mql5.com/de/articles/496 // Quickstart for newbies
https://www.mql5.com/de/articles/211 // Orders, Positions und Abschlüsse in MetaTrader 5
https://www.mql5.com/en/forum/296230 // How to start with MQL5: Usefull Hints and lots of code!!



https://www.mql5.com/de/articles/9266 // Tips from a professional programmer (Part  I): Code storing, debugging and compiling. Working with projects and logs
https://www.mql5.com/de/articles/9327 // Tips from a professional programmer (Part II): Storing and exchanging parameters between an Expert Advisor, scripts and external programs

https://www.mql5.com/de/articles/567   Grundlagen der Programmierung in MQL5: Arrays
https://www.mql5.com/de/articles/1334  Das MQL5-Kochbuch: Implementierung eines Assoziativen Arrays oder eines Lexikons für raschen Datenzugriff

Suche nach Schlüsselwörtern auf der Seite mit Ctrl-F:
https://www.mql5.com/de/docs/function_indices

Außerdem, es gibt fast nicht, was nicht schon für MQ programmiert wurde,
also vielleicht erst einmal suchen, statt es selber versuch, denn kopieren ist viel schneller als probieren.
Suchen, so geht's:
https://www.mql5.com/en/forum/193510#comment_23916774


Lies mal den Artikel:
https://www.mql5.com/de/articles/7981: Schnelle Werkzeuge für den manuellen Handel: Arbeiten mit offenen Positionen und Pending-Orders

https://www.mql5.com/en/code/13885
https://www.mql5.com/en/code/21434

Außerdem, wenn man im Editor den Kursor auf eine MQL-Funktion stellt und F1 drückt, sieht man sofort die Erklärung und meist gibt es Beispiele, von denen man einiges kopieren kann,
wie gesagt, es gibt fast nicht, was nicht schon für MQ programmiert wurde.

Die ersten Schritte - MetaTrader 5 Hilfe
Die ersten Schritte - MetaTrader 5 Hilfe
  • www.metatrader5.com
Dieser Abschnitt enthält die wichtigsten Informationen, die Sie brauchen um mit der Plattform zu starten. Die Plattform bietet ein einfach zu...
 
Hallo Carl,
ich erwarte nicht, dass man mir hier mein Problem löst, ohne dass ich mich weiter damit auseinander setze. Tatsächlich versuche ich gerade das Programmieren zu lernen. Neben MQ5 mache ich einen Python Kurs. 
Aber was macht man, wenn man im Selbststudium nicht weiter kommt? Man frägt jemanden, der sich auskennt und ich dachte hier kann mir jemand den Zusammenhang erklären. Deshalb möchte ich das auch selbst programmieren bzw. zumindest verstehen. Sonst könnte ich mit den fertigen EA auch kaufen, das kann ich mir gerade noch leisten…

Gruß Ben
 

" Man frägt jemanden, der sich auskennt " oder man studiert selber die Lehrbücher und die Beispiele in den Artikeln und der CodeBase.

Andere haben viel Zeit verwendet Programmieren zu lernen, es ist halt nicht ein bisschen dies und ein bisschen das.

 
Carl Schreiber #:

" Man frägt jemanden, der sich auskennt " oder man studiert selber die Lehrbücher und die Beispiele in den Artikeln und der CodeBase.

Es gibt Probleme, die man im Selbststudium nicht gelöst bekommt. Aber ehrlich gesagt wundere ich mich schon warum man nicht einfach eine Antwort auf seine Frage bekommen kann. Zumindest bringt mich deine Antwort leider 0,0 weiter. Entweder die Antwort liegt außerhalb deiner Kenntnis oder du möchtest einfach nicht helfen und lieber schlaue Ratschläge geben… ich verstehe die Intention von deinen Antworten leider nicht, sorry. 
 
al_ben #:
Es gibt Probleme, die man im Selbststudium nicht gelöst bekommt. Aber ehrlich gesagt wundere ich mich schon warum man nicht einfach eine Antwort auf seine Frage bekommen kann. Zumindest bringt mich deine Antwort leider 0,0 weiter. Entweder die Antwort liegt außerhalb deiner Kenntnis oder du möchtest einfach nicht helfen und lieber schlaue Ratschläge geben… ich verstehe die Intention von deinen Antworten leider nicht, sorry. 

Diese Frage: " Deshalb die Frage, wie ich die dort gespeicherte Variable aus der Funktion rausbekomme um sie weiter im Kontext verwenden zu können." lässt sich nicht einfach beantworten und "Wie bekomme ich den aktuellen "ExtHBuffer[i-2]" Wert von OnCalculate in OnTick?" zeigt, dass keine Grundlagen vorhanden sind.

Erklär mir, wie soll man jemanden die Grammatik erklären, der nicht einmal das A,B,C kennt?

Deine Frage wird u.a. in der o.a. Literatur erklärt und ich bin nicht bereits, daraus die Teile zu kopieren und hier zu pasten, ich käme mir dumm vor.

Ich mag in der Tat keine Leute, die zwar (viel) schreiben aber nicht lesen können. Es ist für mich ein immer wieder überraschendes Phänomen.

PS: Wenn Du nicht programmieren kannst, kannst Du jederzeit hier jemand beauftragen, dafür gibt es sie ja.
Handelsanwendungen für MetaTrader 5 auf Bestellung
Handelsanwendungen für MetaTrader 5 auf Bestellung
  • 2021.11.17
  • www.mql5.com
Der größte Freelance Service für Entwickler von Programmen in MQL5
 
Warum verschwendet du deine wertvolle Zeit überhaupt damit mit zu antworten? Deine Kommentare sind weder hilfreich noch motivierend für jemanden der sich die Basis aneignen will. Pure Zeitverschwendung. Ich bin raus hier…
 
al_ben #:
Warum verschwendet du deine wertvolle Zeit überhaupt damit mit zu antworten? Deine Kommentare sind weder hilfreich noch motivierend für jemanden der sich die Basis aneignen will. Pure Zeitverschwendung. Ich bin raus hier…

also was Du suchst ist in der Literatur von Karl gut beantwortet. Es wird dir keiner Abnehmen MQL zu lernen. Du hast ja nichtmal deinen Versuch gepostet wo das Problem besteht. 

Du kannst ja nicht erwarten, das hier der Code für dich geschrieben wird. Da stecken Jahre des Lernens dahinter. Die muss schon jeder selbst machen

 
amando #:

also was Du suchst ist in der Literatur von Karl gut beantwortet. Es wird dir keiner Abnehmen MQL zu lernen. Du hast ja nichtmal deinen Versuch gepostet wo das Problem besteht. 

Du kannst ja nicht erwarten, das hier der Code für dich geschrieben wird. Da stecken Jahre des Lernens dahinter. Die muss schon jeder selbst machen

Ich werde mir die verlinkte Literatur ansehen, vielleicht werde ich daraus ja schlau (nicht, dass ich mich nicht vor meinem Eintrag versucht hätte, in der MQL Doku selbst fündig zu werden).

Aber zu deiner Anmerkung: Sieh mal in meinen Anfangspost, da habe ich meinen Code angehängt und im Text darauf verwiesen, dass es um diese eine Variable geht. Das stellt aus meiner Sicht meinen Versuch dar.


Wie kommst du darauf, dass ich erwarte, dass ich hier einen fertigen Code bekomme? Wo habe ich das geschrieben? Ich habe eine Frage gestellt, wie das Konzept zwischen OnCalculate und OnTick funktioniert. Klar hab ich einen konkreten Anwendungsfall für die Frage, na und? Ich möchte es VERSTEHEN, damit ich bei künftigen Problemen als Programmierer selbst damit fertig werde. Eine Beantwortung der Frage in Form eines fertigen Codes war mit Nichten meine Absicht!

Ob du mir glaubst, dass ich MQL lerne, ist mir relativ gleich. Oder löst du mein Problem, wenn ich dich vom Gegenteil überzeuge? :-D 

 
al_ben #:

Ich werde mir die verlinkte Literatur ansehen, vielleicht werde ich daraus ja schlau (nicht, dass ich mich nicht vor meinem Eintrag versucht hätte, in der MQL Doku selbst fündig zu werden).

Aber zu deiner Anmerkung: Sieh mal in meinen Anfangspost, da habe ich meinen Code angehängt und im Text darauf verwiesen, dass es um diese eine Variable geht. Das stellt aus meiner Sicht meinen Versuch dar.


Wie kommst du darauf, dass ich erwarte, dass ich hier einen fertigen Code bekomme? Wo habe ich das geschrieben? Ich habe eine Frage gestellt, wie das Konzept zwischen OnCalculate und OnTick funktioniert. Klar hab ich einen konkreten Anwendungsfall für die Frage, na und? Ich möchte es VERSTEHEN, damit ich bei künftigen Problemen als Programmierer selbst damit fertig werde. Eine Beantwortung der Frage in Form eines fertigen Codes war mit Nichten meine Absicht!

Ob du mir glaubst, dass ich MQL lerne, ist mir relativ gleich. Oder löst du mein Problem, wenn ich dich vom Gegenteil überzeuge? :-D 

Wo soll ich anfangen und wo aufhören zu erklären, wenn Du nicht einmal den Unterschied und den Konsequenzen zwischen EA, Indikator (und Skript) kennst?
 
Carl Schreiber #:
Wo soll ich anfangen und wo aufhören zu erklären, wenn Du nicht einmal den Unterschied und den Konsequenzen zwischen EA, Indikator (und Skript) kennst?

Weißt du was, Karl? Dann lass es einfach sein.

Ich erwarte mir von dir keinerlei Hilfe, so wie mich deine bisherigen Beiträge nicht 1 cm weiter gebracht haben. 

Grund der Beschwerde: