Einloggen Suche | Aktive Themen
Schlechte Programmierung von Beispielen durch Lenz+Partner Optionen
chuck
Geschrieben: Thursday, December 22, 2011 4:51:22 PM

Gruppen: Kunde

Beiträge: 167

market maker
An das Marketmaker Team,

in 08/2010 wurde von Lenz+Partner das Upgrade von 4.0 auf 4.2 durchgeführt, deren Neuerungen großmundig als Highlights angekündigt wurden.

Zu dem Thema neue Indikatoren, insbesondere zu der unflexiblen Programmierung der Goerke Makros, habe ich mich vor einiger Zeit in einer Mail an Lenz+Partner schon einmal ausführlich kritisch ausgelassen.

Inzwischen habe ich mir einmal flüchtig die von Ihnen bereitgestellten Handelssysteme auf die Standardindikatoren (nicht Candlestick Formationen) angesehen. Dabei werfen sich bei mir 2 Fragen auf:

1) Welche Qualifikation haben die Ersteller dieser Formeln?

und

2) Führt Lenz+Partner vor der Freigabe dieser Lieferanteile eine Qualitätskontrolle aus?

An Hand von 2 Beispielen aus den von Ihnen gelieferten Auswertungen / Handelssystemen möchte ich aufzeigen, warum sich diese Fragen jedem der sich mit MM-Talk beschäftigt, aufdrängen.

1.) Handelssystem AD-Linie
Hier die ersten 3 Zeilen aus der Formel:
$wp:=Wp[];
$c:=$wp.close;
$adline:=$wp.AdvanceDeclineLine[$Zeitraum; $Startdatum];

a) Die in Zeile 2 berechnete Variable $c wird für den weiteren Verlauf des Handelssystems überhaupt nicht benötigt und taucht nach deren Berechnung überhaupt nicht mehr in der Formel auf. Sie kostet nur Rechnerzeit und Zugriffszeit auf die Platte und kann ersatzlos gestrichen werden.

2.) Handelssystem Aroon(14)
Dort sind mir mehrere Fehler aufgefallen, die so nicht passieren dürfen.

a) Wenn Sie sich den Signalchart des Handelssystems und dort das Fenster des Aroons ansehen, wird Ihnen sicherlich auffallen, dass der dort dargestellte Aroon nur den Wertebereich zwischen 7 und 100 einnimmt. Der Wertebereich des Aroon ist jedoch von 0 bis 100.
Den Fehler in Ihrer Programmierung des Handelssystems aufzuzeigen ist unnötig, da ich Ihnen am Ende ein einfacheres und im Intervall des Aroon variable Variante dieses Handelssystems zeigen werde.

b) Der Aroon arbeitet, so ist es in Ihrer Definition für diesen Indikator festgelegt, mit High und Low Kursen und nicht mit dem Close Kurs für das Periodenmaximum und -minimum, wie Sie es im Handelssystem programmieren.

c) Es gibt keinen vernünftigen Grund den Aroonup und Aroondown in der von von Ihnen dargestellten Weise aus den Close Kursen zu berechnen, wenn der vorhandene Indikator Aroon diese beiden Zeitreihen schon liefert, und dabei auch noch variabel im Zeitintervall ist und dann auch noch das korrekte Intervall von 0 bis 100 anzeigt.

Damit ist auch die von Ihnen gemachte Aussage im Kommentar des Handelssystems -

"{Der Indikator Aroon 14 als Handelssystem (Zeitraum ist mit MMTalk nicht variabel - geht leider z. Z. noch nicht anders)}"

- ad absurdum geführt.

Hier nun das versprochene einfachere Handelssystem mit variablem Aroon Intervall.

Code:
$Aroon:=close.Aroon[$AroonZeitraum];      {Den Indikator Aroon berechnen}

{Die beiden Linien des Aroon auf 2 Variablen separieren}
$aroonup:=.Aroon.lineget[0];
$aroondown:=.Aroon.lineget[1];

{Der Rest ist wie in Ihrem Handelssystem}
$aroon:=$aroonup.linesmulti[$aroondown];

$linien:=$aroon.hl[$Level_unten;$Level_oben];
$long:=$aroonup>$aroondown
  and
$aroonup>$Level_oben;
$short:=_;
$closelong:=$aroondown>$aroonup
  and
$aroondown>$Level_oben;
$closeshort:=_;
$signalmodus:=2;

HandelsSystem[
$Linien;
$Long;
$Short;
$CloseLong;
$CloseShort;
$SignalModus;
$Leerverkäufe_einbeziehen;
$Spesen;
$Losslimit]


Was der Verfasser wohl in seinem Kommentar in den ersten beiden Zeilen verdeutlichen will, ist, dass er in MM-Talk keine Schleifen programmieren kann, und er deshalb eine feste Anzahl von If-Abfragen (entspricht der Intervallgröße) in seiner Berechnung für die beiden Zeitreihen des Aroon benutzt.

Und genau das zeigt die mangelnde Kenntnis in MM-Talk, die ich von einem Mitarbeiter des Systemhauses nicht erwartet hätte.

In vielen Programmiersprachen wird die Schleifenkonstruktion/Kontrollstruktur

For Zähler = Start to End Step n

bei der der Startwert, die Schrittweite und der Endwert, bzw. die die Anzahl der Durchläufe bekannt sein müssen, statt der von MarketMaker im Handelssystem verschachtelten If-Konstruktion verwendet.

Und genau diese Kontrollstruktur lässt sich auch in MM-Talk mit Listenfunktionen realisieren. Hier die entsprechende Formel eines Makros, das aufzeigt, dass ein variabler Zeitraum, bei dem von Lenz+Partner vorgeschlagenen Berechnungsweg, doch in MM-Talk zu realisieren ist.

Code:
{Dieses Makro berechnet in Abhängigkeit von $Periodenmaximum den Aroonup
oder den Aroondown.

Das Makro wird folgendermaßen aufgerufen:
Aroonup:=$Close.Makroname[$Aroonzeitraum];"Ja"];  bzw.
Aroondown:=$Close.Makroname[$Aroonzeitraum];"Nein"];

Dabei ist $Aroonzeitraum im Makro als Zahl und $Periodenmaximum als Boolean
zu definieren

-------------------------------------------------------------------------}

$Close:=object;    {Eingabezeitreihe retten}

{Auswahl ob das PeriodenMaximum oder -minimum berechnet werden soll.}
$P_MinMax:=if($Periodenmaximum="Ja";
              $Close.periodenmaximum[$Aroonzeitraum];
              $Close.periodenminimum[$Aroonzeitraum]);

{Aroon Intervallwert nicht gerundet.
Wird der Wert in der Klammer auf  $Aroonzeitraum-1 gesetzt, dann ist der Wertebereich des Aroon von 0 bis 100.}
$Ar_IntWert:=100.div[$Aroonzeitraum{-1}];

{Hilfsliste von 0 bis $Aroonzeitraum-1}
$HL:=($Aroonzeitraum).makelist;

{über alle Werte der Eingangszeitreihe}
#[]($PM:=object;         {Wert des jeweiligen Perioden Min/Max}
    $Dat:=$PM.datum;     {Datum des jeweiligen Perioden Min/Max}
    $HL1:=#[](if($Close.at[$Dat.addworkingdays[-object]]=$PM;
              100.minus[$Ar_IntWert*object].roundn[0];
              0)
             ).map[$HL];
    $Wert:=NA;
    $HL2:=#[]($Wert:=if(object>$Wert;object;$Wert);
              $Wert
              ).map[$HL1];
    $HL2.nth[$Aroonzeitraum-1]
    ).mapz[_;_;_;$P_MinMax]


