Hilfe bei der Codierung - Seite 350

 
apprentice coder:
Wie kann ich im Code prüfen, ob die Verbindung zum Broker ein- oder ausgeschaltet ist?

Sie können dafür die Funktion IsConnected() verwenden, aber ...

Diese Funktion wird nie erreicht werden, wenn keine neuen Ticks eingehen.

Sie müssen sie also entweder in einer Endlosschleife halten (was für einen EA inakzeptabel ist) oder Sie müssen Timer-Ereignisse verwenden, um dies zu überprüfen (in diesem Fall könnte ein EA Sie warnen, dass keine Verbindung besteht). Ich gehe davon aus, dass wir alle Indikatoren als weniger verbindungskritisch betrachten - keine Operationen mit Aufträgen und so weiter - so dass die Timer-Lösung auch auf Indikatoren angewendet werden kann, aber wahrscheinlich weniger wichtig sind, um von dort aus zu überprüfen als von EA) . Andernfalls wird Ihr Code nicht wissen, dass die Verbindung verloren gegangen ist.

 
mladen:
Sie können die Funktion IsConnected() dafür verwenden, aber ...

Diese Funktion wird nie erreicht, wenn keine neuen Ticks eintreffen.

Sie müssen es also entweder in einer Endlosschleife halten (was für einen EA inakzeptabel ist) oder Sie müssen Timer-Ereignisse verwenden, um das zu überprüfen (in diesem Fall könnte es Sie warnen, dass keine Verbindung besteht, wenn es ein EA ist). Ich gehe davon aus, dass wir alle Indikatoren als weniger verbindungskritisch betrachten - keine Operationen mit Aufträgen und so weiter - so dass die Timer-Lösung auch auf Indikatoren angewendet werden kann, aber wahrscheinlich weniger wichtig sind, um von dort aus zu überprüfen als von EA) . Andernfalls wird Ihr Code nicht wissen, dass die Verbindung verloren gegangen ist.

Können Sie bitte ein Code-Beispiel posten, das das tut?

 
apprentice coder:
Können Sie bitte ein Codebeispiel posten, das das tut?

Ich werde morgen ein Beispiel veröffentlichen. OK?

 
mladen:
Ich werde morgen ein Beispiel posten. OK?

NA GUT. Lasst uns etwas ausruhen

 
apprentice coder:
Können Sie bitte ein Code-Beispiel posten, das das tut?

Coder-Lehrling

Hier ist ein einfacher Indikator (aber die Art und Weise, wie er verwendet wird, können Sie es genau das gleiche in der EA zu tun), dass die Broker-Verbindung Status in einem gewünschten Zeitintervall überprüft : _check_connection.mq4

#property indicator_chart_window

extern int CheckStatusEveryNMilliseconds = 250;

int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }

int deinit() { EventKillTimer(); return(0); }

int start() { return(0); }

void OnTimer()

{

static bool previouslyConnected = true;

bool currentlyConnected = IsConnected();

if (previouslyConnected != currentlyConnected)

{

previouslyConnected = currentlyConnected;

string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";

Comment("connection status changed.\nterminal is now : "+cdescription);

}

Wie Sie sehen können, ist es ein einfaches Beispiel, wie es gemacht werden kann

Dateien:
 
mladen:
Coder-Lehrling

Hier ist ein einfacher Indikator (aber die Art und Weise, wie es verwendet wird, können Sie es genau das gleiche in der EA tun), die den Broker-Verbindungsstatus in einem gewünschten Zeitintervall überprüft: _check_connection.mq4

#property indicator_chart_window

extern int CheckStatusEveryNMilliseconds = 250;

int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }

int deinit() { EventKillTimer(); return(0); }

int start() { return(0); }

void OnTimer()

{

static bool previouslyConnected = true;

bool currentlyConnected = IsConnected();

if (previouslyConnected != currentlyConnected)

{

previouslyConnected = currentlyConnected;

string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";

Comment("connection status changed.\nterminal is now : "+cdescription);

}

Wie Sie sehen können, ist es ein einfaches Beispiel, wie es gemacht werden kann

danke :0

Ich sehe, dass es sogar heute funktioniert (ohne Ticks). interessant. lernen, lernen

 
mladen:
Ändern Sie entweder den Namen der fxpreislevelsv5.ex4 oder fxpreislevelsv5.dll (Metatrader erkennt in diesem Fall keine Erweiterungen - Sie müssen den Namen der Datei unabhängig von der Erweiterung ändern)

Danke für die Hilfe!!!

Aber ich bin auf ein anderes Problem gestoßen, nach dem Kompilieren gab es keine Fehler, aber er läuft nicht und wird immer wieder entfernt

"2014.09.20 19:56:40.262 Benutzerdefinierter Indikator Trend_Imperator_V2e GBPUSDe,M5: entfernt

2014.09.20 19:56:38.901 Benutzerdefinierter Indikator Trend_Imperator_V2e GBPUSDe,M5: erfolgreich geladen"

immer passiert muss ich Codes aktualisieren?

 
forexeaexpert:
Danke für die Hilfe!!!

Aber ich bin auf ein anderes Problem gestoßen, nach dem Kompilieren gab es keine Fehler, aber er läuft nicht und wird immer wieder entfernt

"2014.09.20 19:56:40.262 Benutzerdefinierter Indikator Trend_Imperator_V2e GBPUSDe,M5: entfernt

2014.09.20 19:56:38.901 Benutzerdefinierter Indikator Trend_Imperator_V2e GBPUSDe,M5: erfolgreich geladen"

passiert immer, muss ich die Codes aktualisieren?

forexeaexpert

Dieser Fehler tritt normalerweise auf, wenn der Indikator mit falschen Parametern aufgerufen wird

Überprüfen Sie die Parameter im iCustom()-Aufruf des Indikators.

 

Hallo mladen ,

Ich habe versucht, diesen Indikator in mein ea einzufügen.

Aber nach dem Testen war es nur immer ein Kaufsignal.

Bitte helfen Sie mir zu sehen, ist das ein richtiger Code, den ich einfügen.

MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0);

Und ich weiß, macd>0 und macd<0 ist das Signal durch die Nulllinie.

Aber wie kann ich ein anderes Signal aus der Richtung der Steigung erhalten?

Ich war sehr verwirrt, nach dem Versuch so viele Zeit

Dateien:
 
stevenpun:
Hallo mladen ,

Ich habe versucht, diesen Indikator in mein ea einzufügen.

Aber nach dem Testen war es nur immer ein Kaufsignal.

Bitte helfen Sie mir zu sehen, ist, dass ein richtiger Code ich einfügen.

MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0);

Und ich weiß, macd>0 und macd<0 ist das Signal durch die Nulllinie.

Aber wie kann ich ein anderes Signal von der Steigungsrichtung bekommen?

Ich war sehr verwirrt, nachdem ich es so oft versucht hatte

stevenpun

Dafür wäre es am einfachsten, dem Indikator einen Puffer für die Steigungsrichtung hinzuzufügen oder einen anderen MACD zu verwenden, der die Steigungsrichtung bereits in einem Puffer gelöst hat.

Grund der Beschwerde: