Eine echte Frage - Seite 10

 
m100:

goldtrader ,vielleicht ist meine Frage zu dumm, aber woher bekommt das "Datenfenster" alle Werte?


Das ist eine Frage an die Entwickler des MT4-Terminals. Ich denke, sie stammt aus den Puffern der relevanten Indikatoren und Zeitreihen.
 
goldtrader:
Dies ist eine Frage an die Entwickler des MT4-Terminals. Ich denke, dass aus den Puffern der entsprechenden Indikatoren und Zeitreihen.

Es gibt also keine gleichwertige Funktion wie GetWindowsData(3 buffer,0 bar) ?

GetWindowsData hat es sich selbst ausgedacht.

 
goldtrader:

msdn, WinApi, WindowHandle lesen. Ich bin kein Experte für diese Technologien. Denken Sie daran, dass es für Ihre Aufgabe ein BLEEP ist.

Es gibt hier etwas https://www.mql5.com/ru/forum/120356

Um diese Werte aus dem Datenfenster zu erhalten, müssen Sie den Mauszeiger immer über dem gewünschten Fenster haben

sobald sich der Cursor irgendwo hinbewegt oder den Fokus verliert - das Fenster wird nicht mehr aktualisiert

 
m100:

Es gibt also keine gleichwertige Funktion wie GetWindowsData(3 buffer,0 bar) ?

Offensichtlich nicht, denn alles, was Sie brauchen, ist vorhanden und Sie brauchen keine Redundanz. Das Datenfenster ist im Wesentlichen überflüssig.
 
OK, danke an alle, ich werde den Code von drknnn auseinandernehmen
 

Vielleicht ist es sinnvoll, etwas zu erklären, um die Dinge klarer zu machen.

Die Zeile MyValue=MyValue/(PeriodSkolzjaschej+1); 1 wird der Variablen PeriodSkolzjaschej hinzugefügt, weil die Schleife die Suche bei der Kerze mit der Nummer = PeriodSkolzjaschej beginnt und bei der Kerze mit der Nummer Null endet. Daher ist die Gesamtzahl der Kerzen, die an der Schleife teilgenommen haben, gleich PeriodSkolzjaschej+1. Das bedeutet, dass bei PeriodeSkolzjaschej=35 der MA mit Periode=36 tatsächlich beteiligt ist. Um einen gleitenden Durchschnitt mit 35 Perioden zu erhalten, ohne etwas am Code zu ändern, müssen wir die Variable PeriodSkolzjaschej auf 34 setzen.

 
drknn:

Vielleicht lohnt es sich, ein paar Dinge klarzustellen, um die Sache zu verdeutlichen.

Die Zeile MyValue=MyValue/(PeriodeSkolzjaschej+1); 1 wird der Variablen PeriodeSkolzjaschej hinzugefügt, weil die Schleife die Suche bei der Kerze mit der Nummer = PeriodeSkolzjaschej beginnt und bei der Kerze mit dem Wert Null endet. Daher ist die Gesamtzahl der Kerzen, die an der Schleife teilgenommen haben, gleich PeriodSkolzjaschej+1. Das bedeutet, dass bei PeriodeSkolzjaschej=35 der MA mit Periode=36 tatsächlich beteiligt ist. Um einen gleitenden Durchschnitt mit 35 Perioden zu erhalten, ohne etwas am Code zu ändern, müssen wir die Variable PeriodSkolzjaschej auf 34 setzen.

danke

Ist applied_price eine zusätzliche Variable?

 
m100:

Dankeschön

Ist applied_price eine zusätzliche Variable?


Nein - standardmäßig setze ich iMACD() auf Null, was bedeutet, dass der Indikator auf Basis der Schlusskurse erstellt werden soll. Wenn ich dem Benutzer die Wahl überlasse, dann sollte die Abfrage des Indikatorwerts wie folgt erfolgen

Main_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,0,0);

Signal_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,0);

// ------- Усредняем сигнальную линию ------------------
for(int i=PeriodSkolzjaschej;i>=0;i--){
 MyValue=MyValue+iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,i);
}