Alle Inhalte von Mythos
-
Fehlermeldung nach Kompilieren
Es wäre echt ein schönes Zeichen von Respekt, wenn du endlich aufhören würdest immer den gesamten Post zu zitieren. So macht es echt keinen Spass den Thread zu verfolgen/mitzuhelfen.
-
Fehlermeldung nach Kompilieren
Schau dir mal die Werte des MA im Chart (bzw. Datenfenster) an, siehst du da einen Bar wo der MA negativ ist? Wenn ja mach bitte einen Screenshot und stells hier rein.
-
Fehlermeldung nach Kompilieren
Das bedeutet nur das die jeweilige Funktion zwar geschrieben ist, aber nirgends verwendet wird. Wenn du also denkst das eine der genannten Funktionen schon verwendet wird, solltest nochmal nachschauen, ansonsten ist alles ok. Bei der Fehleranzeige ist es so: Wenn davor bereits Fehler auftreten, vor allem bei Syntaxfehlern, dann werden nicht immer alle anderen Fehler auch angezeigt, da der Compiler dann ja nicht weiß wie es richtig sein sollte, und damit möglicherweise andere Fehler übersieht oder ignoriert. Du schreibst es so (also der Text der jetzt im Container steht, dann einfach direkt in den Post) [mql] ...beliebiger mql code [/mql]
-
EA mit Teilausstieg
Schau mal ins Expert-Log
-
Strafe für virenverseuchte Rechner
Und irgendwann fragen sich dann die Leute im Überwachungsstaat "Wieso haben wirs nicht kommen sehen? Wie hat das alles eigentlich angefangen?". Heute der gesetzliche "Virenschutz" der dazu führt das in der Praxis jeder Rechner gescannt werden darf, morgen der gesetzliche Schutz vor illegalen Inhalten womit die Tür geöffnet wird das nicht nur nach Virenschutz sondern auch gleich das Filesystem gescannt wird... Was kommt noch alles zum "Schutz der Bevölkerung"? In der Realität kommt auch keiner auf die Idee einbruchsichere Fenster gesetzlich vorzuschreiben und dann auch noch regelmäßig die Polizei auf Hausbesuche zu schicken um das zu kontrollieren (zumindest noch...) Ja, das ist übertrieben dargestellt, aber sind wir Menschen so unselbstständig und dumm, das man uns alles gesetzlich vorschreiben muss? Wenn ISPs intern das Verhalten von Clients auf verdächtige Aktivitäten scannen und bei Bedarf die Bandbreite drosseln (was ja auch wirklich der Systemintegrität dienen kann), ist das voll in Ordnung. Tom-Next wird ja auch nicht dasitzen und zuschauen wenn ein paar IPs den Server zuspammen und mit Zugriffen lahm legen. Aber wenn man wegen jedem kleinen Problem das großteils aufgrund von Unfähigkeit der Menschen entsteht sofort nach übertriebenen gesetzlichen Maßnahmen schreit, dann können wir gleich jedem einen Chip einpflanzen und ihm einen Stromstoß verpassen wenn er was verbotenes/unkluges macht. "Man muss die Menschen ja schützen"
-
Hilfe bei Programmierung
Analysiere mal die Stärken und Schwächen des EA. Macht er viele kleine Gewinne, oder wenige große? In welchen Marktphasen/Zeiten macht er Gewinne, in welchen Verluste? Wie siehts mit MoneyManagement aus? Auf welchen Märkten funktioniert er gut und warum? Sobald du den EA (und das was er tut) verstehst, beginnst du automatisch ihn zu verbessern.
-
Fehlermeldung nach Kompilieren
ja, die Klammern sind richtig, aber du hast das Problem von vorher nicht behoben. Was genau hast du denn getan um das Problem zu beheben? (Das Problem war, das du einer Variable einen reservierten(also unerlaubten) Namen gegeben hast)
-
Fehlermeldung nach Kompilieren
wie sieht denn die Fehlermeldung aus? Ist der Fehler im Indi oder im EA? Ein bissl mehr info als nur "da passt was nit, sagt mir bitte was es is" wäre nett.
-
Damals war der Mensch das Maß der Dinge
Da muss ich jetzt mal eine "naive" Frage stellen: Wenn es zeitkritisch ist ob sich die Konditionen verändern, dann kann das doch nur daran liegen, das sich der Bid/Ask verändert hat oder? Der Bid/Ask verändert sich, wenn Orders ausgeführt werden (auf der "echten" Börse zumindest, und hier gehts ja darum). Wenn jetzt also das gesamte System schneller Orders ausführen kann und jeder Marktteilnehmer schneller auf Änderungen reagieren kann, dann führt das doch dazu, das sich der Kurs auch schneller wieder verändert, sprich Veränderungen die jetzt im Sekundenbereich liegen, weil eben die Antwort vom Server nicht früher kommt etc. passieren dann eben im kA Zehntelsekundenbereich. Dann wünschen sich die ultraspeed Trader halt nicht mehr Zehntelsekundenschnelle Ausführungen sondern Hundertstelsekunden... Nicht falsch verstehen, ich finds gut wenn sie die Software verbessern, schneller machen etc. aber die Hoffnung damit in eher aktiven Phasen einen Zeitvorsprung zu haben ist doch irgendwie naiv oder täusch ich mich?
-
Hilfe bei Programmierung
Also meine bisherige Erfahrung in dem Bereich zeigt: wenn du Erfolg haben willst, musst du im Prinzip das Rad neu erfinden bzw. mindestens selber drauf kommen bzw. verstehen wie man das Rad erfinden würde (oder jemandem viel Geld dafür geben das er dir erzählt wie er denkt das es geht, was aber meist dann nit stimmt). Weil sobald du ein funktionierendes Rad hast, brauchst du nimmer mehr. Und die Leute die eines erfunden haben, haben soviel Zeit und meist auch Geld reingesteckt das sie es nicht einfach so an den nächstbesten verschenken. Es läuft leider nicht nach dem Motto "Wenn einer was tolles erfunden hat, zeigt er es der Welt damit alle davon profitieren können" Was du aber sicher leicht findest sind viele "kleine" Hinweise und Antworten auf einzelne Fragen. Aber die "Masterfrage" werden dir nur wenige direkt frei beantworten. Beim Trading muss man einfach sehr viel selber herausfinden.
-
Hilfe bei Programmierung
Das ist die Frage aller Fragen ;) Ich glaub patentlösung gibt es nicht. Der erste Schritt ist sicher mal den Markt beobachten, das Verhalten des EA analysieren (wodurch ist er negativ?) etc. Was meinst du mit "richtig"? In MT kannst du mit dem Strategietester diverse Parameterkombinationen durchrechnen lassen. damit siehst du auf alle Fälle mal in welchem Bereich dein EA gar nicht geht, und wo er möglicherweise Potential hat.
-
EA mit Teilausstieg
Natürlich, je nachdem wie lange der Broker für die abarbeitung der Order braucht. Es dürfte nicht nur Brokerabhängig sondern auch "Orderabhängig" sprich nicht bei jeder Order gleich funktionieren. :hmmm: also die Funktion läuft bei mir einwandfrei. Wieviele Parameter hat denn dein EA? hast da welche hinzugefügt? lass mal bitte dieses script laufen: (das testscript von titan, nur mit der myOrderSend()) teste_ordersend.mq4
-
Programmierung EA
Das ist jetzt nicht dein Ernst oder? Er findet bei dir den Indikator nicht, den du selber hier hochgeladen hast! Vielleicht solltest du mal den Indikator für den du Siscop hier einen EA bauen lässt auch selber in den MT einspielen. Sonst ist irgendwie klar das nix funktionieren kann oder?
-
Programmierung EA
1. Bitte pack Codezeilen in die dafür vorgesehenen Container, sonst ist es schwer zu lesen. 2. Wenn diese Zeilen so in einem MQL Programm stehen, dann kriegst du einen Syntaxerror beim kompilieren.
-
Hilfe bei Programmierung
@karlos: Noch ein letztes mal langsam: Bitte schau dir mal detailiert im Strategietester an, wie die Kreuzungen zustande kommen. Wenn ich dich richtig verstehe, willst du das die Order beim Open von dem Bar gemacht wird, der direkt nach der Kreuzung der GDs ist richtig? Also zB Bar1 : GD1: 10 GD2: 15 Bar2: GD1: 20 GD2: 15 Du hättest gern das hier am Open von Bar2 eine long order eröffnet wird oder? Folgendes Problem: Beim Open von Bar2 weißt du noch nicht welche Werte die GD am Ende haben werden. Du weißt also erst das es vor diesem Bar eine Kreuzung gab, wenn der Bar vorbei ist, kannst also frühestens am Open des nächsten Bars eine Order eröffnen. Wie gesagt, lass mal den Strategietester laufen und schreib dir mit wann du genau die Order eröffnen würdest. Dann schau dir den fertigen Chart an und schreib dir auf wann du aufgrund des fertigen Charts die Orders öffnen würdest. Und dann vergleich die Zeitpunkte und Anzahl der Orders.
-
Hilfe bei Programmierung
Nur wenn die Logik für positive Performance sorgt. Du musst unterscheiden zwischen "ob die Logik passt" und "ob der EA die Logik richtig umsetzt". Und die Frage "Ob die Logik passt" kann man iA sehr schwer beantworten. krasses Bsp: neue Logik: Eröffne Position am Open, schließe Position sobald sie im Minus ist. Ein EA der diese Logik einwandfrei umsetzt wird trotzdem keine positive Performance machen.
-
EA mit Teilausstieg
Meine Empfehlung: lösch den Sleep befehl raus und mach eine gscheite Errorbehandlung ;) zB: füge folgende Funktion in deinen EA ein: int myOrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment="", int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) { int result,error; int loopcount= 0; result= OrderSend(symbol,cmd,volume,price,slippage,stoploss,takeprofit,comment,magic,exp iration,arrow_color); while(result == -1) { error=GetLastError(); switch(error) { case ERR_SERVER_BUSY: case ERR_BROKER_BUSY: case ERR_TRADE_CONTEXT_BUSY: Sleep(500); break; case ERR_TOO_FREQUENT_REQUESTS: Sleep(5000); break; case ERR_NOT_ENOUGH_MONEY: Alert("We are broke!"); break; case ERR_TRADE_TOO_MANY_ORDERS: Alert("Too many open trades!"); break; } loopcount++; if(loopcount > 100) break; RefreshRates(); if(cmd == OP_BUY) price= Ask; if(cmd == OP_SELL) price= Bid; result= OrderSend(symbol,cmd,volume,price,slippage,stoploss,takeprofit,comment,magic,exp iration,arrow_color); } if(result < 0) Print("Error sending Order, give up trying! Error was:", error); return(result); } für die schönen Konstanten musst du noch #include <stderror.mqh> am Beginn des EA einfügen. Dann gehst du per Suchen und Ersetzen durch den EA und ersetzt OrderSend durch myOrderSend. Und schon hast du zumindest eine grundlegende Fehlerbehandlung ;)
-
EA mit Teilausstieg
Sorry mein Fehler. titan hat natürlich Recht. Wird nur bei falschen Parametern der Error verschwiegen oder auch Fälle wie TradeContextBusy (da ich bei mir immer auch die eigenen Errormeldungen hab bin ich mir jetzt nimmer sicher, aber die Errors vom Server kommen glaub ich explizit ins Journal)? Nichtsdestoweniger denk ich immer noch das es ein TradeContextBusy Error ist ;) (Da der EA von ihm normalerweise Orders schickt geh ich mal davon aus, das die Parameter passen und die OrderSend normalerweise zum Server geht...)
-
EA mit Teilausstieg
Was meinst du mit "programmtechnisch nicht bearbeitet"? Wenn der EA "OrderSend()" aufruft, wird die Order zum Server geschickt oder? (Natürlich wenn der EA nicht zu dem Punkt mit dem OrderSend kommt wird natürlich nix geschickt) Und sobald die Order zum Server geschickt wird gibts doch nur 2 Alternativen: Variante 1 sie geht durch( OrderSend gibt Zahl > 0 zurück) Variante 2 es gibt einen Error und OrderSend gibt -1 zurück. Bei Variante 2 wird dann im Log (undoder kA) Journal der Fehler angezeigt. Oder können OrderSend Befehle seit neuestem einfach "verschwinden"? EDIT: um Missverständnissen vorzubeugen: Mein "was steht denn im Log wenn eine Order ausgeführt werden sollte" war nicht gemeint als "was sollte allgemein dort stehen wenn eine Order ausgeführt wird", sondern "was steht konkret bei ihm im Log wenn die Order eigentlich ausgeführt werden sollte, sie aber nicht ausgeführt wurde"
-
Einschränkung der Benutzerrechte der Gruppe *.skilled
Mal ne "blöde" Frage: Ist die Lösch-funktion überhaupt notwendig? Zugegeben, die Editierfunktion nutze ich auch des öfteren weil ich natürlich immer erst nach dem abschicken merke welch katastrophales Deutsch ich teils fabriziere, aber löschen wollte ich noch nie was. Die einzigen Gründe warum man "regulär" einen Post löschen sollte ist wenn er unabsichtlich im falschen Thread landet (aber dann wird er eh von den Mods verschoben) oder versehentlich doppelt gepostet wird oder so. Ansonsten sollte man sich mMn doch vorher überlegen was man in ein Forum postet und danach erwachsen genug sein das man zu seinen Aussagen steht. Bis jetzt ist es zwar der erste Mißbrauchsfall, aber Tom-Next wächst doch stetig und es ist nicht auszuschließen das es sich wiederholt. Langer Rede kurzer Sinn: Was spricht dagegen die Löschfunktion zu deaktivieren bzw. nur innerhalb der ersten 15min nach verfassen des Posts aktiv zu lassen? @Mods: Kann mich nur wiederholen: Good Job !
-
Welche (Nicht-Trading) URL ist bei Euch tägliche Pflicht?
www.random-good-stuff.com toller Blog von einem deutschen der jetzt in Valencia lebt (ich glaub es gibt auch eine deutsche Version davon, aber die weiß ich nit auswendig )
-
EA mit Teilausstieg
Ehrlich gesagt gefällt mir die Variante mit dem verzögern überhaupt nicht. Ich weiß ich bin ein bissl nervig, aber ich muss echt nochmal nachfragen: Sicher das der EA keine Fehler produziert? Was steht denn im Log und im Journal wenn eine Order ausgeführt werden sollte? (Wenn wirklich ein EA die Order senden sollte, das aber nicht tut ohne einen Fehler zu melden, dann wurde gar nicht versucht die Order zu senden) Nach dem was ich denke müsste einer der beiden EAs beim senden der Order einen "Tradecontext busy" error kriegen. Schöne Lösung: Beim senden der Order auf solche Fehler überprüfen und ggf. die Order erneut senden. (zB mit der Schleife die ich weiter oben schonmal gepostet hab) Nur zur Sicherheit: mit Fehlermeldung mein ich kein Popupfenster, sondern nur einen Logeintrag der über den Fehler informiert. kleiner Tippfehler, ich mein die MetaTrader Builtin-Function "OrderSend(...)" mit der du eine Order erzeugst (und an den Broker sendest)
-
EA mit Teilausstieg
Ja was sollte sich denn ändern? Sleep verzögert nicht die Order, es sorgt nur dafür das der gesamte EA an der Stelle im Code für die angegebene Zeit steht. Wenn sich jetzt in dieser Zeit der Kurs ändert, und du Market einsteigen willst, wirst du Errors kriegen weil du bei einem falschen Kurs reinwillst. Zur Sicherheit: 1) produzieren die EAs irgendwelche Errors? (Was steht im Log?) 2) werden die EAs in unterschiedlichen Chartfenstern ausgeführt (haben wir glaub ich schon geklärt, aber nur sicherheitshalber) 3) könntest du den Block mit dem Ordersend posten?
-
EA generiert nur Long-Signale
Ich kann dir nur erneut empfehlen den "Einstieg in die MQL-Programmierung" - Thread durchzuarbeiten. Im wesentlichen findest du dort alle Basics die du brauchst.
-
EA generiert nur Long-Signale
Hast du wirklich den gesamten "Einstieg in die MQL-Programmierung" durchgearbeitet? Soweit ich mich erinnere wurden dort eigentlich alle deine Fragen bereits beantwortet. RH und RL sind weder built-in functions noch vordefinierte Konstante, von daher ist die Bedeutung abhängig vom Programm. In deinem Fall sind es Namen von Funktionen "Step 1" kommt hier nirgends vor. Es gibt "Step1" und das ist ein variablenname. Die Syntax von iCustom findest du in der MQL-Docu im MetaEditor: double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) Jetzt mal ehrlich, hat dir diese Antwort geholfen?