Fehler, Irrtümer, Fragen - Seite 1393

 
galustyan10:

HALLO, KÖNNTEN SIE MICH BERATEN, WENN ICH EIN ECHTES KONTO AUF MT5 ERÖFFNE, WIE LANGE DAUERT ES, BIS EIN MITARBEITER DES UNTERNEHMENS MICH ANRUFT UND DAS KONTOERÖFFNUNGSVERFAHREN ABSCHLIESST?

Warum schreien Sie? Sie erhalten Ihr Login und Passwort, wenn Sie Ihr Konto registrieren. In der Regel handelt es sich um ein persönliches Konto auf der Website des Brokers.

 
Kompilierungsfehler:'a' - ist kein statisches Mitglied
class A     { int a; };
class B : A { void a(); };
void B::a() {}
ansonsten
class A     { int a; };
class B : A { void a() {} };
ist in Ordnung. Was ist der Unterschied?
 

MT5 1159. Die horizontale Skala stimmt nicht überein, wenn unter "Personalisierung" eine mittlere oder große Schrift eingestellt ist. Win7, 32b

 

Wie skaliert MT5 die Indikatoren automatisch in einem separaten Fenster?

Indikator in einem separaten Fenster

Das Terminal erreicht einen Höchstwert von 0,5603, während der tatsächliche Höchstwert eines beliebigen Indikatorpuffers in der gesamten Historie 0,0605 beträgt. In MT4 gibt es solche Probleme natürlich nicht.

 
Ilya Malev:

Wie skaliert MT5 die Indikatoren automatisch in einem separaten Fenster?


Das Terminal erreicht einen Höchstwert von 0,5603, während der tatsächliche Höchstwert eines beliebigen Indikatorpuffers in der gesamten Historie 0,0605 beträgt. In MT4 gibt es solche Probleme natürlich nicht.

Überprüfen Sie die Werte, die Sie im Indikatorpuffer haben. Sie können es manuell mit "Crosshair" machen, Sie können es mit MQL5 machen.
 
Karputov Vladimir:
Überprüfen Sie die Werte, die Sie im Indikatorpuffer haben. Sie können es manuell mit "Crosshair" machen, Sie können es mit MQL5 machen.

Ich habe Ihnen gesagt, dass der Höchstwert in der gesamten Geschichte 0,0605 beträgt. Wird in OnCalculate überprüft, indem der Höchstwert jedes Puffers in jedem Balken verglichen wird.

P.S. Ich habe eigentlich schon herausgefunden, was das Problem ist. Unterschiedlicher Algorithmus zur Berechnung der Maxima in MT4 und MT5. Ich würde gerne verstehen, warum es sinnvoll ist, diesen Algorithmus zu ändern, aber das ist eine rhetorische Frage.

Das Problem war in MT4 - Indikatorpufferwerte, die im Datenfenster angezeigt werden, beeinflussen die Skalierung eines separaten Indikatorfensters, auch wenn ihre Anzeige im Chart deaktiviert ist (Stil DRAW_NONE). Ich löste das Problem, indem ich sie negativ machte und das Minimum auf 0 festlegte. Alles wurde perfekt angezeigt, da nur Indikatorwerte über dem festgelegten Minimum (0) an der Berechnung der Skala teilnahmen. Nun nehmen Werte unterhalb des festgelegten Minimums an der Skalenberechnung teil. Mit anderen Worten, sie haben nicht die Möglichkeit hinzugefügt, die Pufferwerte aus der Skalenberechnung zu entfernen (oder ich habe es noch nicht herausgefunden), aber sie haben die Möglichkeit entfernt, sie von der Skalierung auszuschließen, indem sie unter das Minimum oder Maximum gesetzt werden. (dies alles gilt für nicht angezeigte DRAW_NONE-Puffer)

 
Ilya Malev:

Ich habe Ihnen gesagt, dass der Höchstwert in der gesamten Geschichte 0,0605 beträgt. Wird in OnCalculate überprüft, indem der Höchstwert jedes Puffers in jedem Balken verglichen wird.

P.S. Ich habe eigentlich schon herausgefunden, was das Problem ist. Unterschiedlicher Algorithmus zur Berechnung der Maxima in MT4 und MT5. Ich würde gerne verstehen, warum es sinnvoll ist, diesen Algorithmus zu ändern, aber das ist eine rhetorische Frage.

Welche Werte auch immer an den Indikatorpuffer übergeben werden, sie sind immer gleich. Eine andere Variante: Sie analysieren zu Beginn des Starts nicht jedes Element des Indikatorpuffers und erhalten als Ergebnis zufällige Werte im Puffer.

Es geht also nicht ohne einen Blick in den Code.

 
Karputov Vladimir:

Eine andere Möglichkeit ist, dass man zu Beginn des Starts nicht jedes Element des Indikatorpuffers zählt und am Ende zufällige Werte im Puffer hat.

Ich habe es bereits herausgefunden. Übrigens war es auch eine unerwartete Überraschung von MT5 :)
 
Karputov Vladimir:

Auf jeden Fall müssen Sie sich den Code hier ansehen.

OK, hier ist der Code

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_minimum 0
#property  indicator_color1 clrRed
#property  indicator_type1 DRAW_LINE
#property  indicator_label1 "Стд.Откл."

double buffer1[], buffer2[];

int i_std=INVALID_HANDLE;

void OnInit(){
   SetIndexBuffer(0, buffer1);
   SetIndexBuffer(1, buffer2);
   PlotIndexSetInteger(1, PLOT_DRAW_TYPE, DRAW_NONE);
   PlotIndexSetInteger(1, PLOT_SHOW_DATA, true);
   ArraySetAsSeries(buffer1, true);
   ArraySetAsSeries(buffer2, true);
   i_std=iStdDev(Symbol(), Period(), 20, 0, MODE_SMA, PRICE_CLOSE);
}

void OnDeinit(const int reason){
   if(i_std!=INVALID_HANDLE)  IndicatorRelease(i_std);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]){

   for(int i=rates_total-MathMax(1, prev_calculated); i>=0; i--){
      buffer1[i]=_ind(i_std, 0, i);
      buffer2[i]=-MathRand()%5;
   }
   return(rates_total);
}

double _ind(int hnd, int buf, int index){
   if(index < 0) return(EMPTY_VALUE);
   double Arr[];
   return(CopyBuffer(hnd, buf, index, 1, Arr)==1?Arr[0]:EMPTY_VALUE);
}
 

Ich weiß nicht, ob es sich um einen Fehler oder ein seltsames Verhalten handelt, aber im MT4-Strategietester haben die Puffer für Indikatoren eine Größe von etwa 1000 +/- 3 Zellen.

Bei anderen Arten von Tests - Demo oder real - entspricht die Anzahl der Zellen im Puffer in etwa der Anzahl der in den Terminaleinstellungen erlaubten Balken.

Ich möchte fragen, ob es sich um einen Fehler handelt oder ob es so sein sollte. Ich habe auch festgestellt, dass Indikatoren während des Testens bearbeitet werden können, ohne den Tester anzuhalten. Ich habe noch nirgendwo Informationen über die Expert Advisors gelesen, aber danke dafür!