Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Simples script (http://www.expert-advisor.com/forum/showthread.php?t=3264)

Deepack 12.10.13 02:02

hallo
ja klar... du musst die cBar auch definieren

ausserhalb der int Start() sprich ganz oben

int cBar;


das wars

I____/I 12.10.13 14:26

... 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

I____/I 14.10.13 01:38

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.

Deepack 14.10.13 09:21

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

I____/I 14.10.13 10:04

... 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);
}

Deepack 14.10.13 13:36

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

I____/I 14.10.13 16:30

... 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.

Racki 14.10.13 23:36

Zitat:

Zitat von I____/I (Beitrag 23924)
... 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);
}

Da war der Ansatz mit cBar schon richtig ;)
PHP-Code:

int cBar=0;
int init() { cBar=Bars; return(0); }
int deinit() { return(0); }
int start()
  {
    if (
cBar != Bars && iVolume(Symbol(),Period(),0) > 10)
    {
        
Alert(iVolume(Symbol(),Period(),0));
        
cBar Bars;
    }
  return(
0);
  } 


I____/I 15.10.13 10:10

... 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

I____/I 15.10.13 13:30

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);
}


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:54 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