1. nichts darüber, dass die Nummer des Indikatorpuffers nicht mit dem Indikator verbunden ist. Da es nur einen Indikator gibt, wird automatisch der Puffer 0 verwendet, und genau das habe ich angegeben.
2. Wenn ich den Indikator Handle in Initialisierung, wenn ich die Parameter ändern, die an den Indikator übergeben werden, muss ich neu füllen die EA auf dem Diagramm, so dass die Initialisierung Ereignis kommt und die neuen Parameter angewendet werden?
So erhalte ich die aktuellen Daten des gleitenden Durchschnitts, ist das korrekt?
Zwei Fragen.
1. nichts darüber, dass die Nummer des Indikatorpuffers nicht mit dem Indikator verbunden ist. Da es nur einen Indikator gibt, wird automatisch der Puffer 0 verwendet, und genau das habe ich angegeben.
2. Wenn ich den Indikator Handle in Initialisierung, wenn ich die Parameter ändern, die an den Indikator übergeben werden, muss ich die EA auf dem Diagramm neu laden, so dass die Initialisierung Ereignis kommt und die neuen Parameter angewendet werden?
intCopyBuffer(
int indicator_handle, // handle индикатораint buffer_num, // номер буфера индикатораint start_pos, // откуда начнем int count, // сколько копируемdouble buffer[] // массив, куда будут скопированы данные
);
Es gibt eine Funktion, die das Handle des Indikators übernimmt (in Ihrem Fall ist das die Variablema_handle und die Puffernummer '0' - Null, da der Moving Average Indikator nur einen Puffer hat).
2. Wenn Sie die Eingabeparameter in Ihrem EA ändern, wird Ihr EA erneut initialisiert und der Indikator-Handle wird in OnInit mit den eingegebenen Parametern erstellt.
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
Ja, es ist nicht klar, was die Nummer des Indikatorpuffers ist, wie diese Puffer erstellt werden, ob sie zu einem bestimmten Indikator gehören oder eine gemeinsame Nummerierung haben. In der Dokumentation steht, dass SetIndexBuffer() geschrieben werden soll, aber im Beispiel für den gleitenden Durchschnitt wird es ohne geschrieben. Ich habe die Referenz gelesen und weitere Artikel durchsucht, aber es ist immer noch unklar. Muss der Präprozessor die Puffer angeben und warum sollten die Puffer um eins kleiner sein als in der Präprozessorrichtlinie und nicht gleich.
Ivan_Invanov: Ich weiß nicht, was eine Indikatorpuffernummer ist, wie diese Puffer erstellt werden und ob sie einem bestimmten Indikator zugeordnet sind oder die gleiche Nummerierung haben. In der Dokumentation steht, dass SetIndexBuffer() geschrieben werden soll, aber im Beispiel für den gleitenden Durchschnitt wird es nicht geschrieben. Ich habe die Referenz gelesen und weitere Artikel durchsucht, aber es ist immer noch unklar. Muss der Präprozessor die Puffer angeben, und warum sollten die Puffer um eins kleiner sein als in der Präprozessorrichtlinie und nicht gleich sein.
Wenn Sie nach einer metaphysischen Bedeutung suchen... dann wird vieles unverständlich. Sonst ist es nur eine Zahl. Er gehört zu einem bestimmten Indikator.
Die Expert Advisors haben überhaupt keine Indikatorpuffer, daher kann es keinen SetIndexBufer()-Aufruf geben.
Nicht eine weniger, sondern genau dieselbe. Beim Zählen von Null an ist die letzte Zahl 1 weniger als die Gesamtzahl.
Wenn Sie nichts dagegen haben, beantworten Sie bitte noch ein paar Fragen.
1. Ich verstehe nicht, warum ich einer deklarierten Variablen den Wert 0 zuweisen muss, wenn ich ihr später sowieso etwas zuweisen werde. Außerdem wird manchmal 0 nicht zugewiesen, manchmal aber doch.
Und sie sagen, dass man Objekte bei der Deinitialisierung löschen muss (ich verstehe nicht warum), aber ein Indikator-Handle ist ein Objekt, aber es wird normalerweise nicht gelöscht, warum ist das so?
3.MqlTradeRequest request={0}; Was bedeutet das? Wahrscheinlich ist die gesamte Struktur mit 0 belegt, aber sie enthält nicht nur numerische Typen.
4. Und warum gibt es hier eine logische Operation?
boolOrderSend(
MqlTradeRequest& request, // структура запросаMqlTradeResult& result // структура ответа
);
Wenn Sie nichts dagegen haben, beantworten Sie bitte noch ein paar Fragen.
1. Ich verstehe nicht, warum ich einer deklarierten Variablen den Wert 0 zuweisen muss, wenn ich ihr später sowieso etwas zuweisen werde. Außerdem wird manchmal 0 nicht zugewiesen, manchmal aber doch.
Und sie sagen, dass man Objekte bei der Deinitialisierung löschen muss (ich verstehe nicht, warum), aber ein Indikator-Handle ist ein Objekt, aber es wird normalerweise nicht gelöscht, warum ist das so?
3.MqlTradeRequest request={0}; Was bedeutet das? Wahrscheinlich ist die gesamte Struktur mit 0 belegt, aber es sind nicht nur numerische Typen.
4. Warum brauchen wir hier eine logische Operation?
1. Aus Gewohnheit.
2. es ist ein anderes Objekt. Er wird von selbst entladen, kann aber durch die Funktion IndicatorRelease() beschleunigt werden.
3. Sie wird gelöscht und das war's.
4. Es handelt sich nicht um eine logische Operation, sondern um die Übertragung einer Variablen per Referenz.
Ich bin über etwas verwirrt. Wenn SYMBOL_TRADE_EXECUTION_MARKET ausgeführt wird . Kann ich etwas tun, um Aufträge zu einem bestimmten Preis zu eröffnen, wie bei der Sofortigen Ausführung? Benötige ich einen schwebenden Auftrag? Bitte schreiben Sie ein Marktanfrageformat für einen schwebenden Auftrag.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
So erhalte ich die aktuellen Daten des gleitenden Durchschnitts, ist das korrekt?
Zwei Fragen.
1. nichts darüber, dass die Nummer des Indikatorpuffers nicht mit dem Indikator verbunden ist. Da es nur einen Indikator gibt, wird automatisch der Puffer 0 verwendet, und genau das habe ich angegeben.
2. Wenn ich den Indikator Handle in Initialisierung, wenn ich die Parameter ändern, die an den Indikator übergeben werden, muss ich neu füllen die EA auf dem Diagramm, so dass die Initialisierung Ereignis kommt und die neuen Parameter angewendet werden?
So erhalte ich die aktuellen Daten des gleitenden Durchschnitts, ist das korrekt?
Zwei Fragen.
1. nichts darüber, dass die Nummer des Indikatorpuffers nicht mit dem Indikator verbunden ist. Da es nur einen Indikator gibt, wird automatisch der Puffer 0 verwendet, und genau das habe ich angegeben.
2. Wenn ich den Indikator Handle in Initialisierung, wenn ich die Parameter ändern, die an den Indikator übergeben werden, muss ich die EA auf dem Diagramm neu laden, so dass die Initialisierung Ereignis kommt und die neuen Parameter angewendet werden?
1. Es gibt keine "Assoziation". Das gab es nie.
Lesen wir die Hilfe zu CopyBuffer
Es gibt eine Funktion, die das Handle des Indikators übernimmt (in Ihrem Fall ist das die Variablema_handle und die Puffernummer '0' - Null, da der Moving Average Indikator nur einen Puffer hat).
2. Wenn Sie die Eingabeparameter in Ihrem EA ändern, wird Ihr EA erneut initialisiert und der Indikator-Handle wird in OnInit mit den eingegebenen Parametern erstellt.
1. Es gibt keine "Assoziation". Das hat es nie gegeben.
...
Bedeutung des AufrufsSetIndexBuffer()
Bedeutung eines Aufrufs von SetIndexBuffer()
Ich weiß nicht, was eine Indikatorpuffernummer ist, wie diese Puffer erstellt werden und ob sie einem bestimmten Indikator zugeordnet sind oder die gleiche Nummerierung haben. In der Dokumentation steht, dass SetIndexBuffer() geschrieben werden soll, aber im Beispiel für den gleitenden Durchschnitt wird es nicht geschrieben. Ich habe die Referenz gelesen und weitere Artikel durchsucht, aber es ist immer noch unklar. Muss der Präprozessor die Puffer angeben, und warum sollten die Puffer um eins kleiner sein als in der Präprozessorrichtlinie und nicht gleich sein.
Wenn Sie nach einer metaphysischen Bedeutung suchen... dann wird vieles unverständlich. Sonst ist es nur eine Zahl. Er gehört zu einem bestimmten Indikator.
Die Expert Advisors haben überhaupt keine Indikatorpuffer, daher kann es keinen SetIndexBufer()-Aufruf geben.
Nicht eine weniger, sondern genau dieselbe. Beim Zählen von Null an ist die letzte Zahl 1 weniger als die Gesamtzahl.
Wenn Sie nichts dagegen haben, beantworten Sie bitte noch ein paar Fragen.
1. Ich verstehe nicht, warum ich einer deklarierten Variablen den Wert 0 zuweisen muss, wenn ich ihr später sowieso etwas zuweisen werde. Außerdem wird manchmal 0 nicht zugewiesen, manchmal aber doch.
Und sie sagen, dass man Objekte bei der Deinitialisierung löschen muss (ich verstehe nicht warum), aber ein Indikator-Handle ist ein Objekt, aber es wird normalerweise nicht gelöscht, warum ist das so?
3.MqlTradeRequest request={0}; Was bedeutet das? Wahrscheinlich ist die gesamte Struktur mit 0 belegt, aber sie enthält nicht nur numerische Typen.
4. Und warum gibt es hier eine logische Operation?
Wenn Sie nichts dagegen haben, beantworten Sie bitte noch ein paar Fragen.
1. Ich verstehe nicht, warum ich einer deklarierten Variablen den Wert 0 zuweisen muss, wenn ich ihr später sowieso etwas zuweisen werde. Außerdem wird manchmal 0 nicht zugewiesen, manchmal aber doch.
Und sie sagen, dass man Objekte bei der Deinitialisierung löschen muss (ich verstehe nicht, warum), aber ein Indikator-Handle ist ein Objekt, aber es wird normalerweise nicht gelöscht, warum ist das so?
3.MqlTradeRequest request={0}; Was bedeutet das? Wahrscheinlich ist die gesamte Struktur mit 0 belegt, aber es sind nicht nur numerische Typen.
4. Warum brauchen wir hier eine logische Operation?
1. Aus Gewohnheit.
2. es ist ein anderes Objekt. Er wird von selbst entladen, kann aber durch die Funktion IndicatorRelease() beschleunigt werden.
3. Sie wird gelöscht und das war's.
4. Es handelt sich nicht um eine logische Operation, sondern um die Übertragung einer Variablen per Referenz.
1. Aus Gewohnheit.
2. Dies ist ein anderes Objekt. Er entlädt sich dann selbst, kann aber durch IndicatorRelease() beschleunigt werden.
3. Sie wird gelöscht und das war's.
4. Es handelt sich nicht um eine logische Operation, sondern um die Übertragung einer Variablen per Referenz.