Ich frage mich, wie ein Anwender die Programmierung von eigenen Indikatoren und Auswertungen in MM-Talk lernen soll, wenn die Beispiele von Marketmaker solche Fehler und falsche Aussagen enthalten, und diese somit nur begrenzt als Anschauungsbeispiele herhalten können. Auch der Part MM-Talk in der Benutzerdokumentation ist oft nicht sehr hilfreich, da die Beschreibungen der Funktionen sehr kurz und deshalb oft unverständlich sind und aussagefähige Beispiele fehlen.

Dies ist eigentlich sehr schade, da MarketMaker mit MM-Talk ein sehr mächtiges Werkzeug zur Analyse von Wertpapieren ist. Natürlich ist auch MarketMaker und MM-Talk noch verbesserungsfähig (z.B. Schnittstelle zu Online-Brokern, die Möglichkeit Price Level Profile (auch aus einem Makro heraus) darstellen zu können, oder die Möglichkeit Funktionalitäten aus anderen Applikationen zu nutzen).

Ich hoffe dass Lenz+Partner diese Kritik zum Anlass nimmt, künftig auch ein besseres Augenmerk auf die Qualität der mitgelieferten Beispiele zu haben, und auch die Benutzerdokumentation auf einen Stand zu bringen (Vollständigkeit und Verständlichkeit), so dass sie dem Nutzer auch hilfreich ist.

Trotz der obigen Kritik wünsche ich dem Lenz+Partner Team ein frohes Fest, ein paar besinnliche und erholsame Tage und einen guten Start ins Neue Jahr.

Mit freundlichen Grüßen
Marcus Lieck
Geschrieben: Thursday, December 22, 2011 5:24:56 PM

Gruppen: Mitarbeiter

Beiträge: 470

Tai-Pan RealtimeTai-Pan End-of-Daymarket makerbis. Realtime-Terminal
Hallo Chuck,

Die Formeln die wir mit der Version 4.2 herausgegeben haben dienen gerade im Bereich der Handelssystem den Usern als Anschauungsobjekt.
Schaut man sich Ihre Aroon Formel an und die von uns ausgelieferte, ist unser Beispiel sicherlich einfacher nachvollziehbar was die Programmierung betrifft.
Des Weiteren hat sich die MMTalk Formelsprache in den letzten Jahren immer weiterentwickelt und somit sind mehr Möglichkeiten in der Programmierung gegeben worden.
Einige der gelieferten Formeln entsprechen noch den Anfangsformen von MMTalk, um unseren Kunden die Grundlagen der Programmierung aufzuzeigen ohne zunächst zu sehr in die Tiefe zu gehen.
Bei den Indikatoren von Herrn Goerke handelt es sich um seine eigenen Selbstentwickelten Formeln.
Diese haben wir unverfälscht an unsere Kunden herausgegeben.
Sicherlich hatte ein Profi in der MMTalk Programmiersprache die Formeln anders gestaltet, jedoch sollen unsere Kunden nachvollziehen wie Herr Goerke seine Formeln in Market Maker umgesetzt hat.
Die Dokumentation im Bereich der Formelsprache MMTalk ist sicherlich verbesserungswürdig.
Wir werden die Entwicklung darauf hinweisen diesen Bereich in Zukunft genauer ins Auge zu fassen.

Auch Ihnen wünsche ich im Namen der Belegschaft von Lenz + Partner schöne Feiertage und einen guten Rutsch ins neue Jahr.

Mit freundlichen Grüßen
Marcus Lieck

Leiter Produktsupport | Lenz+Partner GmbH | vwd group
Phone: +49 231 9153-500 | Fax: +49 231 9153-599
hotline@lp-software.de | www.LP-software.de | www.vwd.com
Benutzer die diese Diskussion aktuell lesen
Guest

Powered by Yet Another Forum.net version 1.9.1.8 (NET v4.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.

Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zum Datenschutz finden Sie hier