Amibroker AFL

      janson schrieb:

      @trash
      Ich habe nun die histor. Daten geshiftet eingefügt, die DB läuft auf Timeshift 0 und DDE auch auf 0 damit der MT4 Realtimefeed zur aktuellen Zeit eingefügt wird. Den Backfill der kurzfr. Daten mache ich nun über das DDE-Script. Mein MT4 hat eine andere Zeitzone (MEZ+1), weswegen ich bei dem Backfill wiederum einen Timeshift um -1 einbauen muss um das auszugleichen.


      Ich verstehe eine Sache nicht. Einerseits kommt ein Realtimefeed von MT4 nicht geshiftet rein und andererseits shiftest du den Backfill. Hast du zwei MT4 oder wie habe ich das zu verstehen? Wenn beides der selbe MT4 ist und die Realtimequelle mit +1 reinkommt (und intern ungeshiftet), du dann aber den Backfill shiftest, liegt dieser ja dann mit anderer Zeitzone vor. Realtime in MEZ +1 und Backfill in MEZ. Wenn es in beiden Fällen der selbe MT4 ist, dann musst du ohne Shift backfillen und intern Timeshift auf -1 setzen. Wenn du zudem das WE komplett raushaben willst aus dem Backfill (sofern dein MT4 WE Daten beinhaltet, wenn um -1 zurückgeshiftet wird), dann kannst du diese schon über das Export Skript vom MT4 entfernen. Das habe ich glaube ich auch im Thread gezeigt.

      janson schrieb:


      Ich dachte mit den Infos von deinem letzten Post würde ich das selbst gelöst bekommen, aber irgendwo muss da ein Fehler sein.


      Wenn du bitte noch dazu sagen könntest, was nicht läuft wie erwartet ... Das geht leider nicht hervor. Welches Plugin verwendest du eigentlich? Das geht auch nicht hervor. Sprechen wir jetzt über das DDE Plugin oder sind wir immernoch beim MT4 Plugin?
      @trash
      Super, vielen Dank dafür. War wieder alles sehr gut zu verstehen und ich finde es toll dass du nicht wegläufst, denn da ist immer noch was, was passend gemacht werden muss. ;( :D

      Ich habe nun die histor. Daten geshiftet eingefügt, die DB läuft auf Timeshift 0 und DDE auch auf 0 damit der MT4 Realtimefeed zur aktuellen Zeit eingefügt wird. Den Backfill der kurzfr. Daten mache ich nun über das DDE-Script. Mein MT4 hat eine andere Zeitzone (MEZ+1), weswegen ich bei dem Backfill wiederum einen Timeshift um -1 einbauen muss um das auszugleichen. Ich dachte mit den Infos von deinem letzten Post würde ich das selbst gelöst bekommen, aber irgendwo muss da ein Fehler sein. Ich habe folgendes gemacht (Ziel: Backfill fügt die Daten -1h ein):

      1) Zuerst Im Formatordner eine Datei namens MT4js-1.format erstellt (hier einfach die Vorlage MT4js.format von dir genommen und die Zeile $TIMESHIFT -1 hinzugefügt).

      Quellcode

      1. $FORMAT Ticker,Date_YMD,Time,Open,High,Low,Close,Volume
      2. $SKIPLINES 0
      3. $SEPARATOR ,
      4. $DEBUG 1
      5. $AUTOADD 1
      6. $BREAKONERR 1
      7. $TIMESHIFT -1


      2) Dann der Datei import.types diese Zeile hinzugefügt

      Quellcode

      1. MT4-1 (js) ASCII (*.csv)|*.csv|MT4js-1.format


      3) Und entsprechend im import.js Skript den Dateinamen auf MT4js-1.format geändert

      Quellcode

      1. AmiBroker.Import( 0, filename1, "MT4js-1.format" );
      Etwas verspätet. Wollte schon am Freitag antworten, hatte dann aber keine Zeit mehr.

      Janson, es geht beides. Wenn du nicht während des Importes der externen Historie "timeshiften" sondern nachträglich in den Data base settings von GMT nach MEZ umstellen willst und gleichzeitig die WE Daten ausblenden und den Montagsstart um 00:00 haben möchtest, dann musst du die Settings wie folgt einstellen. Unteres Schaubild ist für Timeshift +2 (wenn Timeshift +3 dann unter Day session Start 00:00 und End 20:59 sowie Night session Start 00:00 und End 21:00 einstellen analog für andere Zeitzonen mit WE Daten)



      Nun zur Alternative:
      Wenn du während des Importes "timeshiften" willst, dann so wie im Video megaswf.com/file/2439656

      *Generelles On* Im letzten Schritt des Import Wizards im Video wird eine Dukascopy Formatdatei erstellt. Diese taucht dann unter Dateityp auf, wenn du beim nächsten Import File>Import Ascii auswählst. Ist ja auch im Video zu sehen. Dort habe ich die vorher importierte Datei gelöscht und dann nochmal über Import Ascii statt über Import Wizard importiert, da ja die Formatdatei erstellt wurde. Mit der Erstellung von Formatdateien erspart man sich die ständige Wizard Import Route. Diese Formatdateien können auch über Scripte eingebunden werden und dann z.B. über Tools>Customize unter Tools untergebracht werden oder direkt in der Toolbar von AB (habe ich ja schon im Thread erklärt). So reicht dann ein Klick auf den erstellten Toolbarbutton und z.B. Dukascopy wird importiert. Noch etwas .. ich habe im Video als Zusatz für Group und Watchlist '0' und Market 2 gewählt. Das ist kein Muss. Du kannst das entweder weglassen oder eigene Zuordnungsnummern für diese drei auswählen. In der Standard Datenbank nach der Installation ist Market 0 = NYSE, Market 1 ist NASDAQ. Deshalb habe ich hier bspw 2 gewählt. Aber du kannst die NYSE und NASDAQ Namen auch umbenennen und für NYSE zum Bsp hier Forex wählen als Name für Market 0. Einfach in der Sidebar im Bereich Synbols und dort unter Markets NYSE mit der Maus kurz antippen, dann wird es editierbar (Das Selbe gilt für Groups und Watchlists). Kategorien umbenennen kann man auch unter Symbol>Categories. Symbole nachträglich zuordnen kann man unter Symbol<Organize Assignments. *Generelles Off*

      Zurück zu den Imports. Wie man unten in den Charts sieht, zeigen beide Möglichkeiten der Handhabung des Imports von Historien mit WE Daten und unterschiedlichen Zeitzonen der Ursprungsdatei die selben Schaubilder (nur mit unterschiedlichen Symbolnamen). Der Weg über Shiften während des Importes hat den Vorteil, dass man das Problem mit einmal im Jahr +1h und einmal im Jahr +2h gleich beseitigt, wenn die Historie Zeiträume mit beiden Zeitzonenumstellungen beinhaltet. Darum kann man auch gleich Formatdateien einmal mit Timeshift +1 und einmal mit Timeshift +2 erstellen. Habe ich unten hochgeladen. Du musst dann nur noch die Datei import.types im Ordner Amibroker\Formats mit einem Texteditor öffnen und folgende zwei Zeilen dort hinzufügen:

      Quellcode

      1. Dukascopy+1 (*.csv)|*.csv|Dukascopy+1.format
      2. Dukascopy+2 (*.csv)|*.csv|Dukascopy+2.format


      Wenn du nun damit Daten über ein Jahr oder mehrere Jahre von Dukascopy importieren willst, die GMT als Zeitzone haben, dann musst du diese aufsplitten in die entsprechenden Zeiträume, also bspw eine Datei mit Daten von Oktober 2011 bis März 2012 für GMT+1 und eine Datei mit Daten vom entsprechenden Datum im März bis heute für GMT+2 usw

      So ich denke jetzt hast du erst mal genug zu tun ... Klingt alles kompliziert ist aber simpel im Quadrat. Falls noch Fragen sind, ich laufe nicht weg.
      Bilder
      • Timeshift in Data base settings.png

        27,04 kB, 1.138×594, 295 mal angesehen
      • Timeshift während Import.png

        29,62 kB, 1.141×594, 286 mal angesehen
      Dateien
      • DC Formats.zip

        (524 Byte, 204 mal heruntergeladen, zuletzt: )
      Achso, ich dachte halt du brauchst nur ein paar Samples wegen dem Format und das mit dem WE-Filter sei eher datenunabhängig...

      Für die Daten muss man sich bei DC für die Demo registrieren. Dann hat man Zugriff auf das Datencenter und kann sich z.B. Tickdaten über mehrere Jahre runterladen. Qualität? Kein Ahnung...soll aber brauchbar sein. eareview.net/tick-data/download-free-tick-data
      Dateien
      Lade bitte einfach mal was hoch, dann zeige ich's heute oder am WE.

      Coolio :thumbup: , siehe Anhang.
      Die DC-Daten sind in GMT und Ziel ist es, MEZ mit GMT+2 für Sommer- und GMT+1 für Winterzeit zu bekommen.


      Wenn ohne Timeshift der Freitag bei DC bis Null Uhr geht, dann ist es mMn nicht richtig mit 2h zu addieren. Das zeigt schon der Montag, der bei 02:00 Uhr beginnt. AB macht nichts Anderes als 2h zu addieren. Dann ist die gewählte Zeitzone nicht richtig. Welche willst du denn darstellen? MEZ? Ich denke eher, du musst -2 oder eher -1 statt +2 wählen. Dann geht der Freitag bis 23:00 Uhr MEZ.

      Der +2 Timeshift ist schon der richtige und legt die Daten auf unsere Sommerzeit. Ich denke mal, wenn man den Shift gleich beim Einfügen der Daten vornimmt und die DB-Settings auf 0 belässt, erübrigt sich das Problem mit dem Weekend von selbst. Dennoch erschließt sich mir nicht völlig, warum bei aktivem WE-Filter der Montag erst um 02:00 Uhr beginnt, wenn eigentlich genügend Sonntagcandles vorhanden sind, um trotz Shift den Montag um 00:00 Uhr beginnen zu lassen (siehe Screenshot).
      Bilder
      • WE-Filter.jpg

        146,18 kB, 1.210×733, 288 mal angesehen
      Dateien

      janson schrieb:

      Ich sehe das schon richtig, dass mit dem MT-Plugin regelmäßig mindestens jede 16h (bzw. 1000min) Amibroker gestartet werden muss um keine Kurslücken zu bekommen?


      Nein, das siehst du falsch. Es muss nichts neugestartet werden. Dieses 3rd party Tool lädt solange in 1000 bars oder 500 bars Intervalen (je nachdem, was eingestellt ist unter data_count) Historie nach, bis es mit MT4's aktuellem Bar übereinstimmt. Wenn also der letzte Tag der 30.05. war, an dem AB lief, dann wird solange nachgeladen, bis die aktuelle MT4 Minute erreicht ist. Es wird immer dann importiert, wenn beim Mt4 neue Quotes erscheinen. In marktruhigen Phasen wie z.B. spät abends kann der Backfill also länger dauern, wenn z.B. nur alle 30 Sekunden neue Quotes im MT reinkommen und du z.B. zwei Tage auffüllen musst (deshalb nicht wundern, wenn es in solchen Phasen etwas dauert). Der Backfill über das Plugin macht mMn nur Sinn über einen Zeitraum von ein bis zwei Tagen.Wenn aber mehrere Tage fehlen, dann macht der Backfill über Skript mehr Sinn, da schneller. Wie das geht, habe ich weiter hinten im Thread in Bezug auf DDE erklärt und Bsp hochgeladen. Wie gesagt, das alles bezieht sich nur auf MT4. Mit den vollwertigen Datenstream Plugins läuft das alles komfortabler. Ich würde noch in den Data base settings 'Number of bars' von 1.000 auf bspw. 50.000 erhöhen.



      janson schrieb:


      Ich habe nun von Dukascopy hist. Daten geladen. Diese kommen ohne DST. Beim Forextester hatte ich bisher die Daten in Halbjahresinkrementen jeweils mit +2h und +1h Versatz eingefügt um die Sommerzeit wieder herzustellen. Wie mache ich das bei AB?


      Lade bitte eine Bsp Datei hoch, dann mache ich ein Import Skript mit Formatdatei für Duakscopy fertig. Ist kein Act. Dann wird mit einem Klick von bspw C:\DC (wo sich die Dateien befinden) importiert.

      janson schrieb:


      Ach ja, ich habe die Dukascopydaten zurzeit auf +2 Stunden importiert und wenn ich dann „Filter Weekends“ aktiviere, habe ich zwar kein volles Wochenende mehr, aber dennoch einen mini Samstag bis 02:00 Uhr und am Montag geht es erst um 02:00 Uhr los.


      Wenn ohne Timeshift der Freitag bei DC bis Null Uhr geht, dann ist es mMn nicht richtig mit 2h zu addieren. Das zeigt schon der Montag, der bei 02:00 Uhr beginnt. AB macht nichts Anderes als 2h zu addieren. Dann ist die gewählte Zeitzone nicht richtig. Welche willst du denn darstellen? MEZ? Ich denke eher, du musst -2 oder eher -1 statt +2 wählen. Dann geht der Freitag bis 23:00 Uhr MEZ. BTW, du kannst schon während des Importes die Zeit nach vorn oder hinten "shiften", weshalb du dann in den Data base settings die Time Shift Stellung bei 0 belassen kannst. Lade bitte einfach mal was hoch, dann zeige ich's heute oder am WE.
      Hat dank deiner Anleitung wunderbar geklappt. Ich sehe das schon richtig, dass mit dem MT-Plugin regelmäßig mindestens jede 16h (bzw. 1000min) Amibroker gestartet werden muss um keine Kurslücken zu bekommen?

      Ich habe nun von Dukascopy hist. Daten geladen. Diese kommen ohne DST. Beim Forextester hatte ich bisher die Daten in Halbjahresinkrementen jeweils mit +2h und +1h Versatz eingefügt um die Sommerzeit wieder herzustellen. Wie mache ich das bei AB?

      Ach ja, ich habe die Dukascopydaten zurzeit auf +2 Stunden importiert und wenn ich dann „Filter Weekends“ aktiviere, habe ich zwar kein volles Wochenende mehr, aber dennoch einen mini Samstag bis 02:00 Uhr und am Montag geht es erst um 02:00 Uhr los.
      Weiß ich nicht, ob es Sinn für dich macht. Ich mag MT4 nicht als Software. Und du bist halt dort nur auf OTC eingeschränkt, reale Börsen Fehlanzeige. Charting gefällt mir auch nicht. Und nicht mal einen Scrollbalken kann sich Metaquotes leisten. Dann kannst du keine benutzerdefinierten Timeframes erstellen (Ok, über Umwege), keine Rangebars, keine Tickcharts, keine Volumebars etc. Long story short, das Programm ist einfach nicht ausgereift, mMn.

      Was den Unterschied MT4 Plugin zu DDE Plugin betrifft. Ersteres importiert nur Bid Kurse. Zweiteres überträgt kein Volumen. DDE hat von Natur keinen Backfill. Aber man kann, wie von mir gezeigt, durchaus auto-backfillen. Für das MT4 Plugin muss für jedes Underlying ein extra Chart mit EA geöffnet werden. Es fordert auch mehr Leistung je mehr Historie und je mehr Underlyings importiert/upgedatet werden sollen, da es auf MT4s Historie zugreift. Nachdem man im MT4 Plugin im Dropdown Menu 'data_count' auf 1000 oder 500 gestellt hat und der Backfill beendet ist, sollte man wieder zurück auf "Sparflamme" stellen also z.B. auf 10. Mehr Historie kann man über ASCII Import importieren. Generell sollte man in AB unter Tools>Preferences>Intraday unter Rubrik Realtime chart refresh interval auf 0 stellen.

      Der Timeshift in meinem Video in Höhe von '6' betrifft nur Oanda, da die Oanda MT4 Serverzeit MEZ-6 ist. Wenn die MT4 Serverzeit MEZ ist, dann bleibt die Timeshift Einstellung in AB natürlich auf 0, außer man will ein andere Zeitzone darstellen. Desweiteren muss im Mt4 das Chartinterval das Selbe sein wie das Base time interval in Amibrokers Database settings (das betrifft nur das MT4 Plugin). Also wenn dort in AB 1-minute eingestellt ist, muss der MT4 chart auch ein 1-Minutenchart sein (siehe Video). In AB selber kann dann aber jedes beliebige Chartinterval gewählt werden. Diese zwei Sachen nicht durcheinanderbringen. Noch was Generelles... in den Database settings>Intraday settings und dort unter Day session>Start die Minuten auf "..:00" stellen (siehe Video). Nach Standardinstallation ist dort 09:30 für US Börseneröffnung eingestellt. Warum auf '00' stellen? Damit immer zur voller Stunde begonnen wird (z.B. Stundenchart) und nicht von bspw 08:30 bis 09:29 usw.

      Mit AFL habe ich mich persönlich gleich gut zurechtgefunden. Ich persönlich finde es einfach und man kann Dinge schnell umsetzen. Natürlich muss man bei Ideen nachdenken. Wenn du Fragen dazu hast, dann frag einfach. Ich habe Bandy nicht gebraucht.

      Hier sind die Dateien file-upload.net/download-44032…in-f-r-Amibroker.zip.html Diese in die selben Ordner des jeweiligen Progamms kopieren, so wie im zip Archiv abgelegt. Dann AB starten, Rateserver starten, MT4 starten, im MT4 einen 1-Minuten Chart öffnen und das beigefügte Template laden, in Amibroker das selbe Symbol wie das des Mt4 Charts erstellen. Der Rest siehe Video megaswf.com/file/2438888
      Ah, ok danke. Ich hatte deine Anleitung für die DDE Anbindung schon entdeckt und saß da auch gestern Nacht dran. Verbinden mit MT4 war kein Problem, aber den Backfill mittels Script bekam ich dann aufgrund techn. Unvermögens nicht zum Laufen, deswegen auch heute der Versuch über das MT4-Plugin. Gibts denn zwischen den beiden Methoden eigentlich einen qualitativen Unterschied?

      Aber ich stelle mir eh gerade die Frage, ob eine Livefeedanbindung überhaupt notwendig ist. Kann AB als Chartingsoftware etwas besser als MT, wenn man jetzt nicht unbedingt Tickcharts benötigt? Was ich bisher so an anderen Meinungen gelesen habe, liegen die Stärken von AB eher im Backtesten und Programmieren.

      Wie ist der Einstieg für Non-Coder (das letzte Programmieren war bei mir Q-Basic auf einem C64) denn so? Ist das Introduction Buch von Howard Bandy gut zu gebrauchen? Mein Ziel ist es nicht rein automatische Handelssysteme zu entwerfen, sondern ich möchte endlich mal in der Lage sein, grundsätzliche Marktideen auf Nachhaltigkeit zu überprüfen um mein diskr. Trading zu unterstützen. Also nix großartiges denke (hoffe) ich mal...
      Wenn du Windows 7 hast, dann liegt's daran. Ansonsten ist das ein 3rd Party Tool, das von AB nicht unterstützt/gewartet wird. Sollte etwas nicht funktionieren, musst du dich an den Entwickler dieses Plugins wenden. Ich habe es aber in einer virtuellen Maschine mit XP probiert und funktioniert sofort. Ansonsten wenn du Metatrader als Server nutzen willst, dann kannst du auch das interne DDE plugin verwenden. Wie der Backfill über ein MT4 Skript funktioniert, habe ich im Thread gepostet. Für vollwertige Datenanbieter statt DDE stehen ansonsten Plugins für IQfeed, Esignal usw parat. Oder halt das Development Kit.

      zentrader schrieb:

      @Fisch,

      ich denke es ist relativ unstrittig, dass Amibroker aktuell das beste Preis-/Leistungsverhaeltnis in einem Vergleich "auf der gruenen Wiese" haette.

      In Deinem Fall (ich nehme mal an Du meinst mit TS TradeStation) bietet sich natuerlich MultiCharts an. Ist zwar teurer in der Anschaffung und sicherlich auch nicht so elegant sowie performant entwickelt wie AB, aber es verwendet die sog. PowerLanguage mit dem Ziel einer moeglichst hohen TS-EasyLanguage-Kompatibilitaet. Das ware dann schon ein gewichtiges Argument bzgl. einer flacheren Lernkurve aufgrund Deiner TS-Vorkenntnisse...

      ciao,
      zentrader



      Das beste Preis- Leistungsverhältnis in dem Fall wäre doch dann gleich ein Konto bei Tradestation (Mindesteinlage $2500), dann bekommt man Tradestation komplett for free. Die Spreads sollen so schlecht nicht sein und meines Wissens gilt für Europäer die FSA als Regulierungsbehörde.
      @Fisch,

      ich denke es ist relativ unstrittig, dass Amibroker aktuell das beste Preis-/Leistungsverhaeltnis in einem Vergleich "auf der gruenen Wiese" haette.

      In Deinem Fall (ich nehme mal an Du meinst mit TS TradeStation) bietet sich natuerlich MultiCharts an. Ist zwar teurer in der Anschaffung und sicherlich auch nicht so elegant sowie performant entwickelt wie AB, aber es verwendet die sog. PowerLanguage mit dem Ziel einer moeglichst hohen TS-EasyLanguage-Kompatibilitaet. Das ware dann schon ein gewichtiges Argument bzgl. einer flacheren Lernkurve aufgrund Deiner TS-Vorkenntnisse...

      ciao,
      zentrader