Simples script
Hallo,
bin neu hier und möchte Euch bitten mir zur helfen. Mir geht es nur darum, ein einfaches script zu schreiben, dass einen Signalton und möglichst auch eine Mail versendet, wenn der Indikator "Volumes" einen bestimmten Wert erreicht hat. Gibt es evtl. auch brauchbare Bücher, die mir helfen, solche einfachen Scrpits zu erstellen? (z. B. Expert Advisor Programming: Creating Automated Trading Systems in MQL for MetaTrader 4 [Englisch] [Taschenbuch]) Besten Dank für die geschätzte Hilfe. Grüße I_____/I |
... keiner eine Idee? Müßten doch genüngend Cracks unter Euch zu finden sein! :confused:
Danke und Grüße. |
... keiner einer brauchbare Idee?!? :(
|
Zitat:
|
hey
im endeffekt ist es eine zeile code Code:
if(iVolume(Symbol(),Period(),1) > 4) Alert("Volume " + iVolume(Symbol(),Period(),1)); bei jedem tick kommt eine alert meldung LG |
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Deepack,
erst einmal Danke für Dein Feedback. Ich denke ich muß mein Anliegen noch genauer beschreiben. Mir geht es im Prinzip darum, im 1. Min. Chart von MT einen Alarm ausgegeben zu lassen, wenn ein bestimmtes Volumen erreicht bzw. überschritten wird (z. B. >= 100, siehe auch Anhang). Wenn z. b. nach einiger Zeit wieder dieses Niveau erreicht wird - kann natürlich auch in kürzeren Abständen vorkommen - soll wieder ein Alarm ausgegeben werden (refresh jede Minute). Ist das schwierig zu prgrammieren. Für Tipps bin ich Dir sehr dankbar. VG |
@Mast83
... habe ich, ewig lange. Nix gefunden. |
hallo gerne nochmal
Code:
if(cBar == 0 ) cBar = Bars; und als indikator speichern jetzt kommt jedes mal wenn das volumen über 100 steigt ein signal 1x pro minute |
... super! Herzlichen Dank! :) Werde ich mal ausprobieren. Habe mir zusätzlich o. g. Buch bestellt um mich in die Materie einzuarbeiten.
VG |
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Deepack,
habs mal versucht, bekomme aber die Fehlermeldungen im Anhang. Was mache ich falsch? Danke Dir! |
hallo
ja klar... du musst die cBar auch definieren ausserhalb der int Start() sprich ganz oben int cBar; das wars |
... bin halt noch blutiger Anfänger und kenne mich mit der Syntax noch nicht aus :o. Fehler werden keine mehr angezeigt, super! Das o. g. Buch habe ich auch schon erhalten. Denke, das wird mir die Grundlagen und evtl. ein bißchen mehr näher bringen.
Erstmal vielen Dank für Deine Unterstützung. LG I____/I |
Liste der Anhänge anzeigen (Anzahl: 1)
... hoffe ich darf nochmals Deine Hilfe in Anspruch nehmen. Habe den Indikator getestet. Es ist jetzt so, dass jedesmal, wenn ein neuer Volumen-Balken begonnen wird, sofort der Alarm ausgelöst wird (als schon bei Volumen 1). Habe bereits mit dem Code etwas herumgespielt und testweise >10 usw. eingegeben (siehe anhängendes Scrpit). Wird irgendwie igrnoriert. Bitte sei doch so gut und test mal das Script, evtl. fehlt eine Kleinigkeit oder ich mache etwas falsch.
Danke Dir. |
ich habe playsound selbst noch nie verwendet da ich am vps arbeite
ersetzte mal die playsound funktion durch Alert(iVolume(Symbol(),Period(),1)) und eventuell cBars != Bars weglassen dann müsste bei jedem neuen tick die meldung über das volume der vorherigen kerze ausgegeben werden |
... das funktioniert! Bloß mein Anliegen ist ja dass nur dann ein Alarm und eine Meldung ausgegeben wird, wenn ein bestimmter Wert überschritten wird.
Z. B. wird im Script > 10 angegeben, also wenn das Volumen über den Wert 10 steigt, sollen die entsprechenden Meldungen kommen. Aber das wird ignoriert. PS: So sieht derzeit meine int start() aus: int cBar; int start() { if(cBar == 0 ) cBar = Bars; if (cBar != Bars && iVolume(Symbol(),Period(),1) > 10) Alert(iVolume(Symbol(),Period(),1)); cBar = Bars; return(0); } |
hallo
iVolume(Symbol(),Period(),1) > 10) Bezieht sicht auf die vorherige kerze ersetzte sie durch eine 0 und lasse cBar != Bars weg dann sollte die meldung erscheinen sobald die aktuelle Bar - Volumen 10 übersteigt |
... einwandfrei, funktioniert! :) Das einzige was jetzt noch eine bißchen nervt, ist, dass wenn der entsprechende Wert erreicht wird, bei jedem weiteren Tick ein Alarm ausgegeben wird. Habe versucht das zu beheben, indem ich das = Zeichen verwendet habe, kennt aber MQL4 nicht. Es reicht ja, wenn der Alarm nur 1x ausgegeben wird und erst dann wieder, wenn er das nächstemal erreicht wird (dann natürlich auch nur wieder 1x). Wenn Du dazu noch eine Idee hättest und noch Lust hast :D, wäre ich rundum zufrieden.
Vielen Dank für Deine bisherige Hilfe. |
Zitat:
PHP-Code:
|
... wenn ich den Code 1:1 übernehme erhalte ich 2 Fehlermeldungen (siehe unten).
Grüße 2;121;C:\Users\MW\Desktop\Test1.mq4;33:5;'init' - function already defined and has a body 2;121;C:\Users\MW\Desktop\Test1.mq4;34:5;'deinit' - function already defined and has a body |
Wäre super, wenn jemand von Euch den Code entsprechend modifizieren würde, damit die Meldung nur einmal erscheint, wenn der entsprechende Wert (z. B. 70, siehe auch Bsp. unten) erreicht wird. Bin damit noch irgendwie überfordert, weil meine Kenntnisse noch nicht ausreichen. Auch wenn ich o. g. Buch gestern erhalten habe. Danke Euch.
Meine int start () sieht momentan wie folgt aus: int cBar; int start() { if(cBar == 0 ) cBar = Bars; if (iVolume(Symbol(),Period(),0) > 70) Alert("!Volumen über 70!"); cBar = Bars; return(0); } |
hallo die meldungen heissen nur dass du die init und deinit 2 mal verwendest
lösche deinen ganzen code und nimm den von racki der hat ihn ja schon so geschrieben wie du es dir vorstellst |
... im nachhinein klatsch man sich gegen die Stirn! :rolleyes: :o
init und deinit gehören zum body oder ich nenne es mal "Grundgerüst" und stehen schon weiter oben. Toll, jetzt habe ich es perfekt! Besten Dank, auch Dir Racki. Viele Grüße |
Alle Zeitangaben in WEZ +2. Es ist jetzt 01:38 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