Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Krümel

*_skilled
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Krümel

  1. Tag und Nacht im Einsatz, um das Böse in der Welt zu bekämpfen. @conglom-o: Plan B wäre: ich schreibe den Einlesepart etwas um und streame die Daten (indem ich sie tageweise einlese), dann sollten auch die 2GB kein Problem sein, weil sie nicht am Stück in den Speicher gezogen werden. Nach dem alten Prinzip "Divide and conquer". Mich würde es nur persönlich interessieren, ob R die 2GB schafft.
  2. Ich habe aus dem Programm noch einen "Mangel" entfernt. In der ersten Varianten bin ich davon ausgegangen, dass die Spaltennamen in der Tickdaten-Datei in der der ersten Zeile stehen. Dann hättest Du allerdings eine 3GB-Datei editieren müssen. Ich hab's also umgeschrieben (und den Source-Code aktualisiert im obigen Post), so dass jetzt in der Tickdatendatei nur die reinen Daten stehen dürfen. Du müsstest die Zip-Datei also nochmal runterladen.
  3. Krümel antwortete auf whipsaw's Thema in Archiv
    Was muss ich lesen: User Henricus....
  4. Die MBs sind nicht das Problem, bei den GB bin ich mir nicht so sicher. Ich denke mal, Dein Rechner ist besser bestückt als meiner (der noch aus XP-Zeiten stammt, weil ich ja Vista überspringen will). Probier's aus. Geht schon nix kaputt. Eventuell braucht R ne ganze Weile, bis er die Datei in den Speicher gezogen hat und reagiert nicht. Im Prinzip ist nur die Zeile read.table... kritisch, denn da wird Deine Datei eingelesen. Kannst auch bis dahin ausführen und schaun, was passiert. Ich hoffe mal, dass es gut geht. Du kannst mit memory.limit(size=5000) Fehler in memory.size(size) : Stell Dich nicht dumm!: Deine Kiste kann nur 4Gb adressieren den Speicher noch vergrößern. Bei mir gehen nur 4GB, wie mir die freundliche Fehlermeldung von R sagt. Bei Dir geht wahrscheinlich mehr
  5. Sooo, hier hab ich hier mal eine V1 (musste ich leider zippen, da R-Skripte nicht pur hochladbar sind, Danke, Chef ). 1. R downloaden, installieren: http://cran.r-project.org/bin/windows/base/ 2. R starten, dann landet man in der normalen Entwicklungsumgebung. 3. Über das File-Menü die R-Datei von mir öffnen, 4. Ganz oben in der Variablen path das richtige Verzeichnis von Deinem Rechner setzen (Wichtig: durch '/' und nicht wie bei Windows normal durch '\' trennen !) 5. Nun den kompletten Text markieren, Kontextmenü öffen per Rechtsklick und "Ausführen Zeile oder Auswahl" anwählen. Und dann sollte das Skipt das tun, was es soll. Du kannst die einzelnen Anweisungen auch Schritt für Schritt ausführen, die for-Schleife muss allerdings am Stück durchlaufen. Ich hab den Speicher extra noch hochgesetzt. Ich hoffe, die Inputdatei mit den Tickdaten ist nicht zu groß. Wenn ja, sagt Dir das R aber schon in freundlichen roten Buchstaben. Btw: ich hab ceiling verwendet. formatData4MT.zip
  6. Könntest Du mir bitte ein paar mehr Tickdaten zum Testen liefern ? Am besten 2-3 Tage.
  7. Wieso haben die Daten für MT keine Nachkommastellen ? Ist das normal ? Du siehst mich verwundert. *kopfkratz* Heißt das, dass Originaldaten wie 4915,5 beim Umschreiben auch inhaltlich modifiziert werden müssen ? Wenn ja, welches Verfahren soll da umgesetzt werden: Runden normal (d.h. 4915,5 wird aufgerundet, 4915,4 wird abgerundet), floor (immer abrunden), ceiling (immer aufrunden) oder trimmen (einfach nur die Nachkommastelle abschneiden) ? Und Du willst M1-Daten als Output, seh ich das richtig?
  8. Krümel antwortete auf siscop's Thema in Metatrader Broker
    @bullseye Schön, Dich mal wieder hier zu sehen . Achso, der hat tatsächlich manuell getradet ?
  9. Krümel antwortete auf siscop's Thema in Metatrader Broker
    Na, mach's doch einfach wie bisher, stetig voranarbeiten, auf Platz 2 kommen, und XTB disqualifiziert wieder den ersten Platz. Hat doch gut geklappt in der ersten Runde.
  10. Krümel antwortete auf siscop's Thema in Metatrader Broker
    Glückwunsch Henrik, ich freu mich für Dich . Und auch für siscop freu ich mich, auch wenn der sich partout in Understatement üben will .
  11. Ich könnte Dir nen R-Script schreiben, welches Deine Daten einliest und als MT-Format rausschreibt (in ne 2. Datei). Dafür bräuchte ich das Quell-Format und das Zielformat und ein paar Zeilen Deiner Daten zum Testen. Du müsstest Dir dann nur noch R runterladen und installieren und bei Dir das Skript mit der kompletten Originaldatei ausführen. Das könnte ich Dir anbieten. Vielleicht hat aber jemand noch ne bessere Idee. Ich kenn mich mit dem Datenimport von MT (leider noch) nicht sonderlich gut aus. Datenformatumschreiben ist das einzige, was mir als Lösung einfällt.
  12. Naja, ich hatte ja tatsächlich die stille Hoffnung, dass ich nur irgendwo nen Download-Button übersehen habe oder man sich die Daten separat vom ODL-Server ziehen und importieren muss. Irgendwas in der Art, was ich nicht gefunden habe. Und normalerweise kommt ja sonst aus irgendner dunkeln Ecke jemand von Tom-Next dahergesprungen und postet nen Link, wo's die Lösung gibt, wenn man nur lange genug rumschimpft. Darauf hatte ich eigentlich spekuliert. Dass ODL TATSÄCHLICH nicht mehr Daten zur Verfügung stellt, entgeistert mich aktuell etwas. Das muss ich jetzt erstmal verdauen.
  13. Ja, und ? FDax-Daten gibt's bei ODL ja genauso viele oder besser wenig wie bei Dax-Daten. 5 Tage Intraday-Daten sind nen Witz. Was soll man denn da testen ? Ich lass doch auf so ner Datenbasis keinen EA laufen ?! Wie soll man denn da Parameter optimieren oder ähnliches ?! Wenn ich auf dem Minutenchart 2 Trades am Tag mache, hab ich nach ner Woche 10 Trades zusammen. Das ist doch keine "Datenbasis", die man statistisch sinnvoll bewerten könnte. Auch in Bezug auf OTC-Eigenheiten kann man sich in 5 Tagen kein Bild machen und wird mit Sicherheit irgendwann überrascht. Und zwar negativ. Ich weiß, dass Dir ODL am Herzen liegt (deswegen hab ich mich bislang ja durchgewurschtelt), aber deren Datenbestand finde ich echt nicht gut. Den einzigen Vorteil, den MT (OTC)-Broker in meinen Augen haben ist, dass längere Datenreihen kostenlos zum Backtest zur Verfügung stehen und man seinen EA darauf ausgiebig testen kann und an Eigenheiten des Brokers anpassen. Und das geht bei ODL nicht (oder zumindest finde ich nichts). Mit den Argument, ich könne mir ja Dax-Daten anderswo besorgen und dann irgendwie backtesten (falls ich die fremden Daten überhaupt sauber in den MT bekomme) braucht man mir an der Stelle nicht kommen. Ich krieg ja nirgendwo ne Kursstellung für den ODL-Dax-CFD gekauft, kann also wahlweise auf dem Dax oder FDax testen (wobei ich für den Dax ja wiederum keine Bid/Ask-Kurse kriege). Und dann kann ich hoffen, dass ODL den CFD irgendwie mit dem FDax hedget/nachbaut (nach der geheimen mystischen Formel, die mir auch Saxo nicht verraten wollte, obwohl ich SEHR nett war) und es schon korrelieren wird. Sagt Dir die Floskel "auf Sand gebaut" etwas ? (Normalerweise würde ich jetzt mit "Ein erboster Kunde" unterschreiben, aber ich werde da vermutlich kein Kunde aus genau dem o.g. Grund. )
  14. Ja, aber von Deinem mageren Lohn, den Du mir zahlst und der sich nicht großartig von 0 unterscheidet - streng genommen GAR NICHT - kann ich mir unmöglich noch Daten kaufen. Metatrader ist ja grade deswegen so interessant für den Tradinganfänger, weil die Kurse nix kosten, auch nicht für längere Datenreihen. Was soll ich denn sonst bei ODL, mal ketzerisch gefragt ?! *wetzt heimlich das Messer für die nächste Schlacht*. Die DatenMENGEN (wenn man in dem Zusammenhang dieses Wort in den Mund nehmen will) für die anderen Timeframes sind ebenfalls ein Witz.
  15. Ich will aber M1-Daten .
  16. Ich nicht.
  17. Sehr gut. Hmm, ist das jetzt ein Kompliment ? Na ja, egal, ich nehm's mal als eines. Okee.
  18. @ibelieve: Hast Du da mal nachgeforscht, warum Dein Indikator nicht so aussieht wie Du es willst ?
  19. Krümel antwortete auf ronner's Thema in Chit Chat
    Stimmt, ab 30 wird man nicht mehr älter, sondern nur besser und ein absoluter Zwangsoptimist, der der Zukunft mutig ins Gesicht lacht.
  20. Wenn ich von ODL-Dax rede, meine ich die Daten für den Dax-CFD. Ich geh bei OTC-Brokern einfach implizit davon aus, dass es da keinen "echten" Dax gibt, deswegen lass ich da Zusätze wie "CFD" auch schon mal weg. Ändert aber nix an der Tatsache, dass ich keine historischen Dax-CFD-Kurse für ODL bislang gefunden habe.
  21. Krümel antwortete auf ronner's Thema in Chit Chat
    Wie ich der Boardanzeige entnommen habe, ist heute ein Geburtskind (also, metaphorisch gesprochen *hust*) unter uns ! ibelieve !
  22. Done. Wem weitere Abkürzungen einfallen, bitte posten.
  23. Sehr gute Fragen . Also meines Erachtens nach macht der Print-Befehl lediglich eine Ausgabe der Open-Time, woran man erkennt, ob die Order gefillt wurde oder nicht. Da man den Befehl OrderOpenTime() nutzen will, muss man zuvor dem Programm sagen, welche Order denn gemeint ist, das macht man in diesem Fall über die Ticket-ID. Offenbar kann auch hierbei was schiefgehen, denn sonst hätten die Entwickler nicht den booleschen Rückgabewert vorgesehen ( http://docs.mql4.com/trading/OrderSelect ): Dankenswerter Weise enthält die Doku keinerlei Hinweise, was denn schiefgehen kann. Man kann nur vermuten, dass es keine Order zu ner Ticket-ID gibt, was wir aber ausschließen können, wie Du schon richtig erkannt hast. Oder man wühlt sich durch die Liste aller möglichen Fehler und sucht sich Möglichkeiten raus: http://docs.mql4.com/constants/errors . Ich habe ehrlich gesagt auch keine Idee, was in Deinem Fall zu ner Rückgabe von false führen könnte. Um aber auch seltene Fehler abzufangen könnte man eventuell auftretende Fehler abfragen durch Einfügen der fettmarkierten Zeile. if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); [b]else Print("OrderSelect returned the error of ",GetLastError());[/b] Wenn man sicher ist, dass nix passieren kann, weil es keinen Fehlerfall gibt, der unter den Bedingungen auftritt und zur Rückgabe von false führt, könnte man den Code auch verkürzen, indem man den Rückgabewert von OrderSelect ignoriert: OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES); Print("BUY order opened : ",OrderOpenPrice()); Fall1: if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } [b] else Print("Error opening BUY order : ",GetLastError()); return(0); [/b] } ist nicht identisch mit: Fall2: if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } [b] else { Print("Error opening BUY order : ",GetLastError()); return(0); }[/b] } Man muss immer genau hinschauen, wo die Klammern stehen. Wenn keine stehen wie im obigen Else-Zweig bei Fall 1 heißt das, dass lediglich die erste nachstehende Anweisung - in diesem Fall die Print-Ausgabe - im Else-Fall ausgeführt wird. Bei Fall 2 wird der Sprung aus der Funktion per return(0), quasi der Abbruch, nur im Else-Fall ausgeführt. Das return(0) ohne Klammerung wird in Fall 1 (Deinem Beispiel) unabhängig vom Ausgang der If-Then-Else- Anweisung ausgeführt. Warum werden keine Trailingsstops anderer Orders nachgezogen ? Hmm, die kann es eigentlich nicht geben, da ja zu Beginn OrdersTotal () Das muss man sich ebend überlegen, was sinnvoll ist bei dem Handelssystem. Aktuell ist nach return(0) ne eventuell gefillte Order im Markt, die keinen Stopploss, dafür aber nen Takeprofit hat. Andersrum wäre es eher MEIN Ding, aber nun ja...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.