Frage

Ich arbeite für eine Boutique in Finance spezialisiert.

Wir dachten über die Sprache der Gestaltung Finanzunternehmen für die Finanzmärkte im Zusammenhang zu beschreiben.

Dies würde in erster Linie als eine Art Skriptsprache verwendet werden, um viele Prozessabläufe in Tabellen und VBA-Makros zu ersetzen.

Es muss einfach sein und es hat in der Tat verschiedene C nennen ++ und C # -Bibliotheken hinter den Kulissen. Es hat Benutzer abstrakt lassen behandeln Objekte, die Zeitreihe darstellen könnte (Intraday und täglich).

Es hat voll debug sein, wenn ein Benutzer ein Problem hat, müssen wir in der Lage sein, in dem C ++ / C # -Code zu treten und die Fehler zu reproduzieren. Im Idealfall hat es in der Lage sein, über einen Mechanismus in Excel und gibt die Ergebnisse in Excel gestartet werden. (Leider fast jeder Mensch in Finance arbeitet mit Excel)

Wenn Sie hatte diese Aufgabe zu tun, wie würden Sie es gehen über?

Möchten Sie gehen für eine funktionelle Syntax?

Möchten Sie eine Skriptsprache entwickeln, die interpretiert werden oder würden Sie es in einer anderen Sprache kompilieren (wie die Skripte in C ++ konvertieren oder C #)?

Ich fand keine Open-Source-Projekt für diese Art von Entwicklung, aber gibt es eine kommerzielle Produkt dieser Art von Syntax?

EDIT: Ich lese alle Ihre Antworten, aber ich werde mehr Zeit warten, bevor eine Antwort auszuwählen. Sie sind alle sehr nützlich Meinungen aber!

EDIT2: Ich markierte Hochleistungs-Mark als Lösung. Alle Ihre Antworten sind sehr nützlich, und ich habe alle von ihnen bis modded. Er war einer der ersten Antworten und seine Antwort ist recht aufschlussreich für uns.

War es hilfreich?

Lösung

Ich schlage vor, dass Sie sich auf die Entwicklung eines umfangreichen Satz von Klassen in Ihrer bevorzugten Sprache OO konzentrieren (entweder C # oder C ++, obwohl ich Sie vermuten, finden könnte es einfacher, die erstere mit Excel zu integrieren). Das würde Sie Ihre Sprache Finanzunternehmen für die Finanzmärkte im Zusammenhang zu beschreiben. Wenn Sie das getan haben, sollten Sie prüfen, ob diese Klassen in einigen Domain Specific Language wickeln, um fortzufahren, oder einfach in Ihre Benutzer-Community zu belichten.

Ich vermute, dass Ihre Domain einig irreducable Komplexität hat und dass ein Zwischen DSL muss (fast) so komplex wie Ihr Satz von Klassen und das sein, also Sie wenig, indem sie zu gewinnen haben.

Ein weiterer Ansatz wäre Excel mit Mathematica zu integrieren, für den Wolfram eine Toolbox von einer Art produzieren. Ich habe keine Erfahrung davon, aber Mathematica ist sicherlich geeignet für jede der Berechnungen, was Sie tun müssen.

Viele Grüße

Andere Tipps

Ich würde die C ++ Bibliotheken in Python wickelt.

würde ich ein Paket von fließend Klassen definieren, die - in der Tat -. Waren meine domänenspezifische Sprache

würde ich die Sprache Python direkt auf diesen beiden Grundlagen basiert. Ich würde meine eigene neue Syntax nicht erfinden. Die Welt braucht keine andere Syntax; wir haben Syntax und Grammatiken genug, um zu analysieren, reicht bis zum Ende der Zeit dauern.

Sind Sie für eine funktionelle Syntax gehen? hat Python funktionale Fähigkeiten. Wenn Sie mit Ihrem Python-Klasse Design vorsichtig sind, können Sie einen sauberen funktionalen Stil erreichen.

Im Idealfall muss es in der Lage sein, über einen Mechanismus in Excel gestartet werden und die Ergebnisse in Excel zurück.

Da das Python-Interpreter in einer C ++ eingebettet werden (oder C #) Anwendung, können Sie einfach Excel-API erstellen. Von Excel zu Ihrer neuen Sprache, tun so wenig wie möglich in dem C ++ API, um die Python-Funktionalität zu initiieren.

BTW, die Konkurrenz ist Resolver One . Dies ist, was sie tun.

ResolverOne ( http://www.resolversystems.com/products/resolver-one/ ) ist eine Kombination von Excel und Python. Haben Sie darüber nachgedacht, dass mit?

Ich würde empfehlen, mit R .

Ein weiterer Gesichtspunkt, die c # nutzt.

Wie Sie haben bereits ein leistungsfähiges Allzweck-funktionales Programmiertool Ihre Benutzer vertrauen und in der Form von Excel kauften ich aussehen würde, eine Lösung um das zu bauen. Sie erhalten immer noch die Option, die Art und Weise der Lage zu sein, andere 3rd-Party-Add-ons und integrierte Optionen zu verwenden (zum Beispiel R und Mathematica)

Ich würde schauen in Managed Automatisierungs-Add-In für User Defined Functions . Diese sind im Wesentlichen c # -Bibliothek Projekte, die die System.Runtime.InteropServices verwenden, wie in diesem Artikel beschrieben link text . Um die Benutzer diese Funktionen auf Zellebene in gewohnter Weise mit dem Funktionsassistenten hinzugefügt und können mehr oder weniger sein, was Sie wollen, dass sie zu sein. Das ist dann Ihr DSL. Benutzer können wählen, um die Funktionalität in ihren bestehenden Modellen leicht zu integrieren. Es wäre auch schnell sein, etwas zum Prototyp die Machbarkeit dieses zu testen. Diese sind voll debug.

Zusätzlich Visual Studio Tools für Office verwenden Sie die vollständige Objekthierarchie Excel zugreifen können und sogar Aktion Scheiben hinzufügen, die per Drag & Drop Steuerelemente für komplexere Dateneingabe Anforderungen angelegt werden kann. Ich glaube, dass es sogar möglich ist WPF auf diese Weise mit Excel zu verwenden, wenn Sie spezielle Visualisierungen hinzuzufügen, benötigt. Wenn Sie Daten erforderlich zurück zu beharren SQL Server zu sagen, dass Sie eine Umdrehung um die Validierung Form mit diesem Ansatz aufbauen könnten.

Ich klinge wie ein M $ shill! (Einfach die Sache richtig stellen ich für sie nicht funktionieren).

Sie müssten die Leistung dieser bewerten, und ich bin nicht sicher, wie es wäre zu skalieren.

Simon Peyton-Jones von Haskell Ruhm trug zu einem Papier ‚Composing Verträge: ein Abenteuer im Financial Engineering‘, die diskutiert, wie funktionale Sprachen selbst verliehenen ausführbare Beschreibungen von Finanzderivatkontrakten zu komponieren. Ein solches Verfahren mit F # möglich sein sollte.

Ich glaube, dass das Angebot von LexiFi richtet einige dieser Forschung zu kommerzialisieren.

Jane Street Capital nutzt OCaml und schrieb auf ihre Erfahrungen hier . Es ist ein ziemlich interessant, wenn breite lesen.

Für Ihre Umgebung, wenn Sie ihr Modell gefolgt, könnten Sie ein href verwenden <= "http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/" rel = "nofollow noreferrer" > F # , die das Leben als OCaml Dialekt begann, läuft aber in der .NET-Welt, das natürlich.

Wenn die zugrunde liegende Bibliothek verwendet Java Sie machen einen DSL in Groovy einen Blick nehmen. Es gibt eine Reihe von Podcasts und Artikel darüber, versuchen Sie „DSL Groovy“ googeln.

Die meisten Nummer-Knirschen Finanzinstitute (oder Abteilungen darin) bereits Matlab-Lizenzen erworben. Ich empfehle Sie, einen Blick auf den objektorientierten Einrichtungen von Matlab angeboten nehmen (und in der Tat an ihrem Finanz Toolbox ).

Auf Front Ich glaube, Sie drei Dinge gewinnen:

1) Der Zugang zu einem High-Level-Umgebung, in der Benutzer auf das Problem und nicht auf die Umsetzung konzentrieren können 2) Verfügbarkeit von qualitativ hochwertigen Grafiken 3) Nahtlose Integration mit Excel und anderer Produktivität Paketen

Ich weiß, Sie bedeuten eine Sprache zu entwickeln (im Gegensatz zu einer Anwendung im Gegensatz), sondern betrachten Sie Ihre Semantik zu einem gut kennen sprechen Schweinchen sichern -. Diese Weise können Sie die Lernkurve für die Benutzer vermeiden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top