Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43268
Benutzer: 7.224
Aktive Benutzer: 74
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 16 Stunden
- Sundaytrad...
vor 22 Stunden
- TS_6
vor 3 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak

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

Empfehlungen

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 08.08.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Talking Mathe Nachhillfe gesucht

Eigentlich suchte ich nach der Erklärung, was
_Digits%2 "in Normalsprache bedeutet/ausrechnet".
Soweit ich gekommen bin, ist das wohl "Rest von _Digits geteilt durch 2".
Also habe ich mir ein Print gemacht - das aber ergibt völlig widersprüchliche Angaben:
Code:
Print(" Digits=",DoubleToStr(_Digits,0),
      " Digits/2=",DoubleToStr((_Digits/2),_Digits),
      " Digits%2=",DoubleToStr(Digits%2,_Digits) );
// ==> Result EURUSD (Digits=5)
// Digits=5
// Digits/2=2.00000
// Digits%2=1.00000
// ==> Result AUDJPY (Digits=3)
// Digits=3
// Digits/2=1.000
// Digits%2=1.000
Wieso ist 5/2=2 und nicht 2.5, wieso ist 3/2=1 und nicht 1.5
und wieso ist der Rest nicht 5.
Kann mir das bitte jemand erklären? Danke. AVT

Geändert von AVT (08.08.20 um 14:20 Uhr) Grund: 2 Nullen zu viel im Result
  #2 (permalink)  
Alt 08.08.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Der % Operator ist ja der Modulo Operator. Also 5%2 ergibt 1 da die zwei zweimal gerade in die 5 passt und der Rest der übrig bleibt 1 ist (5-4 =1)

10%7 würde somit 3 liefern, da dass der Rest der Division ist.

Digits wird vom Typ integer sein. Daher kommt nur das ganzzahlige Ergebnis zurück und der Rest wird "verschluckt"
AVT likes this.
  #3 (permalink)  
Alt 08.08.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Indikator-Trading Beitrag anzeigen
Der % Operator ist ja der Modulo Operator.
Digits wird vom Typ integer sein. Daher kommt nur das ganzzahlige Ergebnis zurück und der Rest wird "verschluckt"
Danke Indikator-Trading, das Wort Modulo hat geholfen

Daß aber bei ner Division von Integer zwingend ein Integer-Ergebnis rauskommt, finde ich ziemlich merkwürdig - heißt ja, wenn ich eine Periode von 25 Tagen um die Hälfte kürze (also /2) kommt (rein rechnerisch 12,5 raus, was dann gerundet (,5 nach oben) wird und dann in 13 Tagen endet - ohne daß ich mich dagegen wehren kann.
Bedeutet wohl dann gleichzeitig, daß ich die Periode dann als double setzen muß, um wenigstens selber zu bestimmen, ob auf- oder abgerundet wird.
AVT
  #4 (permalink)  
Alt 08.08.20
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Hab über nen Weg nach gedacht, wie man von beliebigen double Werten rausfinden kann, ob sie gerade oder ungerade sind. Das einfachste wär wohl, sie so oft mit 2 zu dividieren oder zu multiplizieren, bis die letzte Stelle 0 oder 5 ist. Keine Ahnung, brauch auch Mathe-Nachhilfe.
  #5 (permalink)  
Alt 08.08.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Hallo.

Hab über nen Weg nach gedacht, wie man von beliebigen double Werten rausfinden kann, ob sie gerade oder ungerade sind. Das einfachste wär wohl, sie so oft mit 2 zu dividieren oder zu multiplizieren, bis die letzte Stelle 0 oder 5 ist. Keine Ahnung, brauch auch Mathe-Nachhilfe.
Ich würde dir eher empfehlen die beiden ersten Posts in diesem Thema durchzulesen, dann hättest du deine Lösung. Dann das mit einer kleinen If-Abfrage kombinieren und fertig. Da Du ja schon Jahre dabei bist, schaffst du den Rest schon selbst oder?
  #6 (permalink)  
Alt 08.08.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Hallo.
Keine Ahnung, brauch auch Mathe-Nachhilfe.
Stimmt!

Nun, bei der Division einer Integerzahl stolpern tatsächlich viele und ja, die Integerzahl müsste dann vorher in eine double gewandelt werden.

Dann klappts auch mit der Kommastelle.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 08.08.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Das einfachste wär wohl, sie so oft mit 2 zu dividieren oder zu multiplizieren, bis die letzte Stelle 0 oder 5 ist
Hm, rechnen wirs mal durch.
Ist 6 grade?
MA-EA Lösungsweg:
6*2=12
12*2=24
24*2=48
Weitere Ergebnisse:
96,192,364,768,.....,422212465065984,...,usw
Endet davon was mit 5 oder 0 -> Nein
6 ist somit ungerade!
Mathematik ist schon was tolles oder?
  #8 (permalink)  
Alt 08.08.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Hallo.
Hab über nen Weg nach gedacht, wie man von beliebigen double Werten rausfinden kann, ob sie gerade oder ungerade sind. Das einfachste wär wohl, sie so oft mit 2 zu dividieren oder zu multiplizieren, bis die letzte Stelle 0 oder 5 ist. Keine Ahnung, brauch auch Mathe-Nachhilfe.
Ok, ich nehme jetzt mal das Zitat ganz ernst und beachte im Satzbau die wiederholten "oder" und schlussfolgere, dass der Nachhilfling in der Oder-Verknüpfung der fettmarkierten Stellen ein Logik sieht.

Nehmen wir wieder die 6:
6/2=3
3/2 = 1,5
1,5/2=0,75
0,75/2=0,375
0,375/2=0,1875

Ich glaube fest daran, dass die letzte Stelle keine 0 ergeben wird.
Nein halt doch! Man könnte ja auch
6/2=3.0 schreiben -> also dann doch eine gerade Zahl!

Nehmen wir nun die 16:
16/2=8,0

Also auch eine gerade Zahl!

Nun nehmen wir mal 17:
17/2 = 8,50

Endet auf 0 -> also auch eine gerade Zahl!

@Indicator-Trading hatte gerade herausgefunden, dass die 6 ungerade sein muss. Hm, ich komme zu dem Ergebnis, es existieren nur gerade Zahlen, weil alle Divisionen auf eine 0 enden.

Was nun Herr Gauß?

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

Zitat:
Zitat von traderdoc Beitrag anzeigen
Nun, bei der Division einer Integerzahl stolpern tatsächlich viele und ja, die Integerzahl müsste dann vorher in eine double gewandelt werden.
Eine Zusatzfrage bitte: Ist das allgemeine Programmiersprachen Praxis, daß Integerdivisionen immer Integerergebnisse liefern, oder ist das von Sprache zu Sprache verschieden?
Danke. AVT
  #10 (permalink)  
Alt 09.08.20
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Ich würde sagen dass das interne Abhandeln der Division abhängig vom Compiler ist. Manche erkennen das automatisch. Hier ist es halt leider nicht so intelligent das der Compiler erkennt, dass du eine Division durchführst und das direkte Ergebnis ausgeben möchtest.
Thema geschlossen

Lesezeichen


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 10:30 Uhr.





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