Schnelleren MA programmieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.
Kennt sich Jemand mit dem Proggen von eigenen Indikatoren aus? Hab ne Idee, wie man den MA viel schneller machen könnte. Hab mich aber noch nicht viel damit befasst. Eigentlich scheint es einfach zu sein: Normalen MA benutzen. Kurs minus MA rechnen. Diesen Abstand durch die Perioden-Zahl des MA teilen. Also z.B. bei nem MA auf 10 Perioden Abstand zwischen Kurs und MA durch 10 teilen. Ergebnis vom Kurs abziehen. Das müsste es eigentlich gewesen sein. Dürfte nich allzu schwer sein. Aber ich kenn mich mit dem Gestalten eigener Indikatoren leider gar nicht aus. :( |
Zitat:
Läuft der MA zu langsam, dann solltest Du lieber Deinen PC aufpeppen, denn an den Code gibt es nichts groß zu optimieren. Und wenn Du die Sprache MQL4 verstehen würdest, hättest Du Dein Post nicht geschrieben. traderdoc |
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Wenn ich wüsste, wie man nen eigenen Indi macht, dann bräuchte ich allerdings nicht fragen. Also wie kann man die MAs nach dem eigenen Weg berechnen lassen? |
Ich weiss nicht, was bei Dir da träge laufen soll?
Bei mir laufen die wie geschmiert. Und wie man einen Indikator programmiert? Nun, dann schau Dir doch einfach den von Dir angehängten Indi an. Damit hast Du doch schon alles, was man braucht. traderdoc |
Kann es sein das Ihr von unterschiedlichen Dingen redet? Traderdoc redet von Performance und so klingt die Frage auch.
Oder meinst du mit "schnell" etwa, dass der MA dem Kurs näher hinterherläuft? Falls ja mach die Periode kürzer oder nehme einen gewichteten MA der nennt sich EMA. C$D |
Liste der Anhänge anzeigen (Anzahl: 1)
Das scheint die Berechnung des SMA zu sein.
Code:
//--- main loop Edit: Zitat:
|
Liste der Anhänge anzeigen (Anzahl: 2)
Hab mal versucht, nen EA entsprechend zu proggen. Ist im Anhang. Hab ihn aber noch nicht getestet...
Wär nicht schlecht, wenn man seine "UD"-MAs mal in nem Chart sehn könnte. Deklarationen des normalen MA: Code:
extern int Fast_MA_Period=3; Code:
double Fast_MA_B1=iMA(Symbol(),Timeframe,Fast_MA_Period,Fast_MA_Chart_Shift,Fast_MA_Method,PRICE_CLOSE,1); Code:
double CP1_FMAB1 = CP1 - Fast_MA_B1; |
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.
Theoretisch ist einfach:Einfach die Werte des Kurses und der MAs durch den selben Wert teilen. Eigentlich müssten sie in diesem EA 7 mal so schnell sein. Aber wie gesagt dachte ich schon oft, es wäre einfach... Hab den EA im Anhang ein paar Stunden getestet und schien nicht schlecht zu laufen. Wär nicht schlecht, wenn Jemand einen ensprechenden Indikator proggen könnte. Der müsste dann aber wahrscheinlich nen seperates Fenster haben weil man meine dividierten MAs im normalen Chart vermutlich nicht sehen kann. |
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
So, und nun kannst Du darüber nachdenken, wieso solch ein Ergebnis zustande kommt :p AVT |
Liste der Anhänge anzeigen (Anzahl: 2)
Dankeschön. Aber die Abstände zwischen Kurs und MAs zu verkürzen, war vermutlich nicht gut.
Aber Alles durch den selben Wert zu teilen und die Ergebnisse als Kurven in nem extra Fenster anzuzeigen, dürfte eher sinnvoll sein. Wär echt dankbar, wenn Jemand nen entsprechenden Indi proggen würde. Oder wenn Jemand erklären könnte, wie ich den schon vorhanden MA-Indikator entsprechend ändern kann. |
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Viel Spass damit ;) |
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.
Danke vielmals für den Indi. Leider hatte ich mir das ein bißchen anders gedacht. ;) 1. Die Geschichten für Bar0 können komplett raus. Sind überflüssig. Kurz gesagt: Die Kurven für Bar1 reichen. 2. Muss der ganze Indi in nem extra Fenster angezeigt werden. Die Werte sind so klein, dass man sie im normalen Chart gar nicht sehn kann. Funktioniert ansonsten aber genau, wie ichs mir vorgestellt hab. Die Werte im Datenfenster sehn gut aus. Er scheint gute Trends mit zu nehmen, scheint aber auch nicht zu früh zu reagieren. :cool: 3. Man kann ClosePrice und die 3 MAs durch den selben Wert dividieren lassen. Wär aber nicht schlecht, wenn man zusätzlich noch mal -ClosePrice -Fast-MA -Middle-MA durch einen anderen Wert teilen und die entsprechenden Kurven auch im Indikator-Fenster sehn könnte. Das wär echt gut. Ich glaube, das Ganze könnte profitabel sein. Man hat die Glättung der MAs, aber viel weniger Verzögerung. Muss aber natürlich Alles ausgiebig getestet werden. |
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Du kannst jetzt immer nur einen Indikator verwenden, da bei unterschiedlichen..._Div Werten nur der kleinste Wert im Chart korrekt angezeigt wird. Alles oberhalb, ist dann als gerade Linie sichtbar. Aktivierung Indikator durch ..._Div > 0.0 |
Liste der Anhänge anzeigen (Anzahl: 1)
Danke erneut für Deine Arbeit. ;)
Könntest Du es einrichten, dass der Indikator ein extra Fenster hat? Wie z.B. der CCI: Code:
#property indicator_separate_window |
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Liste der Anhänge anzeigen (Anzahl: 1)
Ist im Anhang.
Aber mein Div-MA-Indi braucht die denk ich mal nicht. :confused: Hab bloß gefragt, weil der CCI die anscheinend braucht. Keine Ahnung. :confused: Warum werden hier eigentlich immer aus einer Leerzeile zwei gemacht beim Abschicken? :confused: :rolleyes: |
Zitat:
Der CCI-Ind schon, weil die SimpleMA-Funktion darüber geladen wird. |
So, was ist denn nun herausgekommen?
V.a. würde mich interessieren, was genau den Geschwindigkeitszuwachs bringen soll und ob der überhaupt notwendig ist. traderdoc |
Liste der Anhänge anzeigen (Anzahl: 2)
Bei 3 MAs ist höhere Geschwindigkeit auf jeden Fall nötig. :rolleyes:
Hab das Alles noch nicht viel getestet. Ich glaube, SMA 5 8 20 mit nem Divisionsfaktor von ich glaube 8.0 haben nicht schlecht funktioniert. Aber es muss auf jeden Fall noch Feinschliff her. Ach ja, wo ich das Gerät schon hochlade: Ich wollte mit vertikalen Linien im Chart Ein- und Ausstiege markieren, um einfacher sehn zu können, was der EA eigentlich macht. Aber irgendwie werden die nicht erstellt. :( Ist ganz unten, nach OrderClose. |
Also mir erschließt sich der Nutzen nicht, außer man nutzt ein Notebook aus den 1990ern
|
Zitat:
traderdoc |
Es geht wohl um die Reaktionszeit des Indis und nicht um die Performance schätze ich.
Falls es doch um Performance geht gilt sowieso der Klassiker: Premature optimization is the root of all evil -- Donald Knuth |
Naja, die Reaktionszeit unterliegt der Volatilität und Volumen des Underlyings, es ist nicht möglich die Reaktionszeit der Indis zu erhöhen, wenn der Basiswert lauwarm vor sich hindümpelt.
Da hilft nur auf Extrem-Exoten auzuweichen, die mehrere hundert Pips pro Tag machen wie USDCNH etc. oder halt auf "Naked Price Action" |
Nun, ich verstehe auch nicht, was es da zu beschleunigen gibt.
Der Tick kommt rein, der Indikator verarbeitet den Wert und korrigiert den Indikatorwert - fertig! traderdoc |
Hypothetisch: Wenn man OHLC handelt könnte man auf jeden Tick verzichten und die Werte zum Ende einer Kerze wegspeichern (GlobVar) dann würde es z.B nur jede Std via Zeitsteuerung ein Update der Indikator brauchen.
Aber das ist in diesem Thread sicher nicht gemeint. Und vielleicht liegt das "Performanceproblem" an anderer Stelle - denn langsame Indikatoren gibt es nicht, schlecht geschriebenen Code schon. Wie auch immer, wir sind bzgl Sinnhaftigkeit synchron. |
Liste der Anhänge anzeigen (Anzahl: 1)
Ach ja, wo ich das Gerät schon hochlade: Ich wollte mit vertikalen Linien im Chart Ein- und Ausstiege markieren, um einfacher sehn zu können, was der EA eigentlich macht. Aber irgendwie werden die nicht erstellt. :( Ist ganz unten, nach OrderClose.[/QUOTE]
Die vertikalen Linien sind eingefügt. Probier es mal aus. |
Liste der Anhänge anzeigen (Anzahl: 1)
Du kannst Dir auch mal den Double Exponential Moving Average Indikator (DEMA) ansehen.
|
Zitat:
Ich wollte nur mal am Rande daran erinnern, dass es in diesem Thread um o.g. Eingangspost ging und nicht um irgendwelche vertikalen Linien. Möge sich also @MA-EA mal konkret äußern, was ihm denn an dem Standard-MA zu langsam erscheint. traderdoc |
So, ich habe mir das nochmals durchgelesen,
"Normalen MA benutzen. Kurs minus MA rechnen" (Welcher MA ist der normale MA? MA - Kurs(Ask,Bid?)....) Wenn der normale MA angeblich so langsam ist, dann wäre JEDE Neuberechnung basierend auf den "normalen MA" auch wieder langsam! Und überhaupt, ein SMA ist eigentlich der schnellste Indikator nach Price Action (SMA1 = PA) kein anderer Indikator ist schneller! Der Fehler sitzt definitiv zwischen den Ohren, ist nicht böse gemeint, ;) cheers! |
MA langsam oder schnell?
Gleitende Durchschnitte reagieren immer erst mit einiger Verzögerung auf Trendwechsel im zugrundeliegenden Kurs. Patrick Mulloy, der Entwickler des DEMA, versuchte deshalb einen Durchschnitt zu kreieren, der genau diese Verzögerung minimiert. Der Double Exponential Moving Average (DEMA) ist ein technischer Indikator, der aus zwei exponentiellen gleitenden Durchschnitten (EMA) gebildet wird. Der Link dazu: https://tradistats.com/double-expone...-average-dema/ |
Zitat:
Ich sag mal so, solange hier keine Klarheit herrscht, was nun genau mit Geschwindigkeit gemeint ist, außer dem Quotient aus Weg und Zeit, wird das nix Konkretes mehr werden. @MA-EA ist gefragt. traderdoc |
Zitat:
|
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo.
Er öffnet zwar nen extra Fenster, aber von den dividierten MAs ist überhaupt nix zu sehn. Auch nicht im Datenfenster. Werden da zwar aufgelistet, aber es stehn keine Werte daneben. 4 Buffer reichen eigentlich. 1. Dividierter ClosePrice 2. Dividierter Fast MA 3. Dividierter Middle MA 4. Dividierter Slow MA Die vier sollen jeder durch den Wert, den man ja jeweils eintragen kann geteilt werden. Die Ergebnisse sollen alle im Unterfenster als Kurven angezeigt werden. Also z.B.: Code:
extern double DivisionsWert = 10.0; |
Warum komm ich da nicht gleich drauf:
Wie bei "normalen" MAs zählt man einfach die ganzen gewünschten Werte der gewünschten Kerzen zusammen. Aber statt das Ergebn. wie üblich durch die Anzahl der zusammen addierten Kerzen zu teilen, teilt man es einfach durch eine viel größere Zahl. Z.B. bei nem 10er MA dividiert man das Ergebnis nicht durch 10, sondern durch 100 oder durch 55,9 oder was auch immer. Dürfte für Jemanden, der Indikatoren proggen kann, nicht allzu schwierig umzusetzen sein. ;) Hab noch mehr Ideen, wie man MAs verändern und vielleicht "besser machen" könnte, dazu aber vielleicht ein anderes Mal mehr. :cool: |
Zitat:
122+123+125+126+129 = 625 der aktuelle Kurs ist also 129. 625 / 5 = 125 (normaler SMA) 625 / 20 = 31,25 (weit weg vom Kurs) 625 / 50 = 12,50 (weit weg vom Kurs) |
@MA-EA, ich weiß einfach nicht, wo das noch hinführen soll.
Deine letzte "Idee" zur "Verbesserung" der MAs zeigt mir wieder, dass Du leider grundlegende Zusammenhänge nicht verstanden hast. D.h. Deine weiteren Ideen sollten ausschließlich in Richtung Aneignung von Grundwissen gehen, bevor Du hier weiter postest. Sonst ist das für alle nur Zeitverschwendung. traderdoc |
Das Rätsel im Thread ist noch immer warum, was und wozu schneller?
-Der MA wegen der lahmen Vola, er möge sich doch schneller bewegen? -Der MA rechnet z.B. eponetiell zu langsam? -Oder weil vergangene Daten mathematisch in einen anderen weiterhin vergangenen Zustand transformieren... Die Lösung ist! Einfach SMA 1 verwenden, schneller geht es nicht, das ist Visualisierung von Price Action. Oder das Notebook/PC aus den 90ern endlich der Mülldeponie, Abteilung Elektroschrott zuführen und sich einen schnelleren Rechner zu Weihnachten wünschen. |
Zitat:
Also müsste man irgendwie die Kombination von CP und schneller berechnetem MA zu nem Indikator machen. Und könnte dann wie bei einfachen MAs Mehrere davon mit je anderer Periode auf einen Chart legen. :confused: |
Vielleicht
( ClosePrice + MA-Wert ) / 10,9 oder 99,1 oder was auch immer. Daraus nen Indikator mit extra Unter-Fenster machen. Dann bräuchte man allerdings bei jedem davon den selben Divisions-Wert und könnte den originalen ClosePrice nicht verwenden. |
Die Sinnhaftigkeit dieser Formel entzieht sich mir.
Was soll schneller gemacht werden? -Die mathematische Berechnung des Moving Average? -Die Reaktionsgeschwindigkeit des MA? Es ist doch völlig egal, da es immer die gleichen vergangenen Ausgangdaten sind!!! Ob man diese Daten nun exponetiell, einfach, stochatisch oder mit Brownscher Bewegung verarbeitet, die Ausgangslage sind immer veraltete Daten! Diese werden mathematisch umgeordnet/berechnet und neu dargestellt, es sind und bleiben trotzdem die gleichen alten veralteten Daten als Basis! Das "genetische" Datengrundmaterial ist immer das gleiche! Nämlich veraltet! Kein Indikator kann in die Zukunft blicken, nur eine Weiterführung eines Trends annehmen, nicht beweisen! Einzig "predictiv" arbeitende Indikatoren haben eine bessere, höhere Trefferquote, solche predictiv rechnenden Indikatoren verwenden aber keine Moving Averages sondern echte Price Action Daten, auch aus der Vergangenheit, aber reine unverfälschte Daten, was dann als Code so aussieht: PHP-Code:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 23:46 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum