Programmierung "Frei Schnauze"

      Hallo marmooli,

      die Daten vom Broker zu holen ist eine gute Idee. Hoffentlich liefert er eine genügend große Historie. Das wollte ich auch mal testen, bin aber daran gescheiter das einigermaßen zu automatisieren, so daß ich immer die aktuellen Daten für den Screener habe. Derzeit teste ich mit Teletrader. Die Software hat eine Realtimeschnittstelle zu Excel. Da geht das automtisieren gut, aber die Schnittstelle ist scheinbar zu langsam (ich hoffe das ist nur in der Demo so).

      Darf ich fragen bei welchen Broker Du bist?

      LG TraderMik

      TraderMik schrieb:

      leider kann ich nicht mit kostenlosen Stundendaten dienen. Bin gespannt, ob da jemand was weis. Was ich vorschlagen würde, wenn nur EOD Daten zur Verfügung stehen: Man geht immer vom schlechtesten Fall aus, also daß man ausgestoppt wird. Dann kann es im echten Leben nur besser aber nicht noch schlecher werden.


      Hallo TraderMik,

      ich habe nicht lange gesucht, aber auf jeden Fall habe keine kostenlosen Stunden-Daten gefunden. Deshalb habe ich gedacht, vielleich hole ich mir Daten von meinem Broker und exportiere diese in txt Format o.Ä. und das hat tatsächlich funktioniert. Nachdem ich das gemacht habe, dachte ich, warum exportiere ich meine EOD-Daten nicht auch von meinem Broker. Dies hat viele Vorteile, u.a. mein Backtesting wird mit Daten durchgeführt, mit denen mein System später handel wird und zwar mit allen (evtl.) durch meinen Broker verursachten Abweichungen imVergleich zu z.B. anderen Data-Anbietern. (vorher habe ich die Daten aus yahoo.finance geladen)

      und zum Programm selber: Das Programm wird grundsätzlich mit EOD-Daten arbeiten. In den Fällen, wo eine gleichzeitige Berührung von SL und TP an dem selben Tag erkannt wird, wird das Programm auf Stunden-Daten von diesem Tag zugreifen und eindeutig bestimmen, ob der Tag ein Sieg war oder eine Niederlage. Auf jeden Fall gefällt mir ein solcher Ansatz besser als nur mit wrost case zu arbeiten. Wrost case ist zwar eine gute Idee, verfälscht aber die Ergebnisse einer Optimierung und verringert die Präzision der Sache. Wir haben genug Unsicherheit bei dieser Geschichte und ich will diese möglichst beseitigt haben. Mal schauen, ob dies sich ohne weiteres programmieren lässt.

      Servus

      marmooli
      stolz auf seinen ersten Totalverlust! Nun fühlt er sich erwachsen.

      Gedanken zum Thema "pro Tag ein short und ein long"

      Hallo zusammen,

      was könnte der Sinn der Lehre: "Pro Tag ein Long und ein short" sein? Wie sollen wir dieses Programmieren?

      Ich würde dieses Thema als eine empirische und erfahrungstechnische Absicherung gegen Koorelation der Werte verstehen. Die Lehre gilt nur wenn mein Long und mein Short keinesfalls (oder sehr gering) korrelieren. So werde ich mit meinen beiden Positionen Gewinn machen, sonst führt diese Regel bei einer Korrelation logischerweise mit hoher Wahrscheinlichkeit zu mindestens einem Verlust.

      Muss ich mich an dieser Lehre festhalten, wenn ich anhand mathematischen Methoden ermitteln könnte, wie hoch die Wahrscheinlichkeit der Korrelation meiner beiden Kandidaten sind? Ist es nicht besser finger davon zu halten falls die Werte stark korrelieren?

      Servus

      marmooli
      stolz auf seinen ersten Totalverlust! Nun fühlt er sich erwachsen.

      Gedanken zum Thema ATR

      Hallo zusammen,

      hier und da und ständig gibt es die Diskussion über die Werte von ATR und Erkenntnisse, dass anscheinend ATR aus verschiedenen Quellen unterschiedlich berechnet wird. Die logische Konsequenz ist dass die Regel 0,6*ATR(10) auch vom Fall zu Fall verschieden ist und zwar teilweise mit großen Abweichungen jenseits von akzeptablen Toleranzen. So wird diese Regel auch etwas schwammig und verliert seine Objektivität. Da der Hintmann diese Regel anhand seiner Backtesting-Ergebnisse (die meines Wissens nicht vollautomatisch sondern eher halbautomatisch durchgeführt wurden [@Hintmann: bitte korrigiere mich wenn ich mich irre]) aufgestellt hat, gilt diese Regel nur für ihn und für diejenigen, bei denen alles gleich aussieht wie bei Hintmann. Das sollte bedeuten, dass für einen sollte z.B. 0,65*ATR und einen anderen 0,55*ATR der richtige Wert sein. Selbstverständlich macht das nur für Grenzsituationen Sinn ob 0,55 oder 0,6 oder 0,65 usw. aber auf jeden Fall wenn man systematisch korrekt arbeiten wollte, sollte man entweder kontrollieren, ob alle Signale und Berechnungsformeln die man hat gleich sind wie von Hintmann, oder man findet durch eigenen Backtest den optimalen Wert für seine vorhandenen Daten, weil:

      Das Prinzip, das dahinter steckt ist wichtig und nicht diese und jene Zahl, und das Prinzip sollte sein (ich hoffe ich irre mich nicht) "Stop-Loss wird an die Volatilität angepasst."

      Ich werde die klassische Formel zur Berechnung von ATR verwenden und das System basieren auf dieser Formel optimieren. So ist es im Endeffekt egal, wie exakt ATR berechnet wird, es geht darum, den SL anhand Vola zu bestimmen und den optimierten Wert dafür ermitteln.

      Für mich war dies noch ein Grund dafür, dass Bestimmen der Optimierungskriterien wichtiger sind als Programmieren des Signalfinders.

      Servus

      marmooli
      stolz auf seinen ersten Totalverlust! Nun fühlt er sich erwachsen.

      marmooli schrieb:

      hallo zusammen,

      ich habe ein konkretes Problem, das allerding bekannt ist und zwar: Die End-Of-Day Daten reichen leider nicht, damit man backtesten kann. Für die Tage, wo die Stop-Buy order auf einer Kerze plaziert ist und die Kerze an dem selben Tag sowohl Stop-Buy als auch Stop-Loss berührt hat, muss das Trader-Modul in der Lage sein, tiefer zu tauchen und die Lage in (z.B.) in einer Stunden-Chart zu analysieren, da die Lage nicht eindeutig interpretierbar ist, nämlich, ist zuerst SB erreicht worden und dann SL (Verlust) oder zuerst SL und dann SB (Einstieg in die Position).

      Weiß jemand, wie man sich kostenlose Stunden-Daten (für Matlab) besorgen kann?

      Servus

      marmooli

      Hallo,
      leider kann ich nicht mit kostenlosen Stundendaten dienen. Bin gespannt, ob da jemand was weis. Was ich vorschlagen würde, wenn nur EOD Daten zur Verfügung stehen: Man geht immer vom schlechtesten Fall aus, also daß man ausgestoppt wird. Dann kann es im echten Leben nur besser aber nicht noch schlecher werden.

      LG TraderMik
      hallo zusammen,

      ich habe ein konkretes Problem, das allerding bekannt ist und zwar: Die End-Of-Day Daten reichen leider nicht, damit man backtesten kann. Für die Tage, wo die Stop-Buy order auf einer Kerze plaziert ist und die Kerze an dem selben Tag sowohl Stop-Buy als auch Stop-Loss berührt hat, muss das Trader-Modul in der Lage sein, tiefer zu tauchen und die Lage in (z.B.) in einer Stunden-Chart zu analysieren, da die Lage nicht eindeutig interpretierbar ist, nämlich, ist zuerst SB erreicht worden und dann SL (Verlust) oder zuerst SL und dann SB (Einstieg in die Position).

      Weiß jemand, wie man sich kostenlose Stunden-Daten (für Matlab) besorgen kann?

      Servus

      marmooli
      stolz auf seinen ersten Totalverlust! Nun fühlt er sich erwachsen.

      marmooli schrieb:

      Hallo zusammen,

      mir ist bewusst, dass nicht jedermann mit matlab arbeiten will/kann. Wir können bei Bedarf sogar ein neues Thread extra nur für "Programmieren des FS-Systems mit Matlab" öffnen, wenn ihr wollt. Ich will nicht, dass die Sache so dermaßen spzifisch wird, dass die Anzahl der Teilnehmer an der Diskussion geringer wird als das, was momentan ist (obwohl die Anzahl der Zuschauer scheint relativ hoch zu sein, was an sich doch eine schöne Sache ist).

      Servus

      marmooli

      Ich gehe mal davon aus, daß ich den Code von Matlab auch lesen kann und daraus erkenne was gemeint ist. Darüberhinaus können wir ja unabhängig der verwendeten Software die jeder verwendet die Konzepte und Ideen diskutieren.

      Signale zum Vergleich

      Hallo,

      aufgrund der Anfrage im Haupt-Thread nach Signalen, die manuell gefunden wurden, hier ein wenig Futter.

      Im jpg alles, was ich gehandelt habe, in den diversen Excel-Files die (manchmal recht grobe) Vorauswahl. Der Tag, um den es jeweils ging, findet sich im Dateienamen.

      Ich hoffe, es hilft!

      LG
      Casi
      Bilder
      • Auswertung mit Vola(3) Differenz.JPG

        196,95 kB, 581×869, 213 mal angesehen
      Dateien
      • Tradechecks.zip

        (100,7 kB, 159 mal heruntergeladen, zuletzt: )
      • Tradechecks2.zip

        (120,86 kB, 206 mal heruntergeladen, zuletzt: )
      Geld allein macht nicht glücklich. Zum Glücklichsein gehören auch Immobilien, Aktien und eigene Unternehmen. (Dagobert Duck)
      Hallo zusammen,

      mir ist bewusst, dass nicht jedermann mit matlab arbeiten will/kann. Wir können bei Bedarf sogar ein neues Thread extra nur für "Programmieren des FS-Systems mit Matlab" öffnen, wenn ihr wollt. Ich will nicht, dass die Sache so dermaßen spzifisch wird, dass die Anzahl der Teilnehmer an der Diskussion geringer wird als das, was momentan ist (obwohl die Anzahl der Zuschauer scheint relativ hoch zu sein, was an sich doch eine schöne Sache ist).

      Servus

      marmooli
      stolz auf seinen ersten Totalverlust! Nun fühlt er sich erwachsen.
      Servus Summy,

      das freut mich sehr, dass jemand anders auch mit matlab arbeitet. Ich denke, mit matlab kann man richtig professionel und gründlich arbeiten, alles andere befriedigt mich nicht so ganz.

      danke für die Links. beides hatte ich schon. Meine Daten lade ich auch mit dem hist_stock_data.m und die Indickatoren von indicators.m nutze ich auch als Berechnungsmodul.

      Hier gibt es auch ein paar andere Links, die ich gefunden habe (sehr gut als Motivation für alle):

      finmetrics.statistik.uni-muenc…12/matlab_1112/index.html

      mathworks.de/company/events/we…p1=961664903&p2=961664921 (Registerierung notwendig)

      vor allem Dieses Video zeigt, was matlab alles so einfach kann, was jenseits von jeder anderen Platform ist:

      youtube.com/watch?v=JxLfitemmMI

      Ich habe leider bisher kein vollständiges Programm erstellen können, da ich die letzten zwei Tage zum Recherchieren und Finden der benötigten Sachen (wie die zwei Links von Dir) benötigte.(--> vielleicht solltest Du Dich früher melden :D ).

      Jedenfalls konnte ich bisher die Daten erfolgreich herunterladen und die Candletick-Charts ordentlich darstellen usw. Meine Vorgehensweise für die nächsten Tage wird sein:

      1- bevor ich überhaupt irgendetwas mache, soll ich gut überlegen, was ich machen will

      2- folgende Module programmieren:

      a- MM & RM Modul

      b- Signalfinder-Modul: es reicht erstmal ein ganz einfaches

      c- Trader-Modul: Dieses Modul soll die Einstiege kontrollieren, SL und Takeprofit-Punkte setzen und im Endeffekt werden die Equity-Kurve und die Kapital-Kurve durch dieses Modul berechet.

      3- Optimierungskriterien festlegen: zum Glück gibt es verschiedene Optimierung-Konzepte von Matlab

      4- Backtester programmieren

      Mir fehlt auch leider die Zeit und ich habe parallel viele andere private Projekte und dazu auch noch der Beruf, aber matlab begeistert mich schon genug, so dass ich versuche mich mehr damit zu beschäftigen.

      Also nun ein paar Konkrete Themen und fragen:

      1- wie sieht bei Dir der berechnete ATR durch indicators.m aus? stimmt dies mit anderen Brokern überein? bei mir nicht!

      2- Kannst Du Dein Signalfinder-Modul zur Verfügung stellen?

      Servus

      marmooli
      stolz auf seinen ersten Totalverlust! Nun fühlt er sich erwachsen.

      Matlab - Daumen hoch!

      marmooli schrieb:

      Hallo zusammen,

      ich habe mich endlich für eine Software entschieden, mit der ich das FS-System zu automatisieren versuchen werde und zwar für MATLAB.


      Das finde ich richtig gut! Damit arbeite ich auch und mir brennt es unter den Nägeln endlich loslegen zu können.
      Für den einfacheren Start habe ich dir mal schnell zwei Links zusammengesucht, damit du Kursdaten bekommst und den ATR berechnen kannst:

      Yahoo-Daten: mathworks.com/matlabcentral/fileexchange/18458
      Indikatoren: mathworks.com/matlabcentral/fi…3430-technical-indicators


      Den Signalfinder habe ich programmiert, das Backtesting mit Entry, Stop-Loss, Haltedauer etc. fehlt noch. Brauche einfach mehr Zeit :)

      Meine Vorgehensweise ist diese, dass ich jeden Tag alle Aktien untersuche und ein Scoring aufbaue. Grundlegende Sache wie Kerzenfarbe und Korrektur müssen gegeben sein. Darüber hinaus gibt es Bonuspunkte für z.B. nahen Trigger und akzeptable Vola an dem Tag. Dann lasse ich mir für den Tag die Aktie mit dem höchsten Score ausgeben. Das macht für mich mehr Sinn, als alle Aktien zu scannen und alle Signale dann im Backtesting zu haben. Denn das könnte Häufungen von Trades beinhalten, die man so niemals umsetzen würde/könnte.

      Viele Grüße,
      Sammy
      Hallo zusammen,

      ich habe mich endlich für eine Software entschieden, mit der ich das FS-System zu automatisieren versuchen werde und zwar für MATLAB. Keine Sorge, ich will das Rad nicht neu erfinden und ein Backtestprogramm oder Ähnliches programmieren. Matlab bietet mir eine enorme flexibilität, die ich brauche, dazu noch eine absolut mächtige Umgebung, in der man Ideen umsetzten kann. Erfahrung mit Matlab und Simulink ist auch einigermaßen vorhanden.

      Ihr seid so fleißig und arbeitet schon an dem "Signalfinder". Parallel werde ich folgendes versuchen und sobald ich etwas darstellbares habe, poste ich hier rein...

      1- Einarbeiten in Matlab (muss mich etwas erfrischen)

      2- Programmieren der notwendigen Funktionen

      3- sobald das graphische, datentechnische und Money- und Riskmanagementtechnische Geschichte funktionieren, umsetzen meiner Bewertungs- und Optimierungsideen anhand eines sehr einfachen Signalfinders

      4- Studieren und diskutieren Eurer Ideen zur Programmierung des Signalfinders (das was ihr gerade macht)

      bis dann

      Servus

      marmooli
      stolz auf seinen ersten Totalverlust! Nun fühlt er sich erwachsen.
      Hier sind die Signale (alle) von MUV2.DE (Münchner Rück) zwischen 2005 und 2010 die mein derzeitiges HS gehandelt hätte.



      MUV2 war in diesem Zeitraum aus dem gesamten Portfolio eine der schlechten Werte (bzgl Performance). Mich würde interessieren ob ihr diese Signale
      auch diskretionär gehandelt hättet....
      Bilder
      • STFB_MUV2_01.png

        11,68 kB, 539×451, 150 mal angesehen
      • STFB_MUV2_02.png

        12,27 kB, 557×449, 146 mal angesehen
      • STFB_MUV2_03.png

        20,26 kB, 1.307×451, 158 mal angesehen
      • STFB_MUV2_04.png

        20,06 kB, 1.309×451, 143 mal angesehen
      • STFB_MUV2_05.png

        20,33 kB, 1.305×450, 143 mal angesehen
      Hier sind die Signale (alle) von TKA.DE (Thyssen Krupp) zwischen 2005 und 2010 die mein derzeitiges HS gehandelt hätte.

      TKA war in diesem Zeitraum aus dem gesamten Portfolio eine der besseren Werte (bzgl Performance). Mich würde interessieren ob ihr diese Signale auch diskretionär gehandelt hättet....
      Bilder
      • STFB_TKA_01.png

        29,44 kB, 1.641×598, 146 mal angesehen
      • STFB_TKA_02.png

        13,69 kB, 540×598, 145 mal angesehen
      • STFB_TKA_03.png

        29,42 kB, 1.639×593, 139 mal angesehen
      • STFB_TKA_04.png

        31,85 kB, 1.638×591, 143 mal angesehen
      • STFB_TKA_05.png

        30,73 kB, 1.642×594, 153 mal angesehen
      @ibelieve

      in meinen Code war noch ein logischer Fehler. Die Zeilen 34-42 müssen ersetzt werden:

      Quellcode

      1. double avgATR = SMA.Value(StartBar, ATR.Series(Bars, 10), LookBackPeriode) * TrendATRFactor.Value;
      2. if (HH1 > HH2 && LL1 > LL2 && HH1 - HH2 > avgATR && LL1 - LL2 > avgATR)
      3. isTrendFlag = 1; //Long
      4. if (HH1 < HH2 && LL1 < LL2 && HH2 - HH1 > avgATR && LL2 - LL1 > avgATR)
      5. isTrendFlag = -1; //Short


      Ich will natürlich auch bei einem Long das jüngere Hoch höher ist als das ältere und bei einem Tief das jüngere Tief tiefer als das ältere.

      Danke für den Code mit dem Außenstab.

      LG TraderMik
      ich habe in etwa den S&P 1000, wo bei das bei mir jetzt nur so ca 850 werte sind.

      die Bilder waren start 2000 bis jetzt.

      ein Aussenstab gilt so lange bis es einen Schlusskurs ausserhalb des Stabes gibt, egal wie lange es dauert.

      zum Bild,
      eingezeichnet die Aussenstab strecken,
      unter dem Chart,
      bei 0 befinden wir uns in einem Aussenstab und man dürfte nicht kaufen.

      deine sache muss ich mir mal anschauen ob ich das hin bekomme.

      Quellcode

      1. ahARRAY = Null; // aussenstab hoch
      2. atARRAY = Null; // aussenstab tief
      3. stopARRAY = Null ;
      4. aussenstabhoch = 0 ;
      5. aussenstabtief = 0 ;
      6. stop1 = L ;
      7. stopaussenstab = Ref (L,-1);
      8. innenstab1 = Close < Ref ( High, -1 ) AND Close > Ref ( Low, -1 ) AND Open < Ref ( High, -1 ) AND Open > Ref ( Low, -1 ); // erster innenstab
      9. aussenstab = Ref ( innenstab1, -1 ) ;
      10. for ( i = 1; i < BarCount; i++ )
      11. {
      12. if ( aussenstabhoch == 0 AND innenstab1[ i ] )
      13. {
      14. aussenstabhoch = H[i-1];
      15. aussenstabtief = L[i-1];
      16. stop2 = stopaussenstab[i-1] ;
      17. }
      18. if ( aussenstabhoch > 0 AND Close[ i ] < aussenstabtief OR Close [ i ] > aussenstabhoch )
      19. {
      20. aussenstabhoch = 0;
      21. aussenstabtief = 0;
      22. stop2 = 0 ;
      23. }
      24. if ( aussenstabhoch > 0 )
      25. {
      26. ahARRAY[i-1] = aussenstabhoch;
      27. atARRAY[i-1] = aussenstabtief;
      28. ahARRAY[i] = aussenstabhoch;
      29. atARRAY[i] = aussenstabtief;
      30. stopARRAY[i] = stop2 ;
      31. }
      32. }
      33. Plot ( ahARRAY, "aussenstabhoch", colorBlue, 4 ) ;
      34. Plot ( atARRAY, "aussenstabtief", colorBlue, 4 ) ;
      Bilder
      • gntx.gif

        26,67 kB, 999×865, 162 mal angesehen
      Die Wissenden reden nicht viel,die Redenden wissen nicht viel.

      klaus-m.blogspot.com/
      @ibelieve

      kannst Du noch mitteilen welchen Zeitraum und mit welchem Protfolio du getestet hast (US / EU und Anzahl der Werte reicht).

      Bei den Innenstäben: Wie weit hast Du zurückgesehen um festzustellen, ob ein Außenstab existiert?

      Bei hat die Trendfeststellung mich weitergebracht. Zugegeben die ist vielleicht etwas einfach aber es hat zunächst geholfen.

      Quellcode

      1. int isTrend(int StartBar, int LookBackPeriode)
      2. {
      3. double HH1 = 0;
      4. double HH2 = 0;
      5. double LL1 = 0;
      6. double LL2 = 0;
      7. int isTrendFlag = 0;
      8. for(int bar = StartBar - 1; bar > StartBar - LookBackPeriode; bar--)
      9. {
      10. if (High[bar] > High[bar - 1] && High[bar] > High[bar + 1])
      11. {
      12. if (HH1 == 0)
      13. HH1 = High[bar];
      14. else
      15. HH2 = High[bar];
      16. //AnnotateBar( "HH", bar, true, Color.Black );
      17. }
      18. if (Low[bar] < Low[bar - 1] && Low[bar] < Low[bar + 1])
      19. {
      20. if (LL1 == 0)
      21. LL1 = Low[bar];
      22. else
      23. LL2 = Low[bar];
      24. //AnnotateBar( "LL", bar, false, Color.Black );
      25. }
      26. }//for
      27. double avgATR = SMA.Value(StartBar, ATR.Series(Bars, 10), LookBackPeriode) * TrendATRFactor.Value;
      28. //if (HH1 > HH2 && LL1 > LL2)
      29. if (HH1 - HH2 > avgATR && LL1 - LL2 > avgATR)
      30. isTrendFlag = 1; //Long
      31. //if (HH1 < HH2 && LL1 < LL2)
      32. if (HH2 - HH1 > avgATR && LL2 - LL1 > avgATR)
      33. isTrendFlag = -1; //Short
      34. return isTrendFlag;
      35. }//isLongTrend


      Als Lookback-Periode war 30 Bars recht gut mit einem ATR Faktor von 2,5.

      LG TraderMik
      Die Aussenstab Regel von Voigt bringt wohl so gesehen erst mal keinen Vorteil.

      Die Auswertung ist jetzt vom 1.7.2012 bis jetzt.
      Die Tradeanzahl geht zwar stark zurück, von daher verringert sich der Verlust, was aber wahrscheinlich nur daran liegt das halt weniger Trades gemacht wurden da die TQ geringer ist als ohne diesen Filter.

      Ich hatte früher schon oft mit der Aussenstab Regel gespielt, meist aber eher auf der Stop Seite wo ich aber im allgemeinen auch eher ein schlechteres Ergebnis hatte. Von daher hatte ich damals eigentlich den Aussenstab nach Voigt wieder weg gelegt und nicht weiter verfolgt.

      Muss man halt mal schauen wie es aussieht wenn ich hier das System erst mal durch andere Regeln auf ein Positives Ergebnis bringe.

      Die Wissenden reden nicht viel,die Redenden wissen nicht viel.

      klaus-m.blogspot.com/