Hot answers tagged software
18
Column-oriented storage is faster for reading because of the cache efficiency. Looking at your sample query:
select price, time from data where symbol = `AAPL
Here I'm concerned with three columns: price, time, and symbol. If all ticks were stored by row, the database would have to read through all rows just to search for the symbols. It would look like ...
12
Based on anecdata (conversations with other quants), not much. Banks develop their own models and if they do outsource the effort, they pay someone for the code + support (there are companies like Numerix or Pricing Partners which do that). QuantLib is criticized for being poorly documented and convoluted.
My own observation is that the parts of QuantLib I ...
11
It's a very good and useful question. And it is bloody hard to answer just like many other questions relating to the proprietary nature of how banks and funds implement their core technology. A better route may be to ask on the QL lists, and/or to inquire as to who actually attented the first Quantlib forum in London last month. Another route would be to ...
11
Regarding your order management issue, every order should have a unique identifier that the user can reference; in FIX, this is the ClOrdID. The parameters of every order the user requests should be stored in a table keyed by this identifier.
If your goal is to prevent duplicate orders from going out, consider having a trade volume limit per each symbol. ...
11
I have long hungered for the ultimate, super-fast, super-scaleable data storage solution. I have used relational databases, kdb, flatfiles, and binary files. In the end, I used binary files in my research language of choice. My advice is to KISS. The choice of storage is actually not that critical (unless maybe you're working with options tick data). ...
10
A few pointers:
When I looked into this a few years ago, a good solution at the time was LIM's XMIM, which also has an S-Plus/Matlab interface. Whit Armstrong also provided an R package for this, although I don't know how complete it is. This provides both the data and the software for analysis.
On the very high end (and expensive) side of the spectrum, ...
8
Personally I make a distinction between two conflicting goals: (1) storing data incoming in real-time for immediate processing and (2) storing the gathered data for "offline" purposes. Such approach makes things a lot easier if we're talking about a home-grown solution.
(1) must be as fast as possible but not necessarily scalable beyond a few dozen millions ...
7
There is a huge difference between R (and Matlab, SAS, or other statistical languages) and relatively low-level languages such as C/C++/C#/Java in exactly this regard. The latter category is used more often for stable end-products, where speed and performance can be crucial, whereas the former category is used more often for model testing and prototyping.
...
7
I don't know why it was removed, but the R package "orderbook" was available:
http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Kane~et~al.pdf
http://cran.r-project.org/web/packages/orderbook/index.html
In the IBrokers package, the function "reqMktDepth" is used for streaming order book data.
...
7
Some LinkedIn groups are particularily adequate to post these questions.
Your question has already been asked in "Automated Trading Strategies" at this URL: Seeking input on QuantFactory, Deltix and 4thStory: Professional end-to-end Automated Trading Solutions.
Feel free to let us know the state of your research.
6
I do not know such a software - but we can think about the code. There are tow points which you have to define properly:
which assets (correspondently, payoffs) are you allowed to replicate the complicated option?
as barrycarter has already asked - what should be the form of the input?
Further procedure should be quite easy. You are trying to find a ...
6
So one such visualization package is demonstrated in http://www.tradeworx.com/movie/booklet_demo/temp/booklet_demo2.mov. AFAICT it looks like a tk script.
Trading Technologies (TT) sells another visualization tool. But TBH writing your own tool takes a few hours and allows you to focus on what information you are interested in finding.
6
The PortfolioAnalytics package will create weights without reference to current weights, if that's what you want. It should also have much of the reporting that you like from Rmetrics fPortfolio.
There is a longer seminar presentation on Portfolioanalytics from 2010's R/Finance conference here: Complex Portfolio Optimization with Generalized Business ...
6
This is the website to the R/Finance conference this year. Tons of great links.
http://www.rinfinance.com/agenda/
Brian Peterson's slide (Building and Testing Quantitative Strategy Models in R) mentions Portfolio-Analytics (which I think is based on R/Metrics).
And here is a paper based on Portfolio-Analytics.
...
5
I have been using FastBit for a while now and find it to be quite performant. It's very non-intrusive to your existing binary storage format provided your data is stored in a columnar manner.
I have briefly tested Tokyo/KyotoCabinet and didnt find it suitable for my (persistent storage) requirements.
5
You can try CrossOver Office or LibreOffice/OpenOffice Calc. And let me qualify that with: Don't go down the LibreOffice road, you run in al sorts of issues such as rounding errors and that one missing function and you will not get any support from your professor.
On a personal note: During college I preferred to dual boot or use a VM.
5
The best way to do it is by getting an internship as an entry level analyst or some sort. They do not necessary expect you to know computational finance(they will teach you), though you need to be bright, have an outstanding academic record, and of course, good communication skills. As you get in there, you can then ask around about the specifics of what you ...
4
There is one more solution available now to backtest option strategies: www.oscreener.com!
This tool allows to screen and backtest bull put spreads, long calls, short puts, debit spreads etc and validate these strategies in seconds.
3
So, I dont even know of comprehensive SW lists; one of the best ones probably being bobsguide directory (subdivided in specific topics). Lepus also offers a through comparison of software in some of the mentioned areas, and keeps lists with features.
3
I've never heard of it, but I've only been in the industry 2.5 years. Our C++ guys haven't even mentioned it either. They prefer using PACK/LAPACK which is mostly rooted in academia & heavily debugged. We also make heavy use of the IMSL FORTRAN libraries for hardcore statistical computation and Extreme Optimization (for .NET).
One of our other ...
3
Instead of sending orders each time condition is met, try to set "wanted holding" in the trade logic thread. Trade execution will then make sure (issue sufficient number of orders) to achieve your wanted holding.... For example, the first time signal happens, you sent wanted holding to 100 shares the next time it happens you only confirm that you want 100 ...
3
What I've done in the past is create an OnOrderSubmit event/method that fires when an order is placed. Use set a semaphore in that method so that your tick/analytical method ignores order placement instructions until an execution occurs or a timer expires. Then flip the semaphore.
(If you're using multiple threads you want to make sure to serialize access ...
3
Quantivity has three great posts about how to learn algorithmic trading
http://quantivity.wordpress.com/2010/01/10/how-to-learn-algorithmic-trading/
http://quantivity.wordpress.com/2010/01/12/how-to-learn-algorithmic-trading-part-2/
http://quantivity.wordpress.com/2010/01/12/how-to-learn-algorithmic-trading-part-3/
2
There are already quite a lot of softwares that do that. Quite expensive however for most of them. Then it depends whether you're interested into a trading software (trade capture and stuff) or a pricing engine.
Trading softwares : murex, misys summit, calypso ... provide tools to structure deals and value them. Then they are processed front to back.
...
2
I can share my own experience working with the Deltix product suite. As a research and development platform it's very feature rich with support for every back-testing mode there is (BBO, Trade, Midprice, Bar, Level 2 Order Book) and advanced optimization modes (walk-forward, genetic, mean-variance, portfolio optimization, etc). I have built components and ...
2
I came across B/View which is a Java application that visualizes the order book for a single stock on a single day. It encompasses some of the basic features I would expect in such a tool. It appears to be more a demonstration than a general purpose tool.
2
After trying to write some pseudo-code which might or might not have helped you, I googled this forum discussion: http://forums.eviews.com/viewtopic.php?f=5&t=1048 - maybe it is helpful for you, because it describes a similar problem.
2
I have become a fan of SQLite. It's a very lightweight SQL database, which you can use as an intermediate solution. I agree with Rich C that the best thing to do is probably come up with a custom solution that is optimal for your needs. Using SQLite as persistent storage, and loading the data in memory when you want to do intensive computations on it seems ...
1
I wrote the pack R package (based on Perl's pack function), to do this for opentick (now defunct) data. You can look at the opentick package (in the CRAN archives) to see how I used it.
I just noticed that you said you're comfortable with Perl in your SO post. In that case, I'd recommend you use Perl's unpack function.
1
I think you do not need to be a "Systems Programmer", certainly not an experienced one, to solve this problem:
1) Focus on the header, its your legend to the file structure. It describes the format and essentially already tells you how to decode the following messages.
2) Depending on your choice of language you then process each message in binary format ...
Only top voted, non community-wiki answers of a minimum length are eligible

