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.

WOGO

Developer
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von WOGO

  1. Naja, mindestens 50% des Dankes muß ich an Rainworm weitergeben, der ja den eigentlichen Fehler gefunden hat.
  2. Probiers mal so: double Tagesprofit=0; int Orders_History_Total=OrdersHistoryTotal(); for (int OHT=Orders_History_Total-1; OHT>=0; OHT--) { OrderSelect(OHT,SELECT_BY_POS,MODE_HISTORY); if (OrderSymbol() == Symbol()) { if ((TimeDayOfYear(OrderOpenTime()) == DayOfYear()) && (TimeYear(OrderOpenTime()) == Year())) { Tagesprofit=Tagesprofit+OrderProfit(); if (Tagesprofit >= TagesZiel) { Comment ("Tagesziel erreicht"); return (0); } } } }
  3. Hallo Nelly, Herzlich Willkommen hier im Forum. Was funktioniert denn nicht? Wenn ich mir den Code anschaue, dann sollte der Kommentar ausgegeben werden, sobald eine Position gefunden wurde, die größer als deine externe Vergleichsvariable ist. Denke das ist so gewollt. Du kannst so natürlich nur immer eine historische Position abfragen. Wenn du beispielsweise heute schon 2 Positionen mit je 500€ Gewinn hattest, dann wirst du eine neue Position auf diese Weise natürlich nicht sperren... VG, Wogo
  4. WOGO antwortete auf Bernd's Thema in MQL Einsteiger
    Hi Bernd, du kannst Funktionen, Deklarationen, ... problemlos in eine mqh-Datei auslagern, die du dann in die mq4 per #include einbindest. Diese Datei brauchst du dann nicht mit der ex4 weitergeben, da der Compiler sie ja in die EXE einbindet. Gruss, Wogo
  5. WOGO antwortete auf whipsaw's Thema in EPA-Labs
    Fange mal an: Es wird hier angekündigt, wenn es irgendwelche Sonderaktionen gibt also z.B. der 4. Sieger darf ein Wochenende lang mit Henriks Galaxy telefonieren
  6. Das ist jetzt halt von der Ferne sehr schwer zu beurteilen. Was hast du denn für eine Excel Version? Wenn es keine zu vertraulichen Daten sind, dann kannst du mir sie gerne mal schicken, dann probier ich das bei mir aus.
  7. Naja, ich hab noch nicht viel mit dem Solver gemacht. Hab grad mal ein Beispiel durchgeklickt... eigentlich kann man da nicht viel verkehrt machen. Wieviele Inputfelder und wieviele Nebenbedingungen hast du denn?
  8. WOGO antwortete auf whipsaw's Thema in EPA-Labs
    Ich kann das schon verstehen. Auch wenn man sich dafür nichts kaufen kann sind die Credits irgendwie ein Blickfang. Es muss doch irgendeinen Grund geben, warum die Credits nur bei conglom-o zurückgesetzt werden...
  9. Super Anleitung Eine Frage hab ich noch. Wenn du Indikatoren, Skripte... programmierst, müssen diese dann von deinem Compile-Ordner manuell in die Dropbox kopiert werden, oder kann man diese auch direkt in der Dropbox erstellen und compilieren?
  10. Genau das wollte ich damit sagen.
  11. Wie sieht das dann bei dir in der Praxis aus? Um in 2 Wochen das Konto zu verdoppeln, wenn du für 250€ Einsatz gerade mal 5€ Gewinn (im Durchschnitt?) bekommst brauchst du ja (ok, noch zu früh zum genauen rechnen, aber ungefähr...) 30 Tips. Du mußt da ja, um Spiele mit deinen Kriterien zu finden, täglich aktiv sein, oder? Wenn du auch noch den Spielverlauf beobachtest um erst ab der 70. Minute einzusteigen, dann stell ich mir das sehr zeitaufwändig vor. Außerdem kannst du ja nicht viele Spiele in parallel Wetten, da das Kapital, durch den hohen Einsatz ja nur für 1-2 Spiele gleichzeitig reicht.
  12. Hast du nicht mal geschrieben, dein Samsung hätte eine App, die Sternbilder erkennt? Die ist hier gefragt!
  13. Das Selbe macht Ehlers auch mit US Treasury Bond Futures. Die Zeitachse wird in Sektoren von z.B. 10 Bars eingeteilt und es wird für jeden Bar geschaut, wo - bezogen auf das Hoch und das Tief innerhalb dieses Sektors - liegt der Kurs. Ehlers kommt hier auch auf eine Wahrscheinlichkeitsdichteverteilung, die an den Rändern stark ansteigt. Ich hab dann mal eine Messroutine für den EURUSD programmiert. Da sieht das dann aber ganz anders aus. (Das Rote stellt übrigens die Fisher-Transformierte des Balkendiagramms dar) Die obige Aussage gilt als nicht für den Forex-Markt.
  14. Den Satz versteh ich nicht ganz. Kann man eine Wette auch vorzeitig beenden? Wie funktioniert das?
  15. Damit das hier nicht so halbfertig stehen bleibt, hab ich die Untersuchung mit dem Input von Rainworm nochmal fortgesetzt. Wenn man die Volumeninformation mituntersucht, dann sehen die Ergebnisse schon wesentlich schöner aus und das was der Backtester macht wirkt jetzt bei weitem nichtmehr so sinnlos: Ich hab hierzu zwei verschiedene Balkenverläufe mit einmal 15 Pips Range und einmal mit 100 Pips Range und dabei verschiedene Volumen eingespeist (im Timeframe M1). Das Ergebnis sieht dann folgendermaßen aus. Range 15 Pips Man sieht, wenn man als Volumen "1" angibt, dann generiert sich MT anhand der Balkenrange ein eigenes Volumen und speichert dieses auch ab. Bei der gewählten Range von 15 Punkten erzeugte MT ein Volumen von 26. Etwas merkwürdig ist das Ergebnis bei Volumen "7". Hier wurden 10 Ticks generiert, deren Werte weit außerhalb der eigentlichen Bar-Range lagen. Komisch Man sieht auch, dass mit ansteigendem Volumen auch die Anzahl der generierten Ticks steigt, allerdings entspricht die Anzahl Ticks nicht genau dem Volumen. Als 2. Beispiel noch ein Balken mit Range 100 und Open=Low Hier sieht man, dass bei einem von mir importierten Volumen von "1" MT eigenständig ein Volumen von 151 generiert und dafür dann 111 Ticks (pro Minute!) erzeugt. Abschließend kann man noch sagen: *Die Anzahl der generierten Ticks steigt mit ansteigendem Volumen *Bei einem importierten Volumen von "1" generiert sich MT eigenständig ein Volumen, abhängig von der Range des jeweiligen Bars. Wenn man also hochauflösende Backtestdaten haben will ist es am einfachsten, man importiert die Kursdaten mit einem Volumen von "1". Wirkliche Sprünge innerhalb eines Bars würde man damit aber eliminieren. Das ist aber auch so der Fall, da MT die Ticks ja relativ linear über den Balken verteilt.
  16. Nun, Ehlers verwendet die Fisher Transformation dafür, dass er die Datenverteilung einer Normalverteilung annähert. Die Fishertransformation hat eine nichtlineare Transferfunktion, die die mittleren Werte stärker gewichtet als die am Rand liegenden. Der Effekt ist, dass dadurch Oszillatoren sehr "scharfe" Spitzen bekommen. Und dieser Indikator repaintet (leicht). D.h. er verändert bei der Berechnung nicht nur den aktuellsten Bar, sonder auch noch den Vorletzten.
  17. Ich bin zwar jetzt auf die Schnelle nicht ganz durchgestiegen, was du brauchst, aber soweit ich das verstanden hab, wollt ihr realtime MT4 Daten in eine CSV Datei schreiben. Kannst du so machen: //-------------------------Variablen-------------------------------------------------------- string LogFileName; datetime EA_CheckNewBarLastbar; int init() { LogFileName=flHandleLogfile(true, Symbol(), "BacktestTest",0,0,0,0,0); return(0); } int start() { if(EA_CheckNewBar() ) { flHandleLogfile(false,Symbol(),"BacktestTest",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS),Open[1],High[1],Low[1],Close[1]); } } bool EA_CheckNewBar() { //diese Funktion liefert immer dann true zurück, wenn ein neuer Bar angefangen wird. //EA_CheckNewBarLastbar ist hierfür bereits als Variable definiert. Es müssen keine zusätzlichen Initialisierungen vorgenommen werden. datetime curbar = Time[0]; if(EA_CheckNewBarLastbar!=curbar) { EA_CheckNewBarLastbar=curbar; return (true); } else { return(false); } } /*-----------------------------------------------------------------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------------------------------------------------------------*/ string flHandleLogfile(bool create_open, string symbol, string logfilename, string TimeData, double OpenData, double HighData, double LowData, double CloseData) { string filename; int FileResult=0; int handle=0; filename= logfilename + "_"+symbol; filename= filename + ".log"; handle= FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV,';'); //öffnet oder erzeugt das Logfile FileSeek(handle,0,SEEK_END); //setzt den Schreibezeiger an das Ende if(handle<1) { Alert("Error opening logfile:",filename); return; } //header if(create_open) { // im Overwrite mode wird das File erzeugt und der Header geschrieben if(FileTell(handle) == 0) //wenn das File nach dem öffnen/anlegen leer ist, wird der Header geschrieben. FileWrite(handle,"Time","Open","High","Low","Close"); } else //hier im FileWrite werden die auszugebenden Variablen eingefügt { FileResult=FileWrite(handle, TimeData, OpenData, HighData, LowData, CloseData); if(FileResult<0) Alert("Error writing file (flLogTrades):"); } FileClose(handle); return(filename); }
  18. Wow! Daran hab ich natürlich nicht gedacht. Bei meiner Datenquelle ist das Volumen für jeden Balken fix auf 4 gestellt. Da ist mir der Einfluß vom Volumen auf Tickdaten natürlich nicht aufgefallen. Oh Mann, du machst mich echt fertig. Jetzt hab ich gestern Nacht 3 Stunden lang manuell Kursdaten importiert um jetzt gesagt zu bekommen, dass die Daten auch wieder nichts taugen.
  19. Auf alle Fälle sollten wir solange feiern, wie es noch geht. Nächste Woche hat Vola bestimmt rausgefunden, wie man seinen Tip abgibt und dann ist's eh vorbei mit Gewinnen
  20. Von mir natürlich auch. Dürfen wir uns jetzt gegenseitig mit Schampus vollspritzen?
  21. Nun, sagen wir mal es geht um eine Long-Position deren TP 10 Punkte über dem Einstiegskurs liegt (Spread mal aussenvor). Soweit ich das nachvollziehen konnte, werden ab 10 Pips Balkengröße 4 Ticks erzeugt (könnt ich jetzt nicht beschwören, aber diese Größenordnung ist es). Dann nehmen wir an, dass 1. und 2. Balken genau 9 Punkte groß sind (im M1). Hier dann das Beispiel, wo du 40% Verfälschung hättest: Das kann sich natürlich in gewissem Maße wieder rausmitteln, wenn die Trefferquote aber recht hoch ist, dann wird das Ergebnis im Backtest wesentlich besser ausfallen, als es in der Realität gewesen wäre. Natürlich unter der Voraussetzung, dass in der Realität die Zwischenticks, die in der Simulation fehlen, vorhanden gewesen wären.
  22. Ja, ja, immer auf die alten und schwachen . Mit uns könnt ihr's ja machen . Naja, ist ja gleich gemacht und das Resultat ist ziemlich eindeutig: Im Detail. Hab die M15-History gelöscht und einen EA auf TF M15 gestartet. Das Ergebnis ist also: Sind keine Kursdaten für den entsprechenden Zeitraum vorhanden, so generiert sich der Strategietester diese auch nicht aus einem vorhandene kleineren Zeitrahmen. Komisch eigentlich, da er für die Generierung der Tickdaten ja genau diesen kleineren Zeitrahmen verwendet.
  23. Ich kann jetzt natürlich nur für den begrenzten Zeitraum sprechen, den ich untersucht habe. Da ich die Auswertung nicht automatisiert hab, sondern jeden Tick mehr oder weniger einzeln durchgegangen bin begrenzt sich die Untersuchung auf ein paar Hundert Ticks. Hier konnte ich eben das oben beschriebene Verhalten beobachten. Denke aber, das es allgemeingültig ist. Das mit dem M1-Backtest würd ich vielleicht noch verallgemeinern. Meiner Meinung nach sind Backtests, die mit einem sehr geringen TP arbeiten relativ wenig aussagekräftig, da die Schrittgröße der Tickdaten schon einen hohen prozentualen Einfluß in den Profit haben. Bei größeren TPs oder Trendpositionen über längere Zeit ist dieser Einfluß eher zu vernachlässigen.
  24. Nein. Die Daten werden nach einem relativ einfachem Algorithmus generiert. Ein paar Beispiele: Ist High > Open und Low Ist Open=High=Low=Close, dann gibt es nur 1 Tick Ist High=Open und Low=Close, dann gibt es auch 4 Ticks Open => Low => High => Close Ist Open=Close und entweder High oder Low noch genau so groß, dann gibt es 3 Ticks Open=>High=>Low/Close Ist Open=Low und High=Close so gibt es 4 Ticks mit Open, dann 2 Werte, die jeweil auf 33% und 66% zwischen Open und Close liegen und dann Close Nur um eine ungefähre Vorstellung zu bekommen Edit: Ergänzend zum letzten Beispiel sei noch gesagt, dass die Werte 33%, 66% nur bei einem sehr eher großen M1-Balken (in meinem Beispiel 10 Punkte) zustande kommen. Bei kleinen Balken gibt es nur einen Zwischentick in der Mitte zwischen Open und Close.

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.