[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 993

 
Aleksander:

Die Anzeige erfolgt also auf der linken Seite des Bildschirms - wo ist der Unterschied? - In der rechten Zeile steht der Preis - in der linken der Text der Nachricht...

oder den Balken - aber dann ist alles auf der linken Seite...


Dies ist der Wunsch des Kunden :) Andere Indikatoren werden auf der linken Seite verwendet, so dass sich die einen nicht mit den anderen überschneiden.

Nun, ich werde das Problem lösen, ich danke Ihnen allen für Ihre Teilnahme!

 
Hallo. Ich habe eine Frage: gibt es eine Möglichkeit, einen EA in MT4 für mehrere Währungspaare auf einmal zu optimieren? oder vielleicht gibt es ein spezielles Programm dafür? oder zumindest die Optimierung zu beschleunigen (um die CPU voll auszulasten)?
 
gawrik:
Hallo. Ich habe eine Frage: Gibt es eine Möglichkeit, einen Advisor für mehrere Währungspaare gleichzeitig in MT4 zu optimieren?

Sie können mehrere MT4 gleichzeitig mit der Optimierung eines EAs auf verschiedenen Paaren betreiben.

Wenn es verboten ist, dann sag ihm, dass ich es erlaube.

 
Aleksander:

Versuchen Sie, ein Delta zuzuweisen

delta = 1; if (Ziffern = 5) {delta = 10;}

und im Text hinzufügen

if (Bid <=Low&& Ask < High - 10*Punkt*Delta)

Dies ist wahrscheinlich nicht ganz richtig, aber die Bedeutung ist klar

delta = Punkt; if(Ziffern = 5) {delta = 10*Punkt;}

if (Bid <=Low&& Ask < High - 10*delta) obwohl es keinen Unterschied gibt, aber... was ist mit mir?

 

und die folgende Frage zu den dynamischen Spreads macht es erforderlich, den durchschnittlichen Spread über N Ticks zu berechnen,

Ich habe das Folgende gezeichnet, bin mir aber nicht sicher, ob es richtig ist:

int TicSpred=100;

