Fehler, Irrtümer, Fragen - Seite 276 1...269270271272273274275276277278279280281282283...3184 Neuer Kommentar lVlaxim 2011.01.21 23:11 #2751 Yedelkin: Sehen Sie sich das MQL5 Referenzhandbuch / Technische Indikatoren / iCustom an Vielen Dank für Ihre Schnelligkeit) vda 2011.01.21 23:32 #2752 Zum Thema. Ich habe es fast geschafft, aber COUNTER startet nicht im Terminalprotokoll sagtentfernterfolgreich geladen Es hat funktioniert!!! Sergey Gritsay 2011.01.22 00:06 #2753 Sie haben hier einen Fehler. v161_handle=iCustom(NULL,0,"ErolМТ5"); v162_handle=iCustom(NULL,0,"ErolМТ5"); Sum_handle=iCustom(NULL,0,"ErolМТ5"); In diesem Fall haben alle drei Variablen denselben Handle, da Sie denselben Indikator dreimal aufrufen. vda 2011.01.22 00:13 #2754 sergey1294: Sie haben hier einen Fehler In diesem Fall haben alle drei Variablen denselben Handle, da Sie denselben Indikator dreimal aufrufen.Ja, aber so wie ich es verstehe, sind die Werte der Indexzeilen des Indikators (die Werte der 3 Zeilen)kommen wir durch:CopyBuffer(v161_handle,1,0,3,Spr1Buffer) CopyBuffer(v162_handle,2,0,3,Spr2Buffer) CopyBuffer(Sum_handle,4,0,3,SumBuffer) Dabei sind 1, 2 und 4 die Indexwerte der Indikatorzeilen, die im Puffer gespeichert sind,die wir dann miteinander vergleichen.Aber das ist kein Problem, es wird mit diesen Indikatorlinienindizes nicht korrekt berechnet Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов www.mql5.com Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5 Jede Anfängerfrage, um das [WARNUNG GESCHLOSSEN!] Alle Fragen Fragen von Neueinsteigern zu vda 2011.01.22 00:15 #2755 Haben Sie einen Tipp, wohin Sie gehen oder was Sie hier tun können?void OnTick() { ArraySetAsSeries(Spr1Buffer,true); ArraySetAsSeries(Spr2Buffer,true); ArraySetAsSeries(SumBuffer,true); if(CopyBuffer(v161_handle,1,0,3,Spr1Buffer)<0 || CopyBuffer(v162_handle,2,0,3,Spr2Buffer)<0 || CopyBuffer(Sum_handle,4,0,3,SumBuffer)<0) { Alert("Ошибка копирования буферов индикатора номер ошибки:",GetLastError()); } bool SellSpr1 =(Spr1Buffer[1] > Spr2Buffer[1]); bool SellSum1 =(SumBuffer[1]>=Sp); if(SellSpr1 && SellSum1 && !PositionSelect(_Symbol)) { PositionOpenSell1(); } bool BuySpr1 =(Spr1Buffer[1] < Spr2Buffer[1]); bool BuySum1 =(SumBuffer[1]>=Sp); if(BuySpr1 && BuySum1 && !PositionSelect(_Symbol)) { PositionOpenBuy1(); } Sergey Gritsay 2011.01.22 00:15 #2756 alexluek: Ja, aber so wie ich es verstehe, sind die Werte der Indexzeilen des Indikators (Werte der 3 Zeilen)kommen wir durch:Dabei sind 1, 2 und 4 die Indexwerte der Indikatorzeilen, die im Puffer gespeichert sind,die wir dann miteinander vergleichen.Aber das ist kein Problem, es wird nicht korrekt nach diesen Indizes der Indikatorlinien berechnet Es reicht aus, eine Kopie des Indikators zu laden und die notwendigen Pufferindizes über den Kopierpuffer zu adressieren vda 2011.01.22 00:30 #2757 sergey1294: Es reicht aus, eine Kopie des Indikators zu laden und den gewünschten Pufferindex über den Copybuffer zu adressierennein, ich kann die Werte der 2. Zeile nicht abrufen da die Werte von 2 Zeilenindizes, die in verschiedenen Puffern gespeichert sind, verglichen werden. bool SellSpr1 =(Spr1Buffer[1] > Spr2Buffer[1]); Sergey Gritsay 2011.01.22 00:50 #2758 alexluek: Falsch, es ist nicht möglich, die Werte der 2. Zeile zu erhalten da die Werte von 2 Zeilenindizes, die in verschiedenen Puffern gespeichert sind, verglichen werden. Es kann ein Fehler im Indikator selbst vorliegen. vda 2011.01.22 01:07 #2759 sergey1294: der Indikator selbst kann Fehler enthaltender Indikator richtig anzeigt vda 2011.01.22 14:43 #2760 Die Rettung des Ertrinkenden ist die Aufgabe des Ertrinkenden.Das könnte sich in der Zukunft als nützlich erweisen:So rufen Sie 2 oder mehr Indikatorzeilen in einem EA für den aktuellen Takt aufWählen Sie 1 Handle und rufen Sie den Indikator auf, dann verwenden Sie den Copybuffer, um Indexwerte zu speichernund arbeiten dann mit diesen Puffern. sergey1294 danke für die Hilfe!int OnInit() { v161_handle=iCustom(NULL,0,"LeroyMТ5"); if(v161_handle<0) { Alert("Ошибка при создании индикаторов: ",GetLastError()); return(-1); } return(0); } void OnTick() { ArraySetAsSeries(Sp1Buffer,true); ArraySetAsSeries(Sp2Buffer,true); ArraySetAsSeries(Sp3Buffer,true); if(CopyBuffer(v161_handle,1,0,1,Sp1Buffer)<0 || CopyBuffer(v161_handle,2,0,1,Sp2Buffer)<0 || CopyBuffer(v161_handle,4,0,1,Sp3Buffer)<0) { Alert("Ошибка копирования буферов индикатора номер ошибки:",GetLastError()); return; } bool SellSpr1 =( Sp1Buffer[0]> Sp2Buffer[0] && Sp3Buffer[0]>=Sp ); if(SellSpr1 && !PositionSelect(_Symbol)) { PositionOpenSell1(); } bool BuySpr1 =( Sp1Buffer[0]< Sp2Buffer[0] && Sp3Buffer[0]>=Sp ); if(BuySpr1 && !PositionSelect(_Symbol)); { PositionOpenBuy1(); } } Ein Muster. Fragen von Anfängern MQL5 Jede Anfängerfrage, um das 1...269270271272273274275276277278279280281282283...3184 Neuer Kommentar
Sehen Sie sich das MQL5 Referenzhandbuch / Technische Indikatoren / iCustom an
Vielen Dank für Ihre Schnelligkeit)
Zum Thema. Ich habe es fast geschafft, aber COUNTER startet nicht im Terminalprotokoll sagt
entfernt
erfolgreich geladen
Es hat funktioniert!!!Sie haben hier einen Fehler.
In diesem Fall haben alle drei Variablen denselben Handle, da Sie denselben Indikator dreimal aufrufen.Sie haben hier einen Fehler
In diesem Fall haben alle drei Variablen denselben Handle, da Sie denselben Indikator dreimal aufrufen.Ja, aber so wie ich es verstehe, sind die Werte der Indexzeilen des Indikators (die Werte der 3 Zeilen)
kommen wir durch:
Dabei sind 1, 2 und 4 die Indexwerte der Indikatorzeilen, die im Puffer gespeichert sind,
die wir dann miteinander vergleichen.
Aber das ist kein Problem, es wird mit diesen Indikatorlinienindizes nicht korrekt berechnet
Haben Sie einen Tipp, wohin Sie gehen oder was Sie hier tun können?
Ja, aber so wie ich es verstehe, sind die Werte der Indexzeilen des Indikators (Werte der 3 Zeilen)
kommen wir durch:
Dabei sind 1, 2 und 4 die Indexwerte der Indikatorzeilen, die im Puffer gespeichert sind,
die wir dann miteinander vergleichen.
Aber das ist kein Problem, es wird nicht korrekt nach diesen Indizes der Indikatorlinien berechnet
Es reicht aus, eine Kopie des Indikators zu laden und den gewünschten Pufferindex über den Copybuffer zu adressieren
nein, ich kann die Werte der 2. Zeile nicht abrufen
da die Werte von 2 Zeilenindizes, die in verschiedenen Puffern gespeichert sind, verglichen werden.
Falsch, es ist nicht möglich, die Werte der 2. Zeile zu erhalten
da die Werte von 2 Zeilenindizes, die in verschiedenen Puffern gespeichert sind, verglichen werden.
der Indikator selbst kann Fehler enthalten
der Indikator richtig anzeigt
Die Rettung des Ertrinkenden ist die Aufgabe des Ertrinkenden.
Das könnte sich in der Zukunft als nützlich erweisen:
So rufen Sie 2 oder mehr Indikatorzeilen in einem EA für den aktuellen Takt auf
Wählen Sie 1 Handle und rufen Sie den Indikator auf, dann verwenden Sie den Copybuffer, um Indexwerte zu speichern
und arbeiten dann mit diesen Puffern. sergey1294 danke für die Hilfe!