Domanda

Io lavoro per una boutique specializzata in finanza.

Abbiamo pensato sulla progettazione di un linguaggio per descrivere le entità finanziarie connesse ai mercati finanziari.

Questo sarebbe stato utilizzato principalmente come una sorta di linguaggio di scripting per sostituire molti run processo in fogli di calcolo e macro VBA.

Si deve essere semplice ed è, di fatto, di chiamare vari C ++ e C # librerie dietro le quinte. Deve consentire agli utenti di gestire in modo astratto oggetti che potrebbero rappresentare delle serie storiche (giornaliero e tutti i giorni).

Si deve essere pienamente debuggable, quando un utente avrà un problema, dobbiamo essere in grado di intervenire nel codice C ++ / C # e riprodurre il bug. Idealmente deve essere in grado di essere lanciato tramite qualche meccanismo all'interno di Excel e restituire i risultati all'interno di Excel. (Purtroppo quasi ogni persona che lavora in finanza sta usando Excel)

Se si doveva fare questa operazione, come è possibile andare a questo proposito?

Vuoi andare per una sintassi funzionale?

Ti sviluppare un certo linguaggio di scripting che verrebbe interpretata o vuoi compilarlo in un'altra lingua (come la conversione degli script in C ++ o C #)?

Non ho trovato alcun progetto open-source per questo tipo di sviluppo, ma c'è un prodotto commerciale che utilizza questo tipo di sintassi?

EDIT: Ho letto tutte le vostre risposte, ma io aspetterò più tempo prima di scegliere una risposta. Sono tutte le opinioni molto utile però!

EDIT2: ho segnato ad alte prestazioni come la soluzione di Mark. Tutte le vostre risposte sono molto utili e ho moddato tutti loro in su. E 'stato uno dei primi risposte e la sua risposta è abbastanza perspicace per noi.

È stato utile?

Soluzione

Vi suggerisco di concentrarsi sullo sviluppo di un ricco set di classi nella tua lingua preferita OO (C # o C ++, anche se ho il sospetto che si potrebbe trovare più facile l'integrazione della ex con Excel). Ciò darà la vostra linguaggio per descrivere le entità finanziarie connesse ai mercati finanziari . Quando hai fatto che si dovrebbe considerare se continuare ad avvolgere queste classi in qualche Domain Specific Language, o semplicemente per esporre al vostro comunità di utenti.

Ho il sospetto che il dominio ha una certa complessità irreducable e che un DSL intermedia dovranno essere (quasi) così complesso come il set di classi e che, di conseguenza, avete poco da guadagnare con la creazione di esso.

Un altro approccio sarebbe quello di integrare Excel con Mathematica per la quale Wolfram producono una serie di strumenti di qualche tipo. Non ho esperienza di questo, ma Mathematica è certamente adatto a qualsiasi dei calcoli dovrete fare.

Saluti

Altri suggerimenti

Vorrei avvolgere le librerie C ++ in Python.

che definirei un pacchetto di classi fluenti che - in effetti -. Era il mio linguaggio specifico del dominio

Vorrei utilizzare il linguaggio Python direttamente sulla base di queste due fondazioni. Non vorrei inventare la mia nuova sintassi. Il mondo non ha bisogno di altro sintassi; abbiamo sintassi e grammatiche abbastanza per analizzare, abbastanza per durare fino alla fine dei tempi.

Vuoi andare per una sintassi funzionale? Python ha capacità funzionali. Se si sta attenti con il vostro disegno classe Python, è possibile ottenere uno stile funzionale pulito.

Idealmente deve essere in grado di essere lanciato tramite qualche meccanismo all'interno di Excel e restituire i risultati all'interno di Excel.

Dal momento che l'interprete Python può essere incorporato in un (o C #) l'applicazione C ++, è possibile creare facilmente Excel API. Da Excel per la nuova lingua, fare il meno possibile nelle API C ++ per avviare la funzionalità di Python.

A proposito, la concorrenza è Resolver One . Questo è quello che fanno.

ResolverOne ( http://www.resolversystems.com/products/resolver-one/ ) è una combinazione di Excel e Python. Avete pensato di usare questo?

Ti consiglio di utilizzare R .

Un altro punto di vista che fa leva c #.

Come si dispone già di un potente strumento di programmazione funzionale di uso generale gli utenti hanno familiarità con ed hanno comprato in a forma di Excel vorrei cercare di costruire una soluzione intorno a quello. È ancora ottenere la possibilità in questo modo di poter utilizzare altri 3rd party add-on e opzioni integrate (ad esempio R e Mathematica)

Vorrei guardare in Managed Automazione componenti aggiuntivi per funzioni definite dall'utente . Si tratta essenzialmente di progetti di libreria C # che utilizzano i System.Runtime.InteropServices come descritto in questo articolo link testuale . Per gli utenti di queste funzioni si aggiungono a un livello cellulare in modo normale utilizzando la procedura guidata funzione e possono essere più o meno quello che vuoi che siano. Questa allora è la vostra DSL. Gli utenti possono scegliere di integrare la funzionalità nei loro modelli esistenti facilmente. Sarebbe anche essere veloce al prototipo qualcosa per verificare la fattibilità di questo. Questi sono completamente debuggable.

Inoltre utilizzando Visual Studio Tools per Office è possibile accedere alla gerarchia di piena di oggetti di Excel e persino aggiungere riquadri di azione che possono essere disposte trascinando e rilasciando i controlli per i requisiti di accesso dati più complessi. Credo che sia ancora possibile utilizzare WPF con Excel in questo modo se si ha bisogno di aggiungere visualizzazioni specializzate. Se avevi bisogno di persistere dati di nuovo a dire Sql Server si potrebbe costruire un giro sotto forma di convalida utilizzando questo approccio.

mi suona come un M $ Shill! (Solo per impostare le cose in chiaro io non lavoro per loro).

Si avrebbe bisogno di valutare le prestazioni di questo e io non sono sicuro di come sarebbe scala.

Simon Peyton-Jones di Haskell notorietà ha contribuito a un documento noreferrer 'contratti composizione: un'avventura in ingegneria finanziaria' che ha discusso di come i linguaggi funzionali si prestavano alla composizione di descrizioni eseguibili di contratti finanziari derivati. Tale meccanismo dovrebbe essere possibile con F #.

Credo che le offerte dei LexiFi volto a commercializzare alcuni di questa ricerca.

Jane Via Capitale utilizza OCaml, e ha scritto le loro esperienze qui . Si tratta di una piuttosto interessante se ampia lettura.

Per il vostro ambiente, se avete seguito il loro modello, è possibile utilizzare F # , che ha iniziato la vita come un dialetto OCaml, ma che ovviamente corre nel mondo .NET.

Se la libreria sottostante utilizza Java si dovrebbe dare un'occhiata a fare un DSL in Groovy. Ci sono una serie di podcast e articolo su questo, provare Googling "DSL Groovy".

La maggior parte delle istituzioni numero-scricchiolio finanziari (o divisioni ivi) hanno già acquisito le licenze Matlab. Vi consiglio di dare un'occhiata ai Object Oriented servizi offerti da Matlab (e, anzi, a loro finanziaria Toolbox ).

In attacco penso che si guadagna tre cose:

1) L'accesso a un ambiente di alto livello in cui gli utenti possono concentrarsi sul problema e non sulla realizzazione 2) Disponibilità di grafica di alta qualità 3) integrazione con Excel e altri pacchetti di produttività

Lo so che intenzione di sviluppare un linguaggio (al contrario di un'applicazione), ma considerare che trasportano sulle spalle i tuoi semantica per un linguaggio ben noto -. In questo modo si evita la curva di apprendimento per gli utenti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top