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: 4043
Beiträge: 38396
Benutzer: 6.347
Aktive Benutzer: 268
Links: 80
Wir begrüßen unseren neuesten Benutzer: Evelyn
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 4 Tagen
- Evelyn
vor 4 Tagen
- sanjay_flo...
vor einer Woche
- ekman
vor einer Woche
- SaxTrade
vor einer Woche
- Matthias...

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 29.03.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
AVT befindet sich auf einem aufstrebenden Ast
Standard Computer Uhrzeit in Indikator einbauen

Ich habe ein kleines Dashboard für manuelles Trading, daß mir die genaue Spreadangabe zeigt (der Broker zeigt "nur" gerundete Werte, die natürlich nicht so genau sind) und - momentan ein Candle countdown. Um den Countdown geht es. Ich würde ihn gerne ersetzen durch eine hh:mm:ss Anzeige ersetzen, die (wie meine Computeruhrzeit) einfach gleichmäßig die Zeit rauf-/runterzählt.
Der Candle Countdown beruht ja auf einem Time-Vergleich, der wiederum abhängig ist, ob ein neuer Tick kam, und das führt manchmal dazu, daß die Zählung mal kurz stehenbleibt und dann das versäumte schnell überspringt.

Ich müßte also irgendwie auf irgendeine Windowsfunktion zugreifen, nur auf welche und wie (oh Gott, hoffentlich ist das nicht eine Treppe zu hoch für mich).
Wenn das einfach ist, wäre ich für Hinweise dankbar - wenn nicht, fliegt der Countdown einfach wieder raus und ich sehe eben wie bisher auf die Computeruhr. Danke. AVT
__________________
heute schon gelacht?
  #2 (permalink)  
Alt 29.03.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.086
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

EventSetTimer(1);
in die OniInit-Funktion

EventKillTimer();
in die OnDeinit-Funktion

und in der
void OnTimer()-Funktion

wird aller reingeschrieben, was in diesem o.g. Fall jede Sekunde berechnet oder angezeigt werden soll.

Es gibt auch noch einen
EventSetMillisecondTimer()

Wie es der Name schon sagt!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 29.03.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
EventSetTimer(1);
in die OniInit-Funktion
EventKillTimer();
in die OnDeinit-Funktion

und in der
void OnTimer()-Funktion

wird aller reingeschrieben, was in diesem o.g. Fall jede Sekunde berechnet oder angezeigt werden soll.

Wie es der Name schon sagt!
Erst mal vielen Dank traderdoc für die Antwort, das bringt mich schon ein Stück näher, klingt relativ einfach. Ich muß darüber erst mal nachlesen und -denken, weil ich mit Timer noch nicht gearbeitet habe. Und ein "mal eben im Code ersetzt" nicht auf Anhieb klappte, aber ich versuche es hinzukriegen. AVT
__________________
heute schon gelacht?
  #4 (permalink)  
Alt 30.03.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
AVT befindet sich auf einem aufstrebenden Ast
Standard

Hallo traderdoc, meine Lösung sieht jetzt so aus:
Code:
int OnInit()
{
   // == check user inputs before we continue
   // == last: for real clock values
   EventSetTimer(1); // 1 means every second
   return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
   // == 1. kill real time clock 
   EventKillTimer();
   // == 2. delete all created objects
   for (int counter=-1;counter<19;counter++) ObjectDelete(indNames+(string)counter);
   // == 3. print code why we were deinitialized
   Print(__FUNCTION__," DeInit reason code = ",reason);
}
int OnCalculate (const int rates_total, // + more stuff 
                 const int& spread[])
{
   if (ShowInfo)
   {
      int C1end=70, C2end=10;        // (C)olumn 1|2 end     : right pixel end of column 1 and 2
      int Hpls=0;                    // (H)orizontal (pl)u(s): used as Hpls*1 *2 for each new line
      if     (FontSize==10) Hpls=12;
      else if(FontSize==9)  Hpls=11;
      else if(FontSize==8)  Hpls=10;   
      
      if (ObjectFind(indNames+"0") ==-1) 
      {  // fixed objects in the first column
         FuncCreateObject("1",C1end+HoriLeftShift,VerticalShift+Hpls*1,"local :",FontSize,FontName,normalColor,0);  
      }
   } //== if (ShowInfo)
   //== return the value of prev_calculated for next call
   return(rates_total);
}
void OnTimer()
{
   int C1end=70, C2end=10;        // (C)olumn 1|2 end     
   int Hpls=0;                    // (H)orizontal (pl)u(s)
   if     (FontSize==10) Hpls=12;
   else if(FontSize==9)  Hpls=11;
   else if(FontSize==8)  Hpls=10;
      
   datetime LocalTime=TimeLocal();                           // = JJJJ.MM.DD hh:mm:ss
   string TimeString=TimeToString(LocalTime,TIME_SECONDS ) ; // = hh:mm:ss
   FuncCreateObject("11",C2end+HoriLeftShift,VerticalShift+Hpls*1, // name+positon
                    TimeString,FontSize,FontName,CounterColor      // text+format
                   );  
}
// FuncCreateObject is userdefined function
Ist das so schon ok oder kann man da noch was verbessern? Was mich ein bißchen stört ist die Wiederholung der Positionsbedingungen C1end,C2end,Hpls. Vielleicht sollten die besser in der FuncCreateObject() stehen.
Aber die Uhrzeit ist jetzt perfekt! Danke noch mal für die Hilfestellung, war gar nicht so schwer. AVT
__________________
heute schon gelacht?
  #5 (permalink)  
Alt 01.04.18
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 127
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

...hier ist auch noch was in der Art:
https://www.mql5.com/en/code/12804
Der zählt die verbleibende Zeit der Kerze runter.
  #6 (permalink)  
Alt 03.04.18
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 58
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Adlerauge Beitrag anzeigen
...hier ist auch noch was in der Art:
https://www.mql5.com/en/code/12804
Der zählt die verbleibende Zeit der Kerze runter.
Vielen Dank Adlerauge, bin grade dabei, den Code zu lesen und zu sehen, ob es besser ist, das auf der Basis zu machen. AVT
__________________
heute schon gelacht?
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, programmierung mql4, time, uhr, uhrzeit, uhrzeit indikator, zeit


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 06:44 Uhr.



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