double Spread[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

for (int q=TicSpred;q>0;q--){

if (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}

for (q=TicSpred;q>0;q--){Spread[p]=Spread[p-1];}

Spread[0]=(Ask-Bid)/delta;

double CountedSpred;

for (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}

double Aversired=CountedSpred/TicSpred; aber ich bin mir nicht sicher, ob dies korrekt ist, und es scheint nicht korrekt für fünf Ziffern zu zählen

 

Nein, das ist ganz und gar nicht richtig.

Ich muss jede nächste Ausbreitung in ein Array schreiben und es durch die Anzahl der Ausbreitungen im Array teilen, und sobald die Anzahl der Datensätze N erreicht, muss ich den ersten im Array entfernen

Kann man etwas Einfacheres tun?

 

Auch hier gibt es einen Fehler

if (Bid >=High ) // Close Bay

zurück (11);

wenn (Bid <=Low && Ask <High - 1*delta )

return (21); // Close Sell

wenn (Handel == 1){

if ( Bid <=Low ) // Bucht öffnen

Print ( " Bay = ",11);

return (10);}

wenn (Zeit == 1){

if (Bid<=Low&&Ask<High -1*delta ) // Eröffnung von Srll

Print (" Sell= ",21);

return (20);}

return; // Wenn die Zeit nicht stimmt, öffnen Sie nichts; beenden Sie einfach.

Die folgenden Variablen Hoch und Tief sind bekannt (ich habe sie mit einem Ausdruck überprüft), und der Preis zeigt die folgenden Bedingungen

1.wenn buy > High, dann senden wir einen 10-Befehl (close buy)

2. wenn buy < Low und asc um 1 Punkt niedriger als High ist, dann schließen Sie es mit Return 11

wenn Variable Time == 1 then:

3. wenn Bid niedriger oder gleich Low ist und Ask mindestens einen Punkt niedriger als High, dann Buy eröffnen

4. wenn das Bid höher oder gleich High ist, dann eröffnen wir Sell?

Ich möchte daran erinnern, dass dieses Programm vollständig aus dem Tutorial ist, ändere ich nur den Handel Kriterien, bzw. den Befehl 10, 20 alle Standard, werde ich alle Funktionen, die nur für den Fall aufgerufen werden anhängen

Dateien:
close_all.mqh  3 kb
open_ord.mqh  3 kb
trade.mqh  3 kb
 

Leute! Hallo zusammen! Hilfe!

Ich brauche, um ein Zeitintervall in der Funktion allert Indikator zu schreiben. wie, ein Fenster öffnet sich, wenn ein Signal erscheint und wir können dort sehen, aus dem Chart dieses Signal. M15 zum Beispiel.

Ich habe die Website durchsucht, aber ich habe nichts dergleichen gefunden.

 

Leute! Hallo zusammen! Hilfe!

Ich brauche, um ein Zeitintervall in der Funktion allert Indikator zu schreiben. wie, ein Fenster öffnet sich, wenn ein Signal erscheint und wir können dort sehen, aus dem Chart dieses Signal. M15 zum Beispiel.

Ich habe die Website durchsucht, aber ich habe nichts dergleichen gefunden.

 

Wie auch immer, diese Funktion

//--------------------------------------------------------------------

// Kriterium.mqh

// Soll als Beispiel im MQL4-Tutorial verwendet werden.

//--------------------------------------------------------------- 1 --

// Funktion zur Berechnung von Handelskriterien.

// Zurückgegebene Werte:

// 10 - Eröffnung Kaufen

// 20 - Verkaufseröffnung

// 11 - Schlussverkauf Kaufen

// 21 - Verkaufsabschluss

// 0 - keine signifikanten Kriterien

-1 - ein anderes Finanzinstrument wird verwendet

//--------------------------------------------------------------- 2 --

// Externe Variablen:


//--------------------------------------------------------------- 3 --

int Criterion() // Benutzerfunktion

{

//----------------------------------------------------------------4----

string Sym="________";

if (Sym!=Symbol()) // Wenn nicht unsere Fin.

{

Inform(16); // Nachricht.

return(-1);} // ...und beenden

delta = Punkt;

if (Ziffern == 5 || (Ziffern == 3 && StringFind(Symbol(), "JPY", 0) != -1))

delta= Punkt *10;

int Digital=MarketInfo(Symbol(),12);

//--------------------------------------------------------------- 5 --

// Parameter für den technischen Indikator:

bool Handel;

if (Beginn>Ende && (Stunde()>Begin-1 || Stunde()<Ende)){trade=1;}

if (Begin<End && (Hour()>Begin-1 && Hour()<End)){trade=1;}

{if (trade==0 && mag!=Mag) return(0);}

--------------------------Berechnung der durchschnittlichen Streuung-----------------------

if (!IsTesting() || IsVisualMode() || !IsOptimization())

{

int TicSpred=100;

double Spread[10000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

for (int q=TicSpred;q>0;q--){

if (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}

for (q=TicSpred;q>0;q--){Spread[q]=Spread[q-1];}

Spread[0]=(Ask-Bid)/delta;

double CountedSpred;

for (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}

double Averaged=CountedSpred/TicSpred;

}


//--------------------------------------------------------------- 5 --

// Berechnung der Handelskriterien

if (Bid >=High ) // Close Bay

zurück (11);

wenn (Gebot <=Niedrig )

return (21); // Close Sell

wenn (Handel == 1){

if ( Bid <=Low &&Ask<High -0.5*MyPoint ) // Open Bay

Print ( " Bay = ",11);

return (10);}

wenn (Handel == 1){

if (Bid>=High ) // Eröffnung der Srll

Drucken (" Verkaufen = ",21);

return (20);}

return; // Wenn die Zeit falsch ist, öffnen Sie nichts, sondern beenden Sie einfach.


//--------------------------------------------------------------- 6 --

return(0); //Beenden der Benutzerfunktion

}

//--------------------------------------------------------------- 7 --

es wird davon ausgegangen, dass die Variablen "Low" und "High" bereits definiert wurden und korrekt sind

Grund der Beschwerde: