Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4909
Beiträge: 43073
Benutzer: 7.123
Aktive Benutzer: 80
Links: 84
Wir begrüßen unseren neuesten Benutzer: diema
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 23:38).
Neue Benutzer:
vor 2 Tagen
- diema
vor einer Woche
- jagwire
vor 2 Wochen
- Kondrashov...
vor 2 Wochen
- Cuthulu
vor 3 Wochen
- Lomotrader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 63
Gesamt: 63
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 05.12.22
Neues Mitglied
 
Registriert seit: Jun 2022
Beiträge: 9
Tagtranpler befindet sich auf einem aufstrebenden Ast
Standard 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
Mit Zitat antworten
  #2 (permalink)  
Alt 05.12.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.698
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #3 (permalink)  
Alt 06.12.22
Neues Mitglied
 
Registriert seit: Jun 2022
Beiträge: 9
Tagtranpler befindet sich auf einem aufstrebenden Ast
Standard

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..]
}
}
}
//+------------------------------------------------------------------+
Mit Zitat antworten
  #4 (permalink)  
Alt 07.12.22
Neues Mitglied
 
Registriert seit: Jun 2022
Beiträge: 9
Tagtranpler befindet sich auf einem aufstrebenden Ast
Standard

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..]
}
}
}
//+------------------------------------------------------------------+
Mit Zitat antworten
  #5 (permalink)  
Alt 07.12.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.698
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Anhand dieses Codes kann ich den Fehler nicht finden.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #6 (permalink)  
Alt 07.12.22
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.698
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #7 (permalink)  
Alt 08.12.22
Neues Mitglied
 
Registriert seit: Nov 2021
Beiträge: 10
Frank2404 befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #8 (permalink)  
Alt 12.12.22
Neues Mitglied
 
Registriert seit: Jun 2022
Beiträge: 9
Tagtranpler befindet sich auf einem aufstrebenden Ast
Standard

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
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
ascii, mt4, tastaturabfrage

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 07:12 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2023 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------