Fehler, Irrtümer, Fragen - Seite 2282

 
TaywinLannister:

Jungs, bitte beraten, wie man Indikatorwert für vorherige Bars in mql5 zu erhalten.

In mql 4 gab es eine SAVING-Variable, aber mql 5 hat sie nicht. HILFE

int  CopyBuffer(
   int       indicator_handle,     // handle индикатора
   int       buffer_num,           // номер буфера индикатора
   int       start_pos,            // откуда начнем 
   int       count,                // сколько копируем
   double    buffer[]              // массив, куда будут скопированы данные
   );

Und es gibt noch weitere Umsetzungen. Wie bei den Filzstiften ist die Farbe unterschiedlich, aber der Geschmack ist derselbe.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
Wie erhalte ich die Farbe aus einem Indikator-Farbpuffer?
 
Vladimir Pastushak:
Wie erhalte ich die Farbe aus einem Indikator-Farbpuffer?
Jeder Puffer hat seine eigene Nummer. Und in der Funktion CopyBuffer ist der zweite Parameter die Puffernummer. Es handelt sich jedoch nicht um eine Farbe, sondern um einen Index in einem Farbfeld. Aber damit, so hoffe ich, werden Sie schon zurechtkommen.
 
Alexey Viktorov:
Jeder Puffer hat seine eigene Nummer. Und in der Funktion CopyBuffer ist der zweite Parameter die Puffernummer. Es handelt sich jedoch nicht um eine Farbe, sondern um einen Index im Farbfeld. Aber damit können Sie hoffentlich selbst umgehen.

Ich verstehe nicht, könnten Sie das genauer erläutern?

#property indicator_color2  clrBlue, clrRed
SetIndexBuffer(1,upper_line_color,INDICATOR_COLOR_INDEX);   

Wiebekomme ich die Farbe aus dem Pufferupper_line_color ????

 
Vladimir Pastushak:

Ich verstehe das nicht, können Sie das genauer erläutern?

Der Code stammt aus dem Indikator

#property indicator_buffers   5
#property indicator_plots     1
#property indicator_type1     DRAW_COLOR_BARS
#property indicator_color1    clrDarkViolet, clrCrimson, clrYellow

Das System erzeugt ein Feld mit drei Farben. (Wenn ich so sagen darf, handelt es sich um ein verstecktes Array, auf das der Programmierer keinen Zugriff hat).

   SetIndexBuffer(4, colorBufer, INDICATOR_COLOR_INDEX);

DerIndikatorpuffer 4 enthält die Indizes der Farben aus dem Farbfeld

     colorBufer[j] = open[j] < close[j] ? 0.0 : open[j] > close[j] ? 1.0 : 2.0;

Hier wird der Farbindex in den Indikatorpuffer geschrieben, und das System verwendet den Index, um eine Farbe aus den im Array aufgeführten Farben auszuwählen.

Dementsprechend wurde die Funktion

CopyBuffer(indicator_handle, 4, 0, 1, buffer);

erhalten wir den Farbindex des letzten Balkens in dem angegebenen Array buffer[]


ps; Während ich schrieb, wurde eine Frage hinzugefügt. Ich hoffe, diese Klarstellung ist ausreichend. Ich möchte sie nicht korrigieren.

 
Fehler bei der Ausführung
void OnStart()
{
    string text1 = "\0ABCDEF",
           text2 = "\0ABC";
    Print(                text1 == text2,        ":",
           StringCompare( text1,   text2 ) == 0, ":", StringLen(text1), ":", StringLen(text2));
}

Ergebnis: wahr:falsch:7:4

Wie kommt es, dass unterschiedlich lange Saiten plötzlich gleich sind? Während der Vergleich mit StringCompare das gegenteilige == Ergebnis liefert

 
Alexey Viktorov:

Der Code stammt aus dem Indikator

Das System erzeugt ein Feld mit drei Farben. (wenn ich so sagen darf, ein verstecktes Array, das für den Programmierer unzugänglich ist).

Indikatorpuffer 4 enthält Farbindizes aus einem Array von Farben

Der Farbindex wird in den Indikatorpuffer eingegeben, und das System verwendet den Index, um eine Farbe aus den aufgelisteten und in das Feld eingegebenen Farben auszuwählen.

Dementsprechend wurde die Funktion

wir erhalten den Farbindex des letzten Balkens in dem zuvor deklarierten Array buffer[]


ps; Während ich schrieb, wurde die Frage hinzugefügt. Ich hoffe, diese Klarstellung ist ausreichend. Ich möchte sie nicht korrigieren.

Und in den Puffer wird nicht eine Farbe kopiert, sondern 0,0 1,0 2,0

getestet funktioniert nicht


Meine Frage sagt Farbe und nicht Index, wir erhalten den Index alscolorBufer[0] auf dem letzten Balken ohne all diese Manipulationen... Wie ziehe ich den Namen der Farbe oder die Farbe selbst als Farbe?

 
Vladimir Pastushak:

Und die Farbe wird in den Puffer kopiert, nicht in den 0.0 1.0 2.0

getestet funktioniert nicht

Getestet, es funktioniert.

Wladimir Pastuschak:

In meiner Frage ist es über Farbe und nicht über Index geschrieben, erhalten wir den IndexcolorBufer[0] auf dem letzten Balken ohne all diese Machinationen... Wie man genau den Farbnamen oder die Farbe selbst nach Farbtyp zu ziehen?

Das nennt man "nicht zu dicht auffahren". Ich habe Ihnen gleich gesagt, dass Sie nur den Index bekommen werden.

 
Alexey Viktorov:

Überprüft, es funktioniert.

Und das heißt "Nicht den Schwanz einziehen". Ich habe Ihnen von Anfang an gesagt, dass Sie nur den Index erhalten werden.

Ich habe die Farbe sofort geschrieben ... Danke für die Antwort ... Lesen Sie die Fragen genauer !!!

 
Vladimir Pastushak:

Und ich habe die Farbe gleich mitgeschrieben ... Danke für die Antwort ... Lesen Sie die Fragen sorgfältig!!!

Wie auch immer die Frage lautet, so lautet die Antwort. Es gibt zwei Möglichkeiten, die Farbe der Anzeige einzustellen. Verwenden Sie die zweite.

Grund der Beschwerde: