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: 4357
Beiträge: 39948
Benutzer: 6.704
Aktive Benutzer: 205
Links: 80
Wir begrüßen unseren neuesten Benutzer: Ondragon
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (vor einem Tag um 22:38).
Neue Benutzer:
vor 15 Stunden
- Ondragon
vor einem Tag
- sar_trader
vor 2 Tagen
- Solari
vor 3 Tagen
- simplepips
vor 3 Tagen
- NXT2017

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 252
AVT befindet sich auf einem aufstrebenden Ast
Standard Zeitprozente

Ich habe Probleme mit Zeitprozenten. Nehmen wir an ich habe ein bestimmte Zeitspanne, die schon vergangen ist, und ich will jetzt wissen, wann in der Zukunft z.B. die Hälfte, dieselbe Zeitspanne oder 1,5 mal dieser Zeitspanne vergangen sind - dann kann ich das für jeden beliebigen Wert über Prozente ausrechnen. Dummerweise gibt es dabei
- entweder irgendwas, was im MT nirgends dokumentiert ist
- oder eine Art "Berechnungsgrenze", die nicht überschritten werden kann
- oder irgendwas im Code stimmt nicht
Code dazu:
Code:
datetime CalcTimePercent(double PercLevel, datetime HundredVal, datetime ZeroVal)
{
   datetime result= 0;
   double   multi = PercLevel*0.01;        //z.B. für 50%: 50.0*0.01=0.5

	// Zeitsekunden sind immer positiv und müssen sehr groß sein
   ulong The100Time, The0Time, TimeDiff;
   The100Time=HundredVal;                  //neuerer Zeitpunkt als Sekunden seit 1.Jan. 1970
   The0Time  =ZeroVal;                     //älterer Zeitpunkt als Sekunden seit 1.Jan. 1970
   TimeDiff  =(The100Time-The0Time);       //Sekunden zwischen neurerem und älterem Zeitpunkt
	
   ulong DiffVal=(ulong)MathRound( TimeDiff*multi );  //runden weil ulong integer ist
   result=(datetime)(HundredVal+DiffVal);             //neuere Zeit + die %Sekunden

   return( result );
}
Die Werte, die der Funktion übergeben werden:
- Prozentzahl als externe Variable
- Zeiten sind die Anfangs- und Endzeit einer Trendlinie
Mit dem ausgebenen Resultat wird zu diesem Zeitpunkt eine vertitkale Linie erstellt.
Das Problem dabei zeigt sich zum Beispiel im m1-Chart: dort sind die Linien (als beste Prüfung habe ich die 3 Werte 100%, 200% und 300% genommen, weil es da gar keine Diskussionen um den Wert gibt) korrekt, solange die Trendlinie nicht länger als 155 Bars (inklusiv) ist. Wird die Trendlinie länger (also im m1 mehr als 9300 Sekunden Differenz zwischen älterer und neuerer Zeit), dann werden die Ergebnis-Vertikalen immer abenteurlicher.
Hat jemand eine Idee? AVT
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 847
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 37
Bayreuther befindet sich auf einem aufstrebenden Ast
Standard

Die Übergabe von datetime an ulong sollte Du so schreiben.

HTML-Code:
The100Time = (ulong)HundredVal;
The0Time    = (ulong)ZeroVal; 
Viele Grüße
Mit Zitat antworten
  #4 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 252
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Bayreuther Beitrag anzeigen
Die Übergabe von datetime an ulong sollte Du so schreiben.
Super, danke Dir, das war der Trick, wäre ich nie drauf gekommen . AVT
Mit Zitat antworten
Antwort

Lesezeichen


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 +1. Es ist jetzt 01:28 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2020 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.
-----------------------------------------------------------------------------------------------------------------------------