Question

Je travaille pour une boutique spécialisée dans la finance.

Nous avons pensé à la conception d'un langage pour décrire les entités financières liées aux marchés financiers.

Ce serait principalement utilisé comme une sorte de langage de script pour remplacer un grand nombre de processus dans l'exécution des feuilles de calcul et des macros VBA.

Il doit être simple et il a, en fait, d'appeler divers C ++ et C # bibliothèques dans les coulisses. Il doit permettre aux utilisateurs de manipuler des objets abstraitement ce qui pourrait représenter des séries chronologiques (intraday et par jour).

Il doit être entièrement débogable, lorsqu'un utilisateur aura un problème, nous devons être en mesure d'intervenir dans le C ++ / C # code et reproduire les bugs. Idéalement, il doit pouvoir être lancé via un mécanisme d'Excel et de retourner les résultats dans Excel. (Malheureusement presque toutes les personnes travaillant en Finance utilise Excel)

Si vous deviez effectuer cette tâche, comment feriez-vous à ce sujet?

Voulez-vous aller pour une syntaxe fonctionnelle?

Pourriez-vous développer un langage de script qui serait interprété ou vous compiler dans une autre langue (comme la conversion des scripts en C ++ ou C #)?

Je ne trouve pas un projet open-source pour ce genre de développement, mais est-il un produit commercial en utilisant ce type de syntaxe?

EDIT: Je lis toutes vos réponses, mais je vais attendre plus de temps avant de choisir une réponse. Ils sont tous des opinions très utiles si!

EDIT2: Je marqué à haute performance de la solution comme Mark. Toutes vos réponses sont très utiles et j'ai modded tous-les. Il a été l'une des premières réponses et sa réponse est assez perspicace pour nous.

Était-ce utile?

La solution

Je vous suggère de se concentrer sur le développement d'un ensemble riche de classes dans votre langue préférée OO (C # ou C ++, mais je pense que vous trouverez peut-être plus facile d'intégrer l'ancienne avec Excel). Cela vous donne votre langue pour décrire les entités financières liées aux marchés financiers . Lorsque vous avez fait que vous devriez envisager de continuer à envelopper ces classes dans une langue spécifique du domaine, ou tout simplement de les exposer à la communauté d'utilisateurs.

Je soupçonne que votre domaine a une certaine complexité irreducable et qu'un DSL intermédiaires doivent être (presque) aussi complexe que votre ensemble de classes et que, par conséquent, vous avez peu à gagner en le créant.

Une autre approche serait d'intégrer Excel avec Mathematica pour qui produisent Wolfram une boîte à outils de quelque sorte. Je n'ai aucune expérience de cela, mais Mathematica est certainement approprié pour l'un des calculs que vous aurez à faire.

Cordialement

Autres conseils

J'enveloppez les bibliothèques C ++ en Python.

Je définirais un ensemble de classes qui fluent - en effet -. Était ma langue spécifique à domaine

J'utiliser le langage Python directement à partir de ces deux fondations. Je ne voudrais pas inventer ma propre nouvelle syntaxe. Le monde n'a pas besoin d'une autre syntaxe; nous avons la syntaxe et GRAMMAIRES assez pour analyser, assez pour durer jusqu'à la fin du temps.

Vous allez une syntaxe fonctionnelle? Python a des capacités fonctionnelles. Si vous faites attention à la conception de votre classe Python, vous pouvez obtenir un style propre et fonctionnel.

Idéalement, il doit pouvoir être lancé via un mécanisme d'Excel et de retourner les résultats dans Excel.

Depuis l'interpréteur Python peut être intégré dans une application C ++ (ou C #), vous pouvez facilement créer Excel API. À partir d'Excel à votre nouvelle langue, faire aussi peu que possible dans l'API C ++ pour lancer la fonctionnalité Python.

BTW, la concurrence est résolveur un . C'est ce qu'ils font.

ResolverOne ( http://www.resolversystems.com/products/resolver-one/ ) est une combinaison d'Excel et Python. Avez-vous pensé à utiliser cela?

Je recommande d'utiliser R .

Un autre point de vue qui tire parti c #.

Comme vous l'avez déjà un puissant outil polyvalent de programmation fonctionnelle utilisateurs connaissent et ont acheté en sous la forme d'Excel je regarderais pour construire une solution autour de cela. Vous obtenez toujours la possibilité de cette façon d'être en mesure d'utiliser d'autres parties 3 add-ons et des options intégrées (par exemple R et Mathematica)

Je regarderais dans Managed automatisation Add-ins pour les fonctions définies par l'utilisateur . Ce sont essentiellement c # projets de bibliothèque qui utilisent les System.Runtime.InteropServices comme décrit dans cet article lien texte . Pour les utilisateurs de ces fonctions sont ajoutées à un niveau cellulaire de façon normale à l'aide de l'assistant de fonction et peut être plus ou moins ce que vous voulez qu'ils soient. Voilà donc votre DSL. Les utilisateurs peuvent choisir d'intégrer la fonctionnalité dans leurs modèles existants facilement. Il serait également rapide de prototype quelque chose à tester la faisabilité de cette. Ceux-ci sont entièrement débogable.

De plus en utilisant Visual Studio Tools pour Office, vous pouvez accéder à la hiérarchie complète d'objets Excel et même ajouter des volets d'action qui peuvent être posés par glisser-déposer pour les autres exigences de saisie de données plus complexes. Je crois qu'il est même possible d'utiliser WPF avec Excel de cette façon si vous avez besoin d'ajouter des visualisations spécialisés. Si vous avez besoin de persister données à dire Sql Server, vous pouvez construire un tour autour de la forme de validation en utilisant cette approche.

Je sonne comme un M Shill de $! (Juste pour mettre les choses au clair, je ne travaille pas pour eux).

Vous devez évaluer les performances de cela et je ne sais pas comment il l'échelle.

Simon Peyton-Jones de la renommée Haskell a contribué à un document « noreferrer contrats: une aventure Rédaction en ingénierie financière » qui a examiné comment les langages fonctionnels se prêtaient à la composition des descriptions exécutables des contrats financiers dérivés. Une telle méthode devrait être possible avec F #.

Je crois que les offres de LexiFi visant à commercialiser une partie de cette recherche.

Jane Street Capital utilise OCaml, et écrit leurs expériences . Il est une très intéressante si large lecture.

Pour votre environnement, si vous avez suivi leur modèle, vous pouvez utiliser F # , qui a commencé la vie comme un dialecte OCaml, mais qui bien sûr fonctionne dans le monde .NET.

Si votre bibliothèque sous-jacente utilise Java, vous devriez jeter un oeil à faire un DSL Groovy. Il y a un certain nombre de podcasts et de l'article à ce sujet, consulter Google « DSL Groovy ».

La plupart des institutions financières à coup de chiffres (ou divisions) qui y ont déjà acquis des licences Matlab. Je vous recommande de jeter un coup d'œil sur les installations orienté objet offertes par Matlab (et, en effet, à leur financière boîte à outils ).

À l'avant, je pense que vous gagnez trois choses:

1) L'accès à un environnement de haut niveau où les utilisateurs peuvent se concentrer sur le problème et non sur la mise en œuvre 2) Disponibilité des graphiques de haute qualité 3) Intégration transparente avec Excel et d'autres paquets de productivité

Je sais que vous entendez développer une langue (par opposition à une application) mais considérez votre sémantique piggy une sauvegarde langue bien savoir -. Vous éviterez ainsi la courbe d'apprentissage pour vos utilisateurs

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top