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.

joshsmi

Addict
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von joshsmi

  1. Im Code läßt sich für die Auto Einstellung (im Chart Rechtklick - Parameters auswählen) natürlich auch der Multiplikator individuell festlegen. Die erste Zahl gibt immer die Sekunden an, die zweite Zahl den Multiplikator (siehe unten im Pic). Wer also bei jedem Host-TF Wechsel immer automatisch zum Beispiel den 2h TF überlagert haben möchte, müßte bei der Multiplikatorauswahl wie folgt vorgehen. M1 * 120, M5 * 24, M15 * 8, M30 * 4, H1 * 2 Das Ganze ließe sich natürlich auch als Paramtereinstellung machen, um nicht jedes Mal dutzende Zahlen einzugeben. Bspw ließe sich als Standardautoüberlagerung TF * H1 * überall der selbe Multiplikator (constMult) auswählen. Also um beim Bsp zu bleiben. Dieses Mal ist nur der constMult mit 2h Standard beim ersten Anwenden des AFl auf dem Chart und alles Weitere danach zuständig. Über Paramters läßt sich dieser constMult dann gemütlich einjustieren, sodaß dann auch für jeden Host-TF Wechsel das selbe Gast-TF überlagernd angezeigt wird (bei Auswahl Auto-Einstellung). constMult = Param("constant Multiplier", 2, 0.25, 8, 0.25); .... M1 * 60 * constMult, M5 * 12 * constMult, M15 * 4 * constMult, M30 * 2 * constMult, H1 * 1 * constMult, ...; Die erste Zahl gibt immer den Standard beim ersten Einfügen an. Oben steht die Zwei für Faktor 2, also hier 2h als Standard beim ersten Anwenden des AFL. constMult = Param("constant Multiplier", 1, 0.25, 8, 0.25); Jetzt wäre Standardüberlagerung beim ersten Anwenden des AFl gleich H1 für alle Charts kleinergleich H1. ..., 0.25, 8, ... gibt den Änderungsbereich an (also 1/4 Stunde bis 8h) und die letzte 0.25 gibt die Schrittweise an.
  2. joshsmi antwortete auf oldschuren's Thema in Chit Chat
    2h Chart ist schon bissl exotisch. Wenn es nun danach geht, wonach sich am meisten gerichtet wird, dürfte z.B. H1 weit vor H2 liegen.
  3. Oberer Chart zeigt noch die ungeraden Zeiten für 2h Candles. Auch hier geht es rückbeziehend auf das Ursprungsproblem http://www.tom-next.com/community/topic/58974-programmierungsfragen-amibroker-ii/page__view__findpost__p__113429 natürlich auch mit geraden Startzeiten.
  4. joshsmi antwortete auf oldschuren's Thema in Chit Chat
    Here we go. http://www.tom-next.com/community/topic/59207-2-timeframes-afl/ Ist Oldschurens Problem/Frage bestehend aus unterschiedl. Teilproblemchen damit gelöst/teilgelöst? ;)
  5. Intensitäten, Farben, Multiplikator für das "Host"-Timeframe und Sonstiges läßt sich in den Parameters einstellen. Für Amibroker 5.21 und aufwärts. 2TFs.zip
  6. joshsmi antwortete auf oldschuren's Thema in Chit Chat
    Gibt's auch für AB. Stelle es später mal rein.
  7. Verstehe ich jetzt nicht. Du wolltest doch wie auch im Trader's Talk Thread zu lesen ist, gerade Kerzen haben, also von 00:00-02:00, 02:00-04:00, .... usw. Desweiteren hast du in den Data Base Settings 24h eingestellt. Die Einstellung bei Start gibt dann nur an, ob mit geraden oder ungeraden hantiert werden soll. Du kannst dort statt 08:00 auch 06:00, 04:00, 00:00, 12:00, 10:00 etc einstellen, es wird das selbe Ergebnis herauskommen, nämlich 2h-Kerzen mit geraden Uhrzeiten. Ist das zweite Posting jetzt ein Evolutionsgedanke des ersten Problems? Du möchtest gerade Kerzen bis 12:00 z.B. und danach ungerade? Wie soll das gehen? Du hättest ja dann dazwischen auch eine 1h Kerze als Übergang. Oder willst du einen Autoumschalter, der zwischen geraden und ungeraden Kerzen schaltet?
  8. Gehe mal in die Data Base Settings- Intraday Settings und stelle Start Zeit der Day Session auf bspw 08:00. Und unter Tools-Preferences-Intraday auf Start Time of interval stellen. Schon ist das Problem gelöst.
  9. Ganz am Anfang: mit AB geht (fast) alles. Hier trifft mein Lieblingsprichwort "Geht nicht gibt's nicht". Problem: niemand weiß, was du (genau) willst. Dazu gehört auch das Importieren. Ich bekomme alles hinein importiert, was es zu importieren gibt. Ich könnte auch den Verlauf des Essvorgangs einer Currywurst importieren. Also schon mal die Frage, wo liegt das Problem auf deiner Seite in Sachen importieren. Wo hackt es da? Klar ist auch, qualitativ gute Daten außer die weniger guten und kostenlosen von Metatrader wirst du nicht kostenlos bekommen. Aber da sind wir wieder bei der Frage, um was für Daten es überhaupt gehen soll. Zu deiner Frage zu Captrader. Lynx kann man ohne Probleme mit AB verbinden. Wenn es also mit diesem White Label klappt, sollte es auch mit Captrader klappen. Frage doch mal nach einem Demo account dort. Ganz sicher doch. Du brauchst doch nur den Code übersetzen und Daten importieren. Aber da sind wir wieder beim ersten Problem. Damit wir uns also nicht im Kreis drehen, fängst du am Besten noch mal genau von vorn an und beschreibst, welches Problem es genau gibt und was du genau machen willst. Ich zum Beispiel weiß es nämlich nicht (was ist die Anfangshürde, die alles ins stocken bei dir bringt?). Ich weiß nur, dass es ein Problem gibt. Aber zu jedem Problem gibt es eine Lösung, siehe "Geht nicht gibt's nicht".
  10. Der wird nach einem Backtest erstellt. Die Buttons dafür befinden sich in der Auto Analysis Umgebung.
  11. Oldschuren, ich habe mir mal erlaubt, deinen Code durch Ersetzen von Mehrfachvorkommen gleicher Funktionen durch Variablen etwas effizienter zu machen. Ergebnis im Anhang. Dient nur als Beispiel, da er ja im Ursprung nicht rechenintensiv ist. Das Meiste konnte dabei bei den EMA und MA Funktionen herausgeholt werden und um 50% bis 66% gesenkt werden. Auch die eine abs Funktion konnte man sich sparen, da High minus Low immer positiv ist. ;) Unten sieht man vorher und nachher. Calls verringern sich und somit auch Zugriffszeiten. Chart template by Oldschuren.zip
  12. Hier hatte ich das Problem auch schon letztes Jahr im Okt. gelöst gehabt, habe es nur vergessen zu erwähnen. Beide Zeilen mit TimeL löschen und durch folgende ersetzen TimeL = TimeFrameCompress(ValueWhen(L == LowestSoFar, DT), inDaily ); TimeL = TimeFrameExpand(TimeL, inDaily,expandFirst ); Dann wird es auch mit Filter = 1 richtig dargestellt. Die Heatmap ist nicht schwer zu erstellen, ist mehr Fleißarbeit mit über 400 Zeilen Code. Für das Definieren der einzelnen Stunden macht man es z.B. so Time0 = Hour(); T0 = Time0 == 0; T1 = Time0 == 1; T2 = Time0 == 2; T3 = Time0 == 3; T4 = Time0 == 4; T5 = Time0 == 5; T6 = Time0 == 6; T7 = Time0 == 7; T8 = Time0 == 8; T9 = Time0 == 9; T10 = Time0 == 10; T11 = Time0 == 11; T12 = Time0 == 12; T13 = Time0 == 13; T14 = Time0 == 14; T15 = Time0 == 15; T16 = Time0 == 16; T17 = Time0 == 17; T18 = Time0 == 18; T19 = Time0 == 19; T20 = Time0 == 20; T21 = Time0 == 21; T22 = Time0 == 22; T23 = Time0 == 23; Dann folgen Blöcke, bei denen man diese Stunden oder Tagesperioden als Tagesrange definiert. Der Rest ist Copy und Paste. Meiste Arbeit kostet die Farbgebung. Filter = ... ist bei mir etwas länger als oben, da ich noch nach Kriterien ganze Woche, Wochentag oder Tag eines Monats suchen bzw ausgeben kann.
  13. Ich hatte Whipsaw gestern ein Messer an die Kehle gesetzt (hatte ich schon vor Monaten vor, war aber noch auf anderen Schlachtfeldern beschäftigt) denn das geht ja mal garnicht, dass diese in vielen Teilen überlegende Software im Technische Analyse Bereich vergraben liegt. Nachdem er nach Sekundenbruchteilen die hissen musste, habe ich ihn zu Fässer leerenden -Touren eingeladen. Play it again, Sam
  14. Ein kleiner Kritikpunkt: das Audiogeklicke im Hintergrund geht mir tierisch auf die Haselnüsse. Ist wie Tastenton beim Handy oder Fingernägel an der Tafel entlang. Wenn man sich mehrere Videos hintereinander anschaut, bekommt man akuten Ohrenkrebs. Wie hältst du das aus, Aurelius? Ehrlich gesagt, ich würe dabei wahnsinning werden. Ansonsten top
  15. Versuche mal die aktuelle Beta Version. Die ist schon stabil. Und diese hat ja nun Multithreading Support. Vorher aber trotzdem ein Backup von deinen Amibroker Formeln usw machen. Also im Prinzip ein Backup vom gesamten AB Ordner
  16. Was heißt am Anfang? Heute oder früher? Hattest du die selben Profiles? Oder ist was dazugekommen? War es eine kleinere Datenbank? Für Realtime würde ich wie schon erwähnt immer eine kleinere Datenbank (Monate) verwenden und keine, die mit Minuten- oder Tickdaten z.B. 5 Jahre zurückgeht.
  17. Um mehrere Paare gleichzeitig zu laden könntest du das verwenden http://www.tom-next.com/community/topic/58207-marktuberlick-in-einem-fenster/ oder es so machen _SECTION_BEGIN("UpdateTickers"); SetChartOptions(0,chartShowArrows|chartShowDates); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) )); Plot( C, "Close", ParamColor("Color", colorGrey40 ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); AUDUSD = Foreign ("AUD.USD-IDEALPRO-CASH", "Close"); AUDJPY = Foreign ("AUD.JPY-IDEALPRO-CASH", "Close"); CHFJPY = Foreign ("CHF.JPY-IDEALPRO-CASH", "Close"); EURAUD = Foreign ("EUR.AUD-IDEALPRO-CASH", "Close"); EURCHF = Foreign ("EUR.CHF-IDEALPRO-CASH", "Close"); EURCAD = Foreign ("EUR.CAD-IDEALPRO-CASH", "Close"); EURGBP = Foreign ("EUR.GBP-IDEALPRO-CASH", "Close"); EURJPY = Foreign ("EUR.JPY-IDEALPRO-CASH", "Close"); EURUSD = Foreign ("EUR.USD-IDEALPRO-CASH", "Close"); GBPUSD = Foreign ("GBP.USD-IDEALPRO-CASH", "Close"); GBPJPY = Foreign ("GBP.JPY-IDEALPRO-CASH", "Close"); GBPCHF = Foreign ("GBP.CHF-IDEALPRO-CASH", "Close"); NZDJPY = Foreign ("NZD.JPY-IDEALPRO-CASH", "Close"); NZDUSD = Foreign ("NZD.USD-IDEALPRO-CASH", "Close"); USDCAD = Foreign ("USD.CAD-IDEALPRO-CASH", "Close"); USDCHF = Foreign ("USD.CHF-IDEALPRO-CASH", "Close"); USDJPY = Foreign ("USD.JPY-IDEALPRO-CASH", "Close"); _SECTION_END(); Zu deiner anderen Sache. Die Prozente zeigen Zitat "AmiBroker % load is a measure of responsiveness." Hast du viele Indikatoren geladen? Müssen für diese Indikatoren zeitintensive Berechnungen durchgeführt werden? Eventuell Berechnungen für viele Bars zurück, siehe Setbarsrequired(). Du kannst auch mal einen Rechtsklick im Chart machen und Edit Formula auswählen. Im Editor gehst du dann zu Tools>Code Check & Profile. Dort siehst du dann die Ladezeiten für die jeweiligen Funktionen. Wenn dort ab zweistellige MS (Millisekunden) aufgelistet sind pro Funktion, dann ist der Code eventuell nicht optimal programmiert. Funktionen, arrays die mehrmals genutzt werden, am besten immer durch Variablen ersetzen. Das schraubt die ms mit herunter und macht den Code schneller. z.B. MyClose = Close; Oder Day0 = Day(); usw usf.
  18. Du brauchst doch nicht jedes Mal 180 Tage laden. Schau mal recht's unten im Connect Bereich. Mach dort mal einen Rechtsklick, und dann kannst du die Backfillmenge auswählen. Wenn du bereits 180 Tage geladen hast, reicht doch für zukünftiges Nachladen 1 Tag aus, wenn du einen Tag den PC ausgeschalten hattest. 180 Tage gehen bei mir auch problemlos. Wenn man viele Underlyings hat, kann der Download schon mal etwas dauern. Wenn es lädt geht das Connect Zeichen auf Farbe Aqua über, oder was auch immer für eine Farbe es ist. Wenn es fertig geladen hat, geht es auf Grün zurück. Naja und wenn die 180 Tage drinnen sind, schaltet man wie gesagt runter. Du hattest doch aber oben geschrieben, dass du eine Data base mit Daten bis 2008 hast. Was hat das denn mit IB zu tun?
  19. Da stimmt irgendetwas bei dir nicht. Ich habe pro Underlying 1 min Daten, die schon mal 14 Jahre zurückgehen. Bedeutet 900 - 1440 Datensätze pro Tag pro Underlying mal 250 Tage mal 14 gleich 3 - 5 Mill. pro Datensatz. Nehmen wir das Mittel 4 Mill mal 6 Underlyings gleich 24 Mill Datzensätze mit dieser Datenmenge. Dann habe ich noch Underlyings in der Datenbank, deren Historie nicht so weit zurückgehen. Trotz der Datenmengen läßt sich sehr gut arbeiten. Ich verwende die Final 5.3 nicht die Beta. Dass bei dir was nicht stimmt, zeigt mir deine Beschreibung vom Setzen des Cursorkreuzes. Du meinst den Button Crosshair, sicherlich? Funktioniert bei mir flüssig wie sonst bei kleinen Datenbanken auch. Dass beim erstmaligen Laden eines Underlyings minimal langsamer aufgerufen wird, ist zu verstehen. Ich weiß nicht, wie lange es bei dir dauert. Bei mir sind es beim ersten Mal so ca 1 - 2 Sekunden, wenn überhaupt. Beim zweiten Mal aufrufen ist es dann schneller im Millisekundenbereich. Auch der Scrollvorgang im Chart funktioniert trotz der Größe flüssig. Was hast du in den Database Settings bei Number of Bars eingestellt? Desweiteren, wenn Berechnungen von Indikatoren im Spiel sind, gibt es die Funktion Setbarsrequired für Skripte und DLLs. Schau mal in der Hilfe.
  20. Damals war ich noch ein blindes Dummerle. Einfach fputs( Name() + "," , fh ); "löschen". Dann wird kein Ticker reingeschrieben. fopen ist noch abgeändert für den jeweiligen Ticker. Zu exportierender Zeitraum von ... bis wird in der zweiten Zeile festgelegt. fmkdir( "C:\\Export" ); Buy = ( (DateNum() >= 1100101) AND (DateNum() <= 1200131) ); for( i = 0; i < BarCount; i++ ) if( Buy[i] ) { fh = fopen( "C:\\Export\\" + Name() + ".csv", "a"); if( fh ) { y = Year(); m = Month(); d = Day(); r = Hour(); e = Minute(); for( i = 0; i < BarCount; i++ ) if( Buy[i] ) { //fputs( Name() + "," , fh ); ds = StrFormat("%02.0f.%02.0f.%02.0f,", y[ i ], m[ i ], d[ i ] ); fputs( ds, fh ); ts = StrFormat("%02.0f:%02.0f,", r[ i ], e[ i ]); fputs( ts, fh ); qs = StrFormat("%.5f,%.5f,%.5f,%.5f,%.0f\n", O[ i ],H[ i ],L[ i ],C[ i ],V[ i ] ); fputs( qs, fh ); } fclose( fh ); } }
  21. Vielleicht deshalb, weil es Style Line und Line with dots gibt? Aber mit else klappt's ja.
  22. http://www.dotnetforab.com/ http://www.quantitativetradingsystems.com/index.html http://www.amibroker.org/3rdparty/ http://www.aflwriting.com/ http://www.aussiestockforums.com/forums/forumdisplay.php?f=24 http://amibrokerfan.com/index.php?option=com_smf&Itemid=28&board=5.0 http://systems4trading.com/systems.php?software=AmiBroker&page=1&page=2&page=0 http://translate.google.com/translate?hl=en&ie=UTF-8&u=http://www.amisite.ru/phpBB2/index.php http://translate.googleusercontent.com/translate_c?hl=en&ie=UTF-8&u=http://www.amisite.ru/afl/ind/ind.htm&rurl=translate.google.com&twu=1&usg=ALkJrhglA_nV4SlBqRAd1Grji8W-efq_yw http://www.amibrokerforum.com/index.php?PHPSESSID=7aa9b7692b5492b7162aba49b5628798&
  23. @TolliMolli, ist zwar schon lange her, aber mit AddtoComposite() wäre das möglich. http://www.amibroker.com/guide/afl/afl_view.php?addtocomposite http://www.amibroker.com/guide/a_addtocomposite.html http://www.amibroker.org/3rdparty/IntroToAtc.pdf Beispiel weight = 10; // default weight if( Name() == "MSFT" ) weight = 20; if( Name() == "AAPL" ) weight = 5; if( Name() == "INTC" ) weight = 15; /// and so on. AddToComposite( weight * Close, "~MyComposite", "X" ); Plot ( Foreign("~MyComposite", "X"), "MyComposite", 6, 1); http://www.wisestocktrader.com/indicators/119-weighted-index
  24. Oldschuren, mir fiel gerade noch eine andere Funktion ein. Versuche mal Getpricestyle() Also in etwa wie gps = GetPriceStyle(); choose = ParamToggle("Charttypabhängigkeit?", "Yes|No"); if(choose == 0){ if(gps == styleBar){ Blablabla; } else if (gps == styleCandle){ Blablablubb; } else if (gps == styleLine) { blablaschubidu; } }
  25. Ok, jetzt ist es klarer. Die Festlegung, wann dein Grid nicht gezeichnet werden soll, geht z.B. so: Gridi = Interval(); if(Gridi >= 86400){ Grid = 0;} 86400 wären Sekunden, also Timeframe größergleich 1 Tag. Wenn du es nur bis zum 5er machen willst, dann if(Gridi > 300) Die Auswahl von Line, Bar und Candle könntest du doch über Paramlist und die daraus folgende Unterscheidung machen, oder?

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.