Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL5 (http://www.expert-advisor.com/forum/forumdisplay.php?f=221)
-   -   Frage zu MT5 - "Custom indicator iteration function " (http://www.expert-advisor.com/forum/showthread.php?t=6684)

Angel 10.06.20 22:46

Frage zu MT5 - "Custom indicator iteration function "
 
Hallo!

Ich bin von MQL4 zu MQL5 umgestiegen - die Zeichen der Zeit.... Nein, ein Broker meiner Wahl bietet den MT5 für Aktien an und daher nutze ich nun den MT5 - und versuche mich mit dem Erwerb der entsprechenden Progger-Kenntnisse... Mehr schlecht als Recht.
Nun ssah ich in einem Programm den Schnipsel-Abschnitt:
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
... und dann geht die Programmiererei los - wie nach "ONTick" in MT4)

Was bedeutet der o.a. Abschnitt bitte denn im Einzelnen?

AVT 10.06.20 23:33

Zitat:

Zitat von Angel (Beitrag 43842)
Nun ssah ich in einem Programm den Schnipsel-Abschnitt:
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{

Was bedeutet der o.a. Abschnitt bitte denn im Einzelnen?

Dasselbe wie in MT4, über die const ...&wert[] kommst Du an den jeweiligen Wert.
rates_total ist die Gesamtheit der Bars, über die Du Infos abfragen kannst und prev_calculated sind die Bars, die beim letzten Durchgang schon bearbeitet wurden; heißt, wenn prev_calculated==0, dann ist das hier grad das erste Mal, daß ne Kalkulation stattfindet (und er macht erst mal einen Rundumschlag über alles - na ja, was Du so an limit eingibst). Danach ist prev_calculated>0 (er hat ja schon mal kalkuliert).
Kommt jetzt eine Bar neu hinzu, dann muß er nur noch Berechnungen mit der neuen Bar machen.
Reicht das als Erklärung? AVT

Angel 10.06.20 23:48

Hm... also im Prinzip etwas, was ich NICHT weglassen kann...? Ist alles sehr neu und verwirrend... :confused::(
In MT4 schrieb ich "OnTick()" und gut war...
Ehrlich gesagt: Ich hab´s nicht geschnallt. Wieso soll ich "an einen Wert kommen"?
Bisher ist es für mioch nur ne "Formel", die ich hinklatsche, damit wenn ich auf "kompilieren" drücke, alles funktioniert....:(:confused:

AVT 11.06.20 09:36

Zitat:

Zitat von Angel (Beitrag 43844)
In MT4 schrieb ich "OnTick()" und gut war...
Ehrlich gesagt: Ich hab´s nicht geschnallt. Wieso soll ich "an einen Wert kommen"?

Wenn Du einen EA schreibst, kannst Du das auch weiterhin so machen.

Wenn Du einen Indikator schreibst, mußt Du anstatt der vielgesehenen start Funktion jetzt OnCalculate nehmen.
Und bei einem Indikator kannst Du dann über open[i] z.B. den Eröffnungswert einer Bar in einer i-Schleife bekommen, oder über time[i] die dazugehörige Zeit.
Im Editor unter Hilfe - MQL5 Referenz - TAB Index "OnCalculate" eingeben und nachlesen. :)
AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:24 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum