Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 882

 
Artyom Trishkin:
Prüfen Sie den Code

Vielen Dank für die schnelle Antwort. Ich will nicht unhöflich sein, aber es ist nah dran, aber nicht ganz richtig. In meinem Fall wird DRAW_COLOR_HISTOGRAM2 verwendet.

Sie hat drei Puffer, zwei für die Werte von Anfang und Ende der Kerze und den dritten für die Speicherung der Farbe dieser Kerze.

Das oben gezeigte Beispiel verwendet DRAW_COLOR_HISTOGRAM , es hat zwei Puffer (Kerzengröße und Farbe) und baut Balken nur ab "0" auf. Ein solches Histogramm kann nicht vom Niveau (z. B. 50) ausgehen.

Wir sollten 50 vom Wertebereich des Indikator-Arrays subtrahieren, um den Wert von -50 bis 50 zu verschieben, anstatt von 0 bis 100 wie im Original. Statt Stufe 50 wird es Stufe 0 sein. und

um die Histogramme über und unter 0 anzuordnen, muss ich zwei davon verwenden, eines "negativ", unter 0, das andere "positiv", über 0. Ich schätze :-))

Das ist natürlich auch eine Option und für mich jetzt wahrscheinlich einfacher zu implementieren, aber ich möchte es verstehen und ERROR finden.


Was mache ich falsch? Die Werte werden korrekt berechnet (ich habe sie im Tester Schritt für Schritt überprüft), der Farbindex ändert sich korrekt, aber der Indikator selbst hat keine Wirkung, die Farbe ändert sich nicht, es gibt keinen Zusammenhang zwischen dem Farbindex

SetIndexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX); 

und die Anzeige. Trotzdem vielen Dank.

 

Änderungen vorgenommen, Drucke hinzugefügt, um die Änderungen bei jedem Häkchen zu sehen

kann man sehen, dass der Index gleich dem grünen Wert "32768" ist, das muss er auch sein, denn

ExtMainBuffer[i]>50

d.h. die Stochastik liegt über 50. Aber die Balken des Histogramms sind immer noch rot.

Ich habe die Datei mit dem Ausdruck hinzugefügt.

Dateien:
 

Ich habe das Beispiel aus der MQL5-Referenz als Beispiel für mich verwendet

MQL5 Referenzhandbuch / Benutzerdefinierte Indikatoren / Indikatorstile in Beispielen / DRAW_COLOR_HISTOGRAM2

Ich habe alles doppelt geprüft, alles, was sie tun, und es funktioniert nicht!!!!
Wer weiß, bitte beraten, wo der Fehler, was ist falsch?

 
Seric29:

Ich habe das Programm gerade im übertragenen Sinne als Compiler bezeichnet, aber in welchem Fall wäre es generell besser?

viele kleine Funktionen anstelle eines "großen Brockens" Code zu verwenden - wie@Ilyas riet

 
Sergey Voytsekhovsky:

Ich habe das Beispiel aus der MQL5-Referenz als Beispiel für mich verwendet

MQL5 Referenzhandbuch / Benutzerdefinierte Indikatoren / Indikatorstile in Beispielen / DRAW_COLOR_HISTOGRAM2

Ich habe alles doppelt geprüft, alles, was sie tun, und es funktioniert nicht!!!!
Wer weiß, bitte beraten, wo der Fehler, was ist falsch?

Ich habe Ihnen einen Link gegeben, damit Sie etwas über die Arbeit mit einem Farbpuffer und nicht mit einem Histogramm lernen. Lassen Sie das Histogramm beiseite und konzentrieren Sie sich auf die Arbeit mit Farben.

 
Sergey Voytsekhovsky:

Guten Abend. Ich habe es lange und vergeblich versucht. Das Histogramm wird korrekt gezeichnet, aber die Einfärbung in verschiedenen Farben (über und unter Stufe 50) hat sich nicht durchgesetzt. Bitte sagen Sie mir, was ich falsch gemacht habe. Der Text unten, die Datei ist verlinkt


Das erste, was mir auffiel, war die Reihenfolge der Puffer.

//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMainBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ColorHistogram_2Buffer1,INDICATOR_DATA);
   SetIndexBuffer(3,ColorHistogram_2Buffer2,INDICATOR_DATA);
   SetIndexBuffer(4,ExtHighesBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,ExtLowesBuffer,INDICATOR_CALCULATIONS);
   SetIn dexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX);

Die Puffer sollten IMMER aufeinanderfolgend sein. D.h. wenn die Datenpuffer Nummer 2 und 3 sind, dann MUSS der Farbpuffer Nummer 4 sein.

Wenn dies nicht der einzige Fehler ist, werden wir weiter suchen.

 

Ich kann nicht klar denken.

Ich habe eine halbe Stunde lang herumgestöbert und kann es nicht herausfinden.

Bitte sagen Sie mir, wie ich den Wert in Rubel von 1 Punkt des Preises erfahren kann, wenn die Größe des Ticks und sein Preis in der Tool-Spezifikation unterschiedlich sind.

Wenn ich zum Beispiel eine Variable mit dem Wert 10 habe

es ist klar, dass für Uber ist es 10 Rubel

rts 130 Rubel

Öl 60 Rubel

Wie sieht es im Code aus? Ich bin verwirrt, die einfachen Punkte sind in Ordnung, aber das rts Öl ist anders

 
Konstantin Seredkin:

Ich kann nicht klar denken.

Ich habe eine halbe Stunde lang herumgestöbert und kann es nicht herausfinden.

Bitte sagen Sie mir, wie ich den Wert in Rubel von 1 Punkt des Preises erfahren kann, wenn die Größe des Ticks und sein Preis in der Tool-Spezifikation unterschiedlich sind.

Wenn ich zum Beispiel eine Variable mit dem Wert 10 habe

es ist klar, dass für Uber ist es 10 Rubel

rts 130 Rubel

Öl 60 Rubel

Wie sieht es im Code aus? Ich bin verwirrt, die einfachen Punkte sind in Ordnung, aber das rts Öl ist anders

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * Volumen

MQL4

 
Alexandr Sokolov:

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * Volumen

MQL4

MQL5 wird benötigt

Futures werden in mt4 nicht gehandelt


Das brauchen Sie


 
Konstantin Seredkin:

MQL5 wird benötigt

Futures werden in mt4 nicht gehandelt


Das brauchen Sie


Es ist also dasselbe in mql5. Sie wurde sogar noch ein wenig erweitert. Ist es nicht das, was wir brauchen?

SYMBOL_TRADE_TICK_VALUE

SYMBOL_TRADE_TICK_VALUE_PROFITWert

doppelt

SYMBOL_TRADE_TICK_VALUE_PROFIT

Berechneter Tickwert für profitable Position

doppelt

SYMBOL_TRADE_TICK_VALUE_LOSS

Berechneter Wert eines Ticks für eine Verlustposition

doppelt

SYMBOL_TRADE_TICK_SIZE

Mindestpreisänderung

doppelt

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
Grund der Beschwerde: