Trade_Zone_Timer
Hallo, Liebe Programmier-"Gemeinde",
piptrade hat da `mal `ne Frage ! : habe einen erste kleinen EA erstellt, welcher sogar über einen frei einstellbaren Trade_Zone_Timer (intraday-Session-Zones) verfügt. Leider läuft der Timer immer nur für einen Tag und muss am nächsten Tag neu aktiviert werden, da er die 00:00 Uhr-Grenze nicht "überwindet". So der bisherige Code: Code:
//+------------------------------------------------------------------------+ LG. piptrade |
Das was in "void init()" steht musst du in OnTick() schreiben. Sonst wird immer das Datum verwendet an dem die Init Funktion aufgerufen wurde verwendet.
Code:
//Globale Variable ---Leopold--- |
Hallo Leopold,
vorab herzlichen Dank für Deine Unterstützung. Die gegebenen Hinweise sind logisch sehr gut nachvollziehbar. Dennoch habe ich jetzt, - nach unzähligen Versuchen, Deine Hinweise umzusetzen, - erst einmal resigniert. --> 1. Versuch = error, 2. Versuch = error, 3. Vers. usw. usw.. Wat nu ??? Ich sollte ev. "void Tick()" zusätzlich deklarieren - ist das richtig ? - und wenn "Ja", wie mache ich das ? LG. piptrade PS.: Liebes "Helferlein", mach es mir nicht so schwer. |
Hallo,
Wenn du einen EA erstellst hast du am Anfang immer folgende 3 Funktionen im Code: OnInit, OnDeinit und OnTick. ich bin davon ausgegangen, dass diese "init" Funktion in der "OnInit" Funktion steht. Diese musst du aber in die "OnTick" Funktion schreiben. Code:
datetime TagesStartZeit = 0; ---Leopold--- |
OhHa; OhHa; OhHa; - eine neue Antwort im "Kästchen" !
Lieber Leopold recht herzlichen Dank für Deine umgehende Rückmeldung und ein ganz, ganz liebes Dankeschön für Deine ausführliche Erläuterung. Eigentlich sollte es jetzt keine Probleme mehr geben. Werde den "Einbau" heute Abend vornehmen und - sollte sich kein weiterer error einstellen - die nächsten 2 Tage testen. Alles in Allem bin ich sehr zuversichtlich und werde mich in Kürze nochmals melden. Ganz LG. piptrade :) |
Eine kleine Zwischennachricht an alle, die das Thema verfolgen:
Ganz so einfach ist es dann leider doch nicht ! Habe mich redlich gemüht, aber allein das "OnTick()" kann so wahrscheinlich nicht ganz funktionieren. Hier müßte sicher noch ein "int" oder ein "void" davor ? - Gleichzeitig kann bei Verwendung des "void" kein "return(0)" erfolgen ... usw. Ist das SO ? Als nächstes werde ich meine TimeZones mit einer TimeZone_4, welche über die 00:00 Uhr-Grenze hinausgeht, ergänzen; - vielleicht bringt das schon `was ? Vielleicht habt aber auch Ihr eine "zündende" Idee ? LG. piptrade |
Zitat:
Code:
void OnTick() 2. Ja, eine Void-Funktion hat keinen Rückgabewert. Um die Funktion vorzeitig zu verlassen, schreib einfach nur Code:
return; // Also kein (0) ===>>> Also ohne einen Wert zurückzugeben. Zitat:
|
Zitat:
Dennoch ergaben sich ( - wie ich "das Ding" auch "gedreht" habe - ) errors und warnings. Nunmehr hat der Timer nur noch 1 error und sieht wie folgt aus: Code:
bool TradingTime(); // <============ error: function must have a body Oder liegt der Fehler ev. ganz wo anders ? Ich würde mich riesig freuen, wenn Ihr Euch den Code nochmals genauer anseht und mir mit Eurer Hilfe zur Seite steht. Ganz LG. piptrade |
Hallo,
wenn ich mir deinen Code so ansehe würde ich dir vorschlagen einmal die Grundlagen zu lernen um solche Programme erstellen zu können. Ich habe mit folgenden Tutorial begonnen:Expert Advisor erstellen ,Tutorials in Deutsch Dieses Tutorial hat mir sehr geholfen. ---Leopold--- |
Hallo Leopold,
herzlichen Dank für Deinen Link; - hab´ ihn mir angesehen ! Scheint alles recht gut und sehr fundiert zu sein. Allerdings sind 299,- Euro auch kein Pappenstiel ! - Und bis ich mir dies leisten kann, bin ich vorerst auf Deine oder die Hilfe anderer user angewiesen. Nebenbei bemerkt: Tatsache ist, dass mir unumstritten wirklich wichtige Grundlagen fehlen, die ich schnellst möglich erlernen muss. Tatsache ist aber auch, dass ich bereits aus Forenbeiträgen oder YouTube-Reihen wichtige Erkenntnisse ziehen und einen ersten "kleinen EA" schreiben konnte. Und zwar mit einem flexiblen MoneyManagement, modularen EntryConditions, den unterschiedlichsten SL- TP- und sonstigen EXIT-Szenarien und einem Timer, der auf die Minute genau, - aber eben nicht über die 00:00 Uhr-Grenze hinweg -, funktioniert ! Und gerade zum Überwinden dieses kleinen Mankos, - das automatische Überwinden der 00:00 Uhr-Grenze -, brauchte ich Eure Hilfe. Eine Hilfestellung, aus der ich letztendlich auch wieder etwas lernen könnte; - eine wirkliche Unterstützung, die mich wieder ein Stück weiter bringt. In diesem Sinne wäre ich sehr dankbar, solltet Ihr mir weiterhin zur Seite stehen. LG. piptrade |
Was soll denn genau in der Funktion TradingTime() berechnet werden? Und das schreibst Du halt in geschweifte Klammern.
bool TradingTime() { ... } Und an der Stelle, wo die Funktion die Berechnung ausführen soll steht, steht dann: TradingTime(); Ggf. in einer if-Abfrage oder alleinig und mit zugewiesenem Rückgabewert über bool result = TradingTime(); traderdoc |
Zitat:
Zitat:
Zitat:
Mit ein bischen Motivation solltest du es einigermaßen hinbekommen. ================================================== === Gehen wir das ganze mal kurz von vorne durch: Zitat:
2. Hier ist ja die gemeinte TradingTime() zu sehen. Zitat:
"init()" ist wegen Kompatibilität aber nach wie vor noch im "MQL-Wortschatz", weshalb eine eigene Funktion nicht mit diesem Namen erstellt werden sollte. Jetzt weiss ich nicht, ob du das wusstest piptrade, oder ob du "init()" wirklich als eigene Funktion deklariert hast. Der Code von Leopold ist ja das, was du möchtest. Der erste If-Block in der OnTick()-Funktion testet die Zeit und reagiert darauf, der zweite If-Block verarbeitet deinen Code, wenn TradingTime() TRUE liefert. Jetz kommen wir mal zu deinem zweiten Code: Zitat:
Zitat:
Das mit OnInit() ist soweit verstanden worden, denke ich. Bezüglich OnTick()
Dein Code müsste jetzt in etwa so aussehen: Code:
bool TradingTime() * Veraltet: init(), start() ect... * Updated: OnInit(), OnTick() ect... PS: Die Funktion "OnInit()" kannst du sowohl mit void, als auch mit int nutzen... |
Fleißig, fleißig, @next_user.
traderdoc |
Zitat:
hasste beim Überfliegen Fehler gefunden :) |
Ich habe gerade kein Flugzeug!
traderdoc |
Hey, wenn du dir die blauen Blöcke wegdenkst, sind es nur paar Zeilen.
Aber naja, so wie das Wetter grad wieder aussieht, wäre fliegen auch nicht so perfekt entspannt... |
Next User, - Deine Ausführungen sind der absolute Wahnsinn ! - Vorab schon einmal ein "Dickes Danke !
Und, - ich kann es kaum glauben, - auch traderdoc hat sich eingefunden und die ersten guten Hinweise geliefert ! - Auch hier ein "Dankeschön"! Da Ihr Euch in den letzten Stunden förmlich die "Klinke" gegenseitig gereicht und Euch selbst übertroffen habt, ist es nun an mir, die ganze "Schoße" nachzuvollziehen. Eine Aufgabe, der ich schon jetzt mit optimismusgeladener Spannung entgegensehe. Werde dieses Märthyrium am WE in Angriff nehmen und hoffe, dass Ihr mich ab Mo./Di. dann auch wieder zu Worte kommen lasst. Also, erst einmal "tausend Dank" ! Ich melde mich so schnell, wie möglich und hoffe, dann nur Gutes berichten zu können. Fakt ist aber jetzt schon Eines: Jede einzelne Info bringt mich bestimmt ein gutes Stück voran. Thanks and LG. piptrade |
Zitat:
traderdoc |
Hallo traderdoc, trotz Urlaubs bist Du aktiv ! - Respekt !
... und vielen Dank für Deine Hinweise ! Dank Deiner ganz persönlichen Hilfestellungen konnte ich vor einem halben Jahr das gegebene kleine TimerModul fertigstellen - nochmals "Danke" dafür ! ; - somit habe ich die kleine Hoffnung, dass Du mir abschließend auch hilfst, die 00:00 Uhr-Grenze automatisch zu überschreiten. Das wäre dann die Perfektion ! - Soweit mein erstes Anliegen. Zum Zweiten: Wenn ich auch jetzt noch an "den letzten Zügen" bei der Fertigstellung des EA arbeite, er ist fast fertiggestellt !!! ; - zumindest in seiner Funktionalität ! Die Optimierungen jedoch kann nur ein Profi bewerkstelligen ! - Könntest Du einen solchen Part, - den der Optimierung, - ggf. übernehmen ? Soweit ein Ruf an traderdoc und an die Allgemeinheit, - eben `mal so zwischendurch ! ......... Und bis gleich ( oder bis demnächst ) Euer piptrade |
piptrade hat eine recht simple Lösung gefunden! Eine Lösung, die ggf. nicht im Sinne der Programmiersprache ist; - dennoch eine Lösung, die tatsächlich funktioniert und mir viel, viel Arbeit erspart!
Wer den Forenbeitrag begleitet hat, wird sich erinnern, dass in meinem ersten post der Ursprungs-Code mitgeliefert wurde. In diesem Code sind die Handelszeiten, in denen nicht gehandelt werden soll, aneinandergereiht und geben den Wert "false" zurück. Hier wurden die Start-Zeiten immer kleiner den End-Zeiten gesetzt. Wenn jetzt die letzte Zeile "Time_3_Begin < Time_3_End ... kopiert, mit "&&" zusätzlich angereiht und lediglich in seiner Ausrichtung (hier also Begin > End verdreht) wird, ist das erwünschte Ziel schon erreicht. Keine zusätzlichen Deklarationen, keinen zusätzlichen Initialisierungen, kein zusätzliches "Dies und Das"; - einfach simpel eben ! Dennoch bin ich gegenüber allen Hinweisen sehr, sehr dankbar, da Sie mir auf dem "Weg der Erkenntnis" einiges Neue beschert und dazu beigetragen haben, eigene Fehler zu erkennen. So habe ich das gesamten Forenthema kopiert und meinem keinen "Wissensspeicher" hinzugefügt. In diesem Sinne nochmals ein ganz herzliches DANKE, an alle, die mir zur Seite gestanden haben. LG. Euere piptrade |
DER ABSCHLISSENDE NACHTRAG ! ---> Siehe nächste Seite !
|
Nächste Seite noch nicht da...
|
Leider ist es nicht immer so, wie es scheint ! Meine Zuversicht, den "Stein der Weisen" schon gefunden zu haben, löste sich am 3. Tag vollends auf und ich war genau so weit, wie zuvor !!!! Sorry, dass ich schon zum "Abmarsch" "geblasen" hatte.
Geplagt von diesen Dilemma habe ich natürlich versucht, doch noch eine gangbare Lösung zu finden. Und siehe da: Ich habe sie gefunden !!! Und das nicht in all den Disskusionen, unzähligen Vorschlägen , ... und, und, und, ... sondern im allerersten Beitrag, den "leopold" verfasst hat ! Leopold ! _ herzlichen, ehrlich gemeinten Dank dafür. Simpel - ok. - aber wesentlich !!!! und funktionierend !!!! Thanks !!! Ein einfaches Problem, welches sich letztendlich auch einfach klären lässt. _ DANKE dafür ! und natürlich die LG. Euer piptrade |
Du wurdest doch mehrmals, unter anderem auch von mir nochmal darauf hingewiesen, einfach Leopolds Vorschlag anzuwenden.
Aber gut, hast es immerhin jetzt geschafft... |
Zitat:
Nicht eine Zeile neuen Codes, keine neuen Inhalte, keine neuen Klammern oder "if`s", - einfach nur die veränderte Anordnung eines einzigen Blocks brachte den erwünschten Erfolg ! (Viel deutlicher möchte ich aber dann doch nicht werden, da jeder wenigstens einen kleinen Denkaufwand leisten sollte. Wem das nicht gelingt, kann mich ja direkt kontaktieren.) Seit ca. einer Stunde kann ich das im StrategyTester getestete "Modul" auch real im MT4 nachverfolgen ! Und siehe da, das Ding, das läft ! Und abschließend: "SO", wie ich mir das obige Zitat immer wieder auf der "Zunge zergehen" ließ, genauso habe ich versucht die weiteren Erläuterungen von Leopold, aber natürlich auch die von NextUser und Traderdoc, zu beleuchten. Wenn man halbwegs versteht, was da zum Besten gegeben wurde - kann man allen 3 Helfern nur danken !!! Somit ein "Dickes Dankeschön" an alle, die mich aktiv ünterstützten und ein ebensolches Dankeschön an alle interessierten User, die das Thema beleiteten ! THANKS ! ... und ganz LG. piptrade |
Alle Zeitangaben in WEZ +2. Es ist jetzt 03:30 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum