I am currently suffering from analysis paralysis on something and was hoping that perhaps the group has some insight into this topic.
Unrelated to the other work I've been doing, I decided to create an open source OTC trading front end, mostly because I have some down time and this has given me WAY too much time on my hands for a bit. The application is written in Java and I would like to build in a programmable algorithmic trader to complete the project. Here is how it works just so you can see where I'm coming from. The system is comprised of an event driven, modular architecture. The primary module connects to an exchange and basically just sits there listening for data. When data comes in (called a tick), the tick is stored in the DB and various other modules are notified about the tick. These modules analyze the current tick in light of the previously stored data and apply their own algorithms. We call these "Signal and State" modules or just Signals for short. For our purpose a state is the current value and a signal is defined as a change to state over time and contains pluralform deltas, amount and intensity. Example Cisco trading at $25 at the moment is a state, whereas the price increasing to $26 would produce a signal of CSCO|Advancing|$1.00|0.04 Each time a signal changes it fires an onSignalChanged event and anything that subscribes to that particular signal is notified. I have written a couple of trading modules in Java that subscribe to various signals and algorithmic trades according to signal changes. In trading parlance these are called Strategies. These modules accept parameters via config files, but I want to take it a step further. I want to give users the ability to custom code their own strategies in an interpreted scripting language. I do not want to write my own language for doing this. There are too many hazards in creating an entirely new language and the learning curve would be steep, plus I'm not sure I really have anything to contribute to language development here. In short, I really just want to expose the signals and the trading api i.e. the applications innards, via an interpreter of some sort. I have been looking at the Java "scripting" API http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/and it seems perfect for the job. It defaults to Javascript which I do consider as a potential candidate for this, but I'm curious to know what other languages have been implemented on top of JSR-223 that would be adequate for the job. The link to the other languages provided on that page is dead. So the questions I have are as follows. Is it wise to force one language over another or should I leave this a configurable option? If you were trying to give this kind of power to an end user, what language would you pick assuming the restriction that it must have a JSR-223 binding? Thanks in advance! /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
