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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3822
Beiträge: 37997
Benutzer: 6.071
Aktive Benutzer: 494
Links: 80
Wir begrüßen unseren neuesten Benutzer: Roerich
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- Roerich
vor einer Stunde
- John_Liver...
vor 2 Stunden
- harry1001
vor 18 Stunden
- supadog
vor einem Tag
- POCJonah7

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 57
Gesamt: 60
Team: 0
Team:  
Benutzer:  andi1604, EVPVertrieb, Harryy
Freunde anzeigen

Empfehlungen

Werbung

Like Tree1Likes
  • 1 Post By traderdoc
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 28.08.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard Wie den Preis vor x Sekunden ermitteln?

Servus zusammen,

heute mal wieder ein kniffliges Problem bei dem ich eure Hilfe brauche.

Wie kann ich den Preis von vor beispielsweise 10, 20 oder 30 Sekunden ermitteln?

Dieser Wert/Buffer sollte im besten Falle laufend aktualisiert werden.

Vorab schonmal besten Dank.

Grüße
Dan
  #2 (permalink)  
Alt 28.08.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Retrospektive gar nicht, da die kleinste Zeiteinheit 1 Minute ist und immer nur die Peise der vergangenen Kerzen abgefragt werden können.
Das geht also nur indem ein Timer mitläuft, der alle 10, 20 oder 30 Sekunden der Preis in die jeweilige Variable speichert, die dann ggf. Ausgelesen werden kann.

traderdoc
  #3 (permalink)  
Alt 28.08.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard

Moin Doc,

sowas hab ich mir schon fast gedacht.

Der Timer müsste also mit einem "Countdown" auf Basis der CurrentTime arbeiten...

Hast du vielleicht ein passendes CodeSnippet für so ein Experiment?

Grüße
Dan
  #4 (permalink)  
Alt 28.08.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Habe ich natürlich nicht, aber ich kann ja mal eins aus der Hüfte schießen.
Code:
int timetakt, timenew, timeold, pricetime;
double price;
.
.
.
.
timetakt = 10; //für 10 Sekunden
timenew = TimeCurrent();
if (timenew >= timeold + timetakt) {
   price = Bid;
   pricetime = timenew;
   timeold = Timecurrent();
   Alert("Bid: ", price, " Uhrzeit :", TimeToStr(pricetime));
 }
Das Problem ist nur, dass nur bei jedem neuen Tick das Programm läuft und der kommt halt wie er will, manchmal auch erst nach 1 oder 3 Minuten! D.h. die eingestellten Taktzeiten werden nicht immer genau eingehalten werden können.

traderdoc
feelfree likes this.
  #5 (permalink)  
Alt 28.08.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Thumbs up

Tausend Dank.

Damit kann ich auf jeden Fall schon mal arbeiten.

Dan
  #6 (permalink)  
Alt 02.09.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Das Problem ist nur, dass nur bei jedem neuen Tick das Programm läuft und der kommt halt wie er will, manchmal auch erst nach 1 oder 3 Minuten! D.h. die eingestellten Taktzeiten werden nicht immer genau eingehalten werden können.

traderdoc
Hi doc,

dein Code funktioniert absolut einwandfrei und ich konnte damit einen recht nützlichen Indikator zusammenbasteln.

Wenn ich diesen Indikator bzw. dessen Buffer mit iCustom auslesen will wird dieser vom EA bei jedem Tick neu initialisiert und der Count beginnt bei 0. Wie lässt sich das verhindern?

Wie kann ich den Code direkt in einen EA einfügen der im EachTickMode läuft?
Hier hab ich ebenfalls das Problem das er mit jedem Tick bei 0 anfängt.

Ich hoffe du kannst mir nochmal weiterhelfen.

Besten Dank und Grüße
Dan
  #7 (permalink)  
Alt 02.09.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Na ja, Du mußt natürlich die Deklaration der Variablen in den Teil oberhalb der init()-Funktion legen und nicht!!! in die start()-Funktion.

traderdoc
  #8 (permalink)  
Alt 02.09.13
Premium Mitglied
 
Registriert seit: Mar 2013
Beiträge: 332
feelfree befindet sich auf einem aufstrebenden Ast
Standard

Danke für deine Hilfe.
Die Deklaration war das eine Problem, der iCustom Aufruf das andere...

Zitat:
Zitat von feelfree Beitrag anzeigen
Wenn ich diesen Indikator bzw. dessen Buffer mit iCustom auslesen will wird dieser vom EA bei jedem Tick neu initialisiert und der Count beginnt bei 0. Wie lässt sich das verhindern?
Ursache der dauernden Initialisierung des Indikators waren die variablen Parameter.

Buffer1 = iCustom(NULL, 0, "CustomIndi", Para1, Para2, 0, 0); -> funktioniert nicht

Die Parameter 1 und 2 waren ganz oben bei den externen Eingaben angesiedelt.

Buffer1 = iCustom(NULL, 0, "CustomIndi", 0, 0); -> funktioniert

Nun sind die Parameter eben fest im Indikator eingetragen.

Sicher nicht die schönste Lösung aber sie tut's erstmal.

Grüße
Dan
Thema geschlossen

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



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