Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Tastaturabfrage für den MT4 (http://www.expert-advisor.com/forum/showthread.php?t=7275)

Tagtranpler 05.12.22 19:35

Tastaturabfrage für den MT4
 
Hallo zusammen,

ich verwende den MT4 und möchte die Eröffnung und Schließung von Positionen mit der Tastatur steuern.
Dazu habe ich einen EA zusammen geschraubt, der die Tastatur mit

void OnChartEvent(const int id,const long& lp,const double& dp,const string& sp)
{
(Abfrage der ASCII-Codes)
}

abfragt.

Dieser EA funktioniert auch so, wie ich es mir vorstelle. Aber nach jedem Wechsel des Zeitfensters muß ich den EA neu mit dem Chart verbinden und starten. Das ist lästig und sehr langsam.

Weiß jemand, wie man eine Tastaturabfrage programmieren kann, die unabhängig von Veränderungen im MT4 konstant durchläuft?

Vielen Dank im Voraus für Eure Hilfe.


Viele Grüße

traderdoc 05.12.22 20:52

Das verstehe ich nicht, weil nach dem Wechsel des TimeFrames der EA weiterhin auf dem Chart bleibt.
Da sollte der gepostete Code weiteren Aufschluß bringen.

traderdoc

Tagtranpler 06.12.22 15:41

Hallo zusammen,

hier ist der gekürzte EA. Die ausgelassenen Teile haben in der Vergangenheit ohne Probleme funktioniert, so dass ich vermute, dass der Fehler nicht in diesen Teilen steckt.

Noch eine Ergäzung:
Nachdem ich die Zoom-Funktion benutzt habe, muß ich auf den Chart klicken, damit dieser EA wieder funktioniert. Wenn ich Dies nicht mache, hat das Drücken einer Taste keine Wirkung.

Was mache ich falsch? Vielen Dank im Voraus für die Hilfe.

Viele Grüße


Der EA:

//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lp,const double& dp,const string& sp)
{
if(id==CHARTEVENT_KEYDOWN)
{
tas=TranslateKey((int)lp);
if(tas==118)// Taste v
{
[..Orderschließungen und -eröffnungen..]
}
if(tas==110)// Taste n
{
[..Orderschließungen und -eröffnungen..]
}
if(tas==98)// Taste b
{
[..Orderschließungen und -eröffnungen..]
}
}
}
//+------------------------------------------------------------------+

Tagtranpler 07.12.22 13:30

Hallo zusammen,

hier der gekürzte EA. Die ausgelassenen Anteile haben in anderen EA keine Probleme gemacht, so daß ich nicht vermute, das der Fehler in diesen Anteilen steckt.

Noch eine Ergänzung:
Nachdem ich die Zoom-Funktion benutzt habe, muß ich auf den Chart klicken, damit die Tastaturabfrage wieder funktioniert. Mache ich Dies nicht, bleibt das Drücken von Tasten ohne Wirkung.

Was mache ich falsch? Vielen Dank im Voraus für Eure Hilfe.


Viele Grüße

Der EA:

//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lp,const double& dp,const string& sp)
{
if(id==CHARTEVENT_KEYDOWN)
{
tas=TranslateKey((int)lp);
if(tas==118)// Taste v
{
[.. Orderschließungen und -eröffnungen..]
}
if(tas==110)// Taste n
{
[.. Orderschließungen und -eröffnungen..]
}
if(tas==98)// Taste b
{
[.. Orderschließungen und -eröffnungen..]
}
}
}
//+------------------------------------------------------------------+

traderdoc 07.12.22 16:16

Anhand dieses Codes kann ich den Fehler nicht finden.

traderdoc

traderdoc 07.12.22 16:51

Mal abgesehen davon, dass ich nicht weiss, wie Du auf diese Tasten-Codes kommst, läuft das Programm tadellos auch nach Timeframewechsel.

Code:

void OnChartEvent(const int id,const long& lp,const double& dp,const string& sp)  {
  if(id==CHARTEVENT_KEYDOWN) {
      if (lp == 86) { //Taste v
        Print("v"); 
      }
      if (lp == 78) { // Taste n
        Print("n");
      }

      if (lp == 66) { // Taste b
        Print("b");
      }
  }
}

traderdoc

Frank2404 08.12.22 18:09

Hast Du mal in den Einstellungen vom MT4 unter "Extras" -> "Optionen" und dann den Reiter "Experten" geschaut, ob bei dem Feld "Automatisches Handeln deaktivieren, wenn das Symbol des Charts oder die Periode gewechselt wurde"
vielleicht ein Häkchen ist?

Wenn ja, dann musst Du den Haken raus machen. Sonst deaktiviert sich der EA nach einem Wechsel des Timeframe.

Tagtranpler 12.12.22 19:43

Hallo Frank,

eben habe ich nachgesehen.

Deine Vermutung war richtig. Ich hatte den MT4 falsch eingestellt. Nach der Korrektur dieser Einstellungen läuft alles ohne Probleme.

Noch einmal vielen Dank für Deine Hilfe.


Viele Grüße


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:16 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum