Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 407

 
first_may:

Guten Tag.

Könnten Sie mir bitte sagen, wie man den Wert vonTenkan undKijun auf die vorherige Kerze in mql5 zu bekommen?

Bitte beachten Sie das Beispiel füriIchimoku.
 
Karputov Vladimir:
Bitte sehen Sie sich das Beispiel füriIchimoku an.

Ich habe nachgeschaut, bevor ich die Frage gestellt habe. In mql4 war es einfacher, zum Beispiel bei der letzten Kerze

double tenkan_sen=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,1);

Und hier habe ich verstanden, dass ein Objekt erstellt wird

handle=iIchimoku(Name,Zeitraum,tenkan_sen,kijun_sen,senkou_span_b);

Aber wie ich den Tenkan-Wert herausbekomme, kann ich nicht herausfinden :(. Ich möchte einen einfachen Tenkan- und Kijun-Schnittpunkt verfolgen und das war's.

 
first_may:

Ich habe nachgeschaut, bevor ich die Frage gestellt habe. In mql4 war es einfacher, zum Beispiel bei der letzten Kerze

double tenkan_sen=iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,1);

Und hier habe ich verstanden, dass ein Objekt erstellt wird

handle=iIchimoku(Name,Zeitraum,tenkan_sen,kijun_sen,senkou_span_b);

Aber wie ich den Tenkan-Wert herausbekomme, kann ich nicht herausfinden :(. Ich möchte einen einfachen Schnittpunkt von Tenkan und Kijun und das war's.

Möchten Sie das Tracking in einem Indikator oder in einem EA durchführen?
 
Karputov Vladimir:
Möchten Sie das Tracking in einem Indikator oder in einem EA durchführen?
In der EA. Geben Sie das Alarmierungsformular mit Ton aus.
 
first_may:
Im Berater. Ausgabe von Warnmeldungen mit Ton.
Sehen Sie sich die Funktion CopyBuffer() an.
 
Tapochun:
Sehen Sie sich die Funktion CopyBuffer() an.

In diesem Beispiel

ma_handle=iMA(Symbol(),0,period,shift,smootMode,price); - Objekt wird erstellt

if(CopyBuffer(ma_handle,0,0,to_copy,MABuffer)<=0)return(0); - füllt ArrayMABuffer mit Werten vonma_handle

Und jetztkönnen wir Werte vonMABuffer?

 
first_may:

In diesem Beispiel

ma_handle=iMA(Symbol(),0,period,shift,smootMode,price); - Objekt wird erstellt

if(CopyBuffer(ma_handle,0,0,to_copy,MABuffer)<=0)return(0); - füllt ArrayMABuffer mit Werten vonma_handle

Und jetztkönnen wir Werte vonMABuffer?

Ja. In MABuffer erhalten Sie mit der Funktion CopyBuffer() die Werte von MA in dem angegebenen Intervall. MABuffer ist natürlich ein Array.

 
Tapochun:

Ja. In MABuffer erhalten Sie die MA-Werte in dem Intervall, das Sie mit der Funktion CopyBuffer() angegeben haben. MABuffer ist natürlich ein Array.

Und Sie sollten alles richtig machen in dem Verfahren

intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime&time[],
constdouble&open[],
constdouble&high[],
constdouble&low[],
constdouble&close[],
constlong&tick_volume[],
constlong&Volumen[],

constint&spread[])

Auch wenn ich den Wert auf dem Bildschirm anzeigen möchte?

 
Die Standardlänge der Zeichenkette liegt zwischen 0 und 255 Zeichen. Ich lese String aus der Datei zeilenweise über FileReadString ohne Längenparameter (standardmäßig Länge=0) . Das heißt, die Zeichenfolge wirdvon der aktuellen Position bis zum Zeilenvorschubzeichen"\r\n"gelesen .Was ist zu tun, wenn eine Zeile in einer Datei mehr als 255 Zeichen lang ist (und das kommt recht häufig vor)? Ich möchte die Zeichenfolge nicht in Teile zerlegen, da die Zeichenfolgen streng strukturiert sind (die Datei enthält HTML-Code). Die Idee ist, dass ich zuerst die gesamte Datei Zeile für Zeile in das Array lese und dann nur die Informationen auslese, die ich brauche. Wenn die Zeilen aufgespalten werden, funktioniert der Parser nicht mehr, da sich die Zeichen der benötigten Informationen trennen und in verschiedene Lesezeilen gelangen können. Keine lange Schnur( Irgendwelche anderen Ideen?
 
first_may:

Und das alles wird in einem Verfahren ordnungsgemäß durchgeführt

intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime&time[],
constdouble&open[],
constdouble&high[],
constdouble&low[],
constdouble&close[],
constlong&tick_volume[],
constlong&Volumen[],

constint&spread[])

Auch wenn ich den Wert auf dem Bildschirm anzeigen möchte?

Es hängt alles von der Logik des Indikators ab. Am häufigsten - ja, in der Funktion OnCalculate().
Grund der Beschwerde: