![]() |
|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
![]() |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
![]()
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 |
|
|||
![]()
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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
![]()
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..] } } } //+------------------------------------------------------------------+ |
|
|||
![]()
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..] } } } //+------------------------------------------------------------------+ |
|
|||
![]()
Anhand dieses Codes kann ich den Fehler nicht finden.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
![]()
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"); } } }
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
![]()
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. |
|
|||
![]()
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 |
![]() |
Lesezeichen |
Stichworte |
ascii, mt4, tastaturabfrage |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|