Was, wenn du
MACD_M1_Data_Array[0] printest? Sehe nicht genau, welchen Wert du abfragen willst, bin am Handy..
Ein MACD-EA ist bereits auf Deinem Terminal (...\MQL5\Experts\Examples\MACD), dort wird das so gemacht:
... //--- create MACD indicator if(m_handle_macd==INVALID_HANDLE) if((m_handle_macd=iMACD(NULL,0,12,26,9,PRICE_CLOSE))==INVALID_HANDLE) { printf("Error creating MACD indicator"); return(false); } ... if(CopyBuffer(m_handle_macd,0,0,2,m_buff_MACD_main) !=2 || CopyBuffer(m_handle_macd,1,0,2,m_buff_MACD_signal)!=2 || ... m_macd_current =m_buff_MACD_main[0]; m_macd_previous =m_buff_MACD_main[1]; m_signal_current =m_buff_MACD_signal[0]; m_signal_previous=m_buff_MACD_signal[1]; ...
Hallo :-)
Vorab: Ich muss mal gerade blöd fragen weil ich nicht durchblicke wo/wann schreibt man hier in englisch und wann in deutsch. Immer wenn ich in deutsch geschrieben habe wurden meine EInträge gelöscht!?
Zur Sache
Ich möchte die letzten 11 Werte jeweils dann abfragen wenn eine neue Kerze beginnt (ist hier vielleicht schon ein Gedankenfehler von mir am Werk?)
Nachtrag
Ich habe nun einmal zusätzlich einen weiteren Test gemacht,
im Ergebnis
Das scheint mir richtig und ich glaube das ganze könnte sich in Wohlgefallen auflösen auch wenn ich irgendwie beim Blick auf die oben gezeigte situation immer noch sehr irritiert bin.
Hier erhalte ich nun die kompletten Nachkommastellen, was bei entsprechender Aufrundung nun auch zu den angezeigten Werten im Datenfenster passt.
In meinem Array erhalte ich aber nur auf die letzten 5 Stellen gerundete Werte - warum ist das so und wie kann ich das ändern. Ich vermute nämlich dass ich schon längst mit den richtigen Werten (zumindest teilweise) hantiere...
Vorab: Ich muss mal gerade blöd fragen weil ich nicht durchblicke wo/wann schreibt man hier in englisch und wann in deutsch. Immer wenn ich in deutsch geschrieben habe wurden meine EInträge gelöscht!?
Zur Sache
Ich möchte die letzten 11 Werte jeweils dann abfragen wenn eine neue Kerze beginnt (ist hier vielleicht schon ein Gedankenfehler von mir am Werk?)
CopyBuffer(ea_indicator_macd_M5,0,0,11,MACD_M5_Data_Array);
[0] müsste der aktuell, laufende Wert der aktuellen Kerze sein, 1,2,3...die dann der geschlossenen Kerzen - oder hab ich das falsch verstanden?
@Claudius Marius Walter
Hier siehst du das Ergebnis der gewünschten Ausgabe
Was ist nicht verstehe, ist, dass im Datenfenster jedoch zuletzt um 00:20h folgende Macd Werte angezeigt werden
Nachtrag
Ich habe nun einmal zusätzlich einen weiteren Test gemacht,
double testAr[]; CopyBuffer(ea_indicator_macd_M1,0,0,2,testAr); Print("testArt[0]:"+testAr[0]+" [1]"+testAr[1]);
im Ergebnis

Das scheint mir richtig und ich glaube das ganze könnte sich in Wohlgefallen auflösen auch wenn ich irgendwie beim Blick auf die oben gezeigte situation immer noch sehr irritiert bin.
Hier erhalte ich nun die kompletten Nachkommastellen, was bei entsprechender Aufrundung nun auch zu den angezeigten Werten im Datenfenster passt.
In meinem Array erhalte ich aber nur auf die letzten 5 Stellen gerundete Werte - warum ist das so und wie kann ich das ändern. Ich vermute nämlich dass ich schon längst mit den richtigen Werten (zumindest teilweise) hantiere...
ganz einfach,
rechts oben hast du die Auswahl der Sprache.
deutsches Forum deutsche Sprache
englisches Forum englische Sprache
......
- Double-Werte sind Hochkommazahlen:
troubles with the doubles
Double Werte werden dargestellt in der Form x = sm2^e (https://de.wikipedia.org/wiki/IEEE_754) dargestellt.
Das ändert sich sich auch nicht durch NormalizeDouble(). Intern kann man mit NormalizeDouble() den nächsten,
gültigen Wert ermitteln ähnlich dem Runden. Für die textliche Ausgabe, auch in csv-Dateien, muss man allerdings PrintFormat() oder StringFormat() oder DoubleToString() verwenden.
Bsp: https://www.mql5.com/ru/forum/363680/page20#comment_21483982 - Auch NormalizeDouble ändert das nicht nur (für die Darstellung) DoubleToString().
- Die MQ5 urls auf deutsch haben ein: ../de/.., engl.: ../en/.. und so weiter
Man kann sich aber alles mit DE im Kopf des jew. Posts sich übersetzen lassen,
oder, siehe amando, rechts oben die Sprache ändern. - Schau Dir unbedingt die Zugriffsrichtung der Arrays an und lerne das zu verstehen bzw. überprüfe es immer: Ist [0] der ältetste oder der letzte Wert im Array von CopyBuffer()!
- Die Anzahl der im Datenfenster dargestellten Dezimalstellen kann im Indikator festgelegt werden.

Новая версия платформы MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике - Заполните вкладку в терминале.
- 2021.03.24
- www.mql5.com
После повторного перезапуска Терминала - меньше секунды. Нижние три строки на две минуты позже сообщения об optimization done. Только после появления этих строк Stop перешла в Start. теперь можно отключить неиспользуемые вкладки наконец-то

Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
i trie to get values from the macd indicator, but my recieved values are not the same with the values in the data-window - what i doeing wrong?
As you can see in the datawindow is a macd value of 0.000011
In my Array i miss that value.