建立交易系统资源收集贴

Automated Trading Resources

 

Categories

Archive of Papers

Forums and Public Resources

Platforms

Datafeeds

Brokers (Brokerage API)

Software

Server Technology

Historic Data

Strategy Discussion

Software Libraries

C/C++ Libraries

Ruby Libraries

Python Libraries

C#

Java

Matlab

Indicator Formulas

GPU Computing Resources

Mac OS X Computing Resources

Cloud Computing

Databases

ESP/CEP

Miscellaneous

 

Archive of Papers

Behavioral Finance: Papers on Behavioral Finance

Trading Physics: A list of papers that discuss various issues related to the order-driven transactional data.

Andrew Lo’s Research Publications

 

Forums and Public Resources

Tradery: Free trading system development community for creating, testing, and sharing strategies.

JavaTraders: All about Java and trading softwares. The purpose of this group is to exchange : ideas and techniques for using Java in trading, news and tips about open source trading softwares using Java, news about trading softwares using Java.

InteractiveBrokers.API.Discussion.Forum: Discussion of Interactive Broker’s API.

 

Platforms

Commercial

Aegisoft, LLC: AthenaTrader is an agile solution designed for traders who need fast execution and reliable connectivity to exchanges, ECN’s and brokers. Whether you are trading Equities, Foreign Exchange, Futures or Options, AthenaTrader will help you maintain your competitive advantage. Our robust, graphical development environment, for building algorithmic trading strategies, keeps control in the hands of the trader. Use AthenaTrader now to create, test, deploy, and manage your own algorithmic trading strategies. The Athena Gateway Server (AGS) is an enterprise class FIX and Exchange gateway, tuned for high performance, availability and scalability. The AGS provides connectivity to buy-side partners and many brokers and exchanges, including: NYSE Euronext, NASDAQ, CME, ICE, LIFFE, LSE, Eurex, ISE, ThomsonReuters, EBS, HotSpot, Currenex, Lava, FXAll and many more.

MetaTrader: MetaTrader 4 is an online trading platform designed for financial institutions dealing with Forex, CFD, and Futures markets. The platform includes all necessary components for brokerage services via internet including the back office and dealing desk. Currently, over 100 brokerage companies and banks worldwide have chosen our solution to meet their high standards of business performance.

RealTick: Customizable software for market analysis and trade management. Includes API for developing software that connects to Townsend Analytics’ real-time financial data servers.

TradeStation: Whether you trade stocks, options, futures or forex, TradeStation offers uniquely powerful strategy creation and testing tools, customizable analytics and fully automated trading technology in a single trading platform. With TradeStation, you can: Create an unlimited number of custom trading strategies. Back-test and optimize your strategies before you trade, using the industry’s largest and most extensive historical market database. Monitor multiple markets and automatically execute your trading strategies based on your own custom buy and sell rules. And with the new TradeStation Simulator, you can even test your trading ideas and strategies in simulated live trading—without risking a cent of your own money.

WealthLab: Wealth-Lab Developer 5 is a complete platform for developing and backtesting stock and futures trading strategies using technical (and fundamental) analysis. Programmers will enjoy using modern C# syntax with an integrated editor, while non-programmers can use the drag-and-drop Strategy Builder. Apply your proven trading strategies in real-time!

NinjaTrader: Offers a trading platform that provides: Strategies run compiled code in C# for the highest possible performance. Modern development environment. Event driven model. Battle tested live order execution capabilities. Portability to execute at over 100 brokerages world wide.

SmartQuant: Read features here.

 

Open Source / Free

ActiveQuant: AQ is a framework or an API for automated trading, opportunity detection, financial engineering, research in finance, connecting to brokers, etc. - basically everything around trading, written in Java, using Spring. All is published under a usage friendly open source license.

EclipseTrader: EclipseTrader is an Eclipse Rich Client Platform (RCP) application focused to the building of an online stock trading system, featuring shares pricing watch, intraday and history charts with technical analysis indicators, level II/market depth view, news watching, and integrated trading. The standard Eclipse RCP plug-ins architecture allows third-party vendors to extend the functionality of the program to include custom indicators, views or access to subscription-based data feeds and order entry.

AIOTrade: AIOTrade (formerly Humai Trader Platform) is a free, open source stock technical analysis platform built on pure java. Its pluggable architecture is also ideal for custom features extending, such as indicators and charts. It Requires JRE 1.5.0+.

Merchant of Venice: Venice is a stock market trading programme that supports portfolio management, charting, technical analysis, paper trading and experimental methods like genetic programming. Venice runs in a graphical user interface with online help and has full documentation. Venice runs on UNIX, including Mac OS X and Windows.

Open Java Trading System: The Open Java Trading System (OJTS) is meant to be a common infrastructure to develop stock trading systems. It consists of four parts: the gathering of raw data over the internet, the recognition of trading signals, a visualisation module and modules to connect to the programmatic interfaces of trading platforms like banks. The project’s aim is to provide a self contained pure Java (platform independent) common infrastructure for developers of trading systems.

TrueTrade: TrueTrade is a framework for developing, testing and running automatic trading systems. It is intended to provide support for a wide range of orders, financial instruments and time scales. It provides tooling for backtesting the strategy against historical data, and a separate tool for running the strategies in live mode. Strategies currently require some Java coding experience, though this may change at a later date. It is currently in pre-alpha mode and should not be used against a live trading account.

Artificial Stock Market: The model simulates prices & trade levels in a market made up of “artificial adaptive agents.” This is a prototype example of a “complex system” and is thought to illustrate the benefits of simulation modeling.

iTrade: The iTrade project is an open source initiative to provide a charting and trading system written in Python language and published under the terms of the GPL License with specific conditions and disclaimer.

Matlab Automated Trading Toolbox: The collection of MATLAB compatible routines for Mechanical Trading Systems. Released ta-lib - MATLAB MEX API to www.ta-lib.org . Related projects: http://sourceforge.net/projects/wlmllink and http://sourceforge.net/projects/algotrade.

NexTick: NexTick is an open source software solution for stock traders [day and swing traders]. The primarily focus of the NexTick is simplicity and usability, while other trading platforms focus on variety of features for highly professional traders, we’ve only added the most commonly used features. Again, our focus is usability and simplicity.

Robotrader: Simulation platform for automated stock exchange trading. It delivers statistics to analyse performance on historic data and allows comparison between trading strategies, that can be coded in Java.

TickZOOM: The TickZOOM trading platform is a collection of full source trading tools built upon the TickZOOM engine. The TickZOOM engine processes tick data, generates bars, and invokes custom trading rules.

Marketcetera: The Marketcetera Platform allows you to build automated trading systems for equities, equity options and currencies, to maximize the effectiveness of your traders and developers.

TradeProject: Software for automated trading. Indicators are developed in C++.

 

DataFeeds

NxCore: NxCore (pronounced n’core) is a high-performance, real-time streaming datafeed (ticker plant) that brings the whole market to your workstation or desktop computer. NxCore excels in delivering and databasing all the quotes and trades transmitted by the exchanges, even in the hyper-active U.S. Option market (OPRA) which now transmits over 600,000 quotes per second, and 3 billion quotes per trading day.

IQFeed: IQFeed provides one of the fastest, most reliable datafeeds available to most industry leading 3rd party software packages. IQFeed doesn’t include any software to display data, it is a datafeed only. You can choose from any of the Compatible Software listed on our site, or develop your own software after registering as a developer. IQFeed is also directly compatible with Microsft Excel or OpenOffice.org’s free Calc software using IQFeed’s built in DDE server. If you don’t already have software to use with IQFeed, or you are looking for a complete package which includes the software interface and datafeed, please take a look at our DTN.IQ or ProphetX Active Trader service instead of IQFeed.

ESignal: Offers accurate and reliable real-time, delayed and end-of-day data coupled with advanced trading analysis tools, such as real-time scanners to find the best trades, charting and customizable indicators to define strategies and identify entry and exit points, as well as integration with your choice of direct access brokerages for instant executions.

 

Brokerage API

InteractiveBrokers TWS: API to Interactive Broker’s TWS

Genesis Securities: API to Genesis Security’s trading protocol.

Trading Technologies: Development center for Trading Technologies.

Assent Anvil: If you have a custom automated trading solution or other application including DDE Excel - linked solutions you’ve developed, we can link your application to our high speed, robust ANVIL platform, via the ANVIL Application Programming Interface (”API”). Additionally, we have developed support for .net wrappers as well, which generally require less processing resources and less familiarity with underlying embedded system code. Please contact the Assent Trade Support Desk for additional details, including the API specifications you will need.

Gain Capital: For traders interested in utilizing an automated trading system or developing their own black box strategy, GAIN Capital supports fully automated trade execution via a standard FIX protocol or web-services API. The API provides users with the ability to receive a real-time rate feed, submit trade requests, set and modify stop-loss and take-profit orders, and receive automated confirmations of trade activity. For qualified users, we provide a testing environment that enables developers to “paper trade” and test their systems in real time before using the API in a production environment with actual funds.

Lime Brokerage: Lime Brokerage LLC is a technologically advanced brokerage firm based in New York City that caters to a diverse and sophisticated customer base. Lime’s clients include professional traders, hedge funds, asset managers and other broker-dealers. Our customers rely on Lime’s robust and advanced technology to execute equities, futures and options transactions on multiple exchanges, ECNs and trading venues.

Lightspeed Trading (HUBB solutions): Lightspeed Gateway is a division of a FINRA Broker Dealer that offers one of the most dynamic black box development solutions to traders who depend on high performance direct-market access. From standard features like order entry and data retrieval, to the speed benefits of co-location and a character-delimited protocol, Lightspeed Gateway has redefined the technology behind algorithmic trading.

 

Software

R: R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS.

Octave: A free version of MATLAB.

Gretl: A cross-platform software package for econometric analysis, written in the C programming language. It is is free, open-source software. You may redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation.

Sage: Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface.

Data Visualizer: Data Visualizer displays text file stock market type data (”Date,Open,High,Low,Close,Volume,Adjusted Close Price”) as Stock Charts, featuring a variation of Japanese “Candlesticks” chart elements. Data Visualizer Stock charts have some features which you might not find on other stock charts. The Visualizer Stock Chart time grid delineates Mondays, and inserts time space for weekends, such that weekly time units are easily visualized. Charts are enhanced with an innovation candlestick “shadow” feature, the size of which is proportional to the day’s volume which corresponds to the superimposed candlestick price data

Market Analysis System: MAS provides facilities for stock charting and futures charting, including price, volume, and a wide range of technical analysis indicators. MAS also allows automated processing of market data — applying technical analysis indicators with user-selected criteria to market data to automatically generate trading signals — and can be used as the main component of a sophisticated trading system.

Matrex: Matrex is a vectorial spreadsheet. It gives you the same functionalities of a classic spreadsheet application in a new, different way. Matrex is excellent when working with blocks of data coming from databases, feeds, files, external applications, simulations.

Matrex is different because:

Scilab: Open source platform for numerical computation. Scilab is a scientific software package for numerical computations providing a powerful open computing environment for engineering and scientific applications.

jMATLAB: jMATLAB is an Eclispe based interpreter interface to linear algebra libraries. It is based on the notion of MATLAB. It provides MATLAB like scripting language for quick programming. It also provides ability to write toolboxes using java based plug-ins. Interface to GNUPLOT provides access to powerful plotting capabilities. Above all, the extendable java architecture allows a power user to define a custom execution module. So if you wish, you can redefine how a mathematical operation is performed. You can choose to distribute a large matrix to a network of computers and benefit from additional computational power. Or use special purpose hardware to solve specialized problems.

SVMlight: SVMlight is an implementation of Support Vector Machines (SVMs) in C.

 

Server Technology

Scribe: Scribe is a server for aggregating log data streamed in real time from a large number of servers. It is designed to be scalable, extensible without client-side modification, and robust to failure of the network or any specific machine.

hadoop: The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing, including: Hadoop Core, our flagship sub-project, provides a distributed filesystem (HDFS) and support for the MapReduce distributed computing metaphor. HBase builds on Hadoop Core to provide a scalable, distributed database. Pig is a high-level data-flow language and execution framework for parallel computation. It is built on top of Hadoop Core. ZooKeeper is a highly available and reliable coordination system. Distributed applications use ZooKeeper to store and mediate updates for critical shared state. Hive is a data warehouse infrastructure built on Hadoop Core that provides data summarization, adhoc querying and analysis of datasets.

 

Historic Data

ANFutures: ANFutures provides CC Data history in CSV (text) format with a minute interval. We offer CC Data of Globex Time Hours (15:30 through 15:15 next day). Every history data file includes data for 3 months contract’s period from roll-over day to roll-over day. Every history data file is ZIP compressed for faster download. To make data in other format (3,5,10,15,20,30 and 60 min) you can use our Data Converter for free.

Historic Commitment of Traders Reports

Disk Trading: FOREX historical data, major indices historical data, futures historical data (continuous contracts) - intraday and daily - on DVDs/CDs and through download.

TickData: Historical tick data. Tick Data provides clean, ready-to-use historical intraday time series data for the world’s equities, futures and options markets. We apply all corporate actions (e.g. splits, dividends) and TickerMappingsm information (e.g. symbol changes, exchange hops) to the data. The result is structured, validated tick-by-tick data that is ready-to-use upon delivery.

Turtle Trader Historic Futures Data: Free historic data. The data encompasses most major contracts on US futures exchanges dating back to the 1970’s. All daily data is in ASCII/text format easily imported into most spreadsheets or trading software products. Date, open, high, low, close, volume and open interest are columns.

Trading BLOX: Download ten years of free historical trade data for futures and forex. Updated Daily!

 

Strategy Discussion

Pairs Trading

Original Turtle Rules

Larry Harris on Zero Sum

Why do people use Volume, Range and Tick Charts?

AHG - Profitable Strategy for Struggling Traders

Day-Trading 2.0 for small traders

Why do I see “Trends” in Randomly Generated Data?

Enough Already! It’s not random

A Kinetic Energy Idea

ACD–Is it the Method to The Madness?

Mathematically Predicting the Future?

Mechanical vs Neural Trading Systems

Trading Winning Positions - The Optimal Approach

System Development with acrary

Developing a Trading Framework from Scratch

Launched High Frequency Automated Trading Blackbox

Frosty’s Trading Bot Goes Live, Part 2

Chabah on Automated Trading

On Backtesting and Drawdown

Unholy Grail to Success

 

Software Libraries & Source Code

Note that many libraries offer APIs in other languages

 

General

Thrift: Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.

SWIG: SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of languages including common scripting languages such as Perl, PHP, Python, Tcl and Ruby.

LAPACK: LAPACK is written in Fortran90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.

BLAS: The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. The Level 1 BLAS perform scalar, vector and vector-vector operations, the Level 2 BLAS perform matrix-vector operations, and the Level 3 BLAS perform matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra software, LAPACK for example.

 

C/C++

QuantLib: The QuantLib project is aimed at providing a comprehensive software framework for quantitative finance. QuantLib is a free/open-source library for modeling, trading, and risk management in real-life.

Implementing QuantLib

TALib: TA-Lib provides common functions for the technical analysis of financial market data.

GECODE: Gecode is an open, free, portable, accessible, and efficient environment for developing constraint-based systems and applications.

Tokyo Cabinet: Tokyo Cabinet is a library of routines for managing a database. The database is a simple data file containing records, each is a pair of a key and a value. Every key and value is serial bytes with variable length. Both binary data and character string can be used as a key and a value. There is neither concept of data tables nor data types. Records are organized in hash table, B+ tree, or fixed-length array.

libmemcached: libmemcached is a C and C++ client library to the memcached server (http://danga.com/memcached). It has been designed to be light on memory usage, thread safe, and provide full access to server side methods.

TinyXML++: The TinyXML++ classes are all wrappers around the corresponding classes within TinyXML.

QuickFIX: QuickFIX is a full-featured open source FIX engine, currently compatible with the FIX 4.0-4.4 spec. It runs on Windows, Linux, Solaris, FreeBSD and Mac OS X. API’s are available for C++, Java, .NET, Python and Ruby.

OpenMP: The OpenMP Application Program Interface (API) supports multi-platform shared-memory parallel programming in C/C++ and Fortran. OpenMP is a portable, scalable model with a simple and flexible interface for developing parallel applications on platforms from the desktop to the supercomputer.

Gzstream: Gzstream is a small C++ library, basically just a wrapper, that provides the functionality of the zlib C-library in a C++ iostream. It is freely available under the LGPL license.

libevent: The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.

qtstalker: Stock market, commodity and technical analysis charting app based on the Qt toolkit. Extendible plugin system for quotes and indicators. Portfolio, back testing, chart objects and many more features included.

Qt Concurrent: Qt Concurrent is a C++ template library for writing multi-threaded applications. Qt Concurrent provides high-level APIs that makes it possible to write multi-threaded programs withouth using low-level threading primitives such as critcal sections, mutexes or wait conditions. Programs written with Qt Concurrent automaticallly adjust the number of threads used according to the number of processor cores available. This means that applications written today will continue to scale when deployed on multi-core systems in the future.

The Phoenix System: Phoenix is shared-memory implementation of Google’s MapReduce model for data-intensive processing tasks. Phoenix can be used to program multi-core schips as well as shared-memory multiprocessors (SMPs and ccNUMAs). The current distribution of Phoenix runs only on the Solaris operating system.

Mersenne Twister Random Number Generator: The Mersenne Twister is an algorithm for generating random numbers. It was designed with consideration of the flaws in various other generators.

Fixed Point Math Library: The library consists of various functions for dealing with fixed point numbers (multiplication, division, inversion, sin, cos, sqrt, rsqrt). It also contains a C++ wrapper class which can be used to simplify working with fixed points numbers greatly. I used this fixed point number class in conjunction with my vector_math library to obtain a fixed point vector math library. Doing so made the 3D computations a lot faster compared to the floating point version.

GNU MP Bignum: GNU Multiple Precision Arithmetic Library, the fastest bignum library on the planet!

bzip2: bzip2 is a freely available, patent free (see below), high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression.

LZMA 7zip: The LZMA SDK provides the documentation, samples, header files, libraries, and tools you need to develop applications that use LZMA compression.

LZO: LZO is a portable lossless data compression library written in ANSI C. Reliable and thoroughly tested. High adoption - each second terrabytes of data are compressed by LZO. No bugs since the first release back in 1996. Offers pretty fast compression and *extremely* fast decompression. Includes slower compression levels achieving a quite competitive compression ratio while still decompressing at this very high speed. Distributed under the terms of the GNU General Public License (GPL v2+). Commercial licenses are available on request. Military-grade stability and robustness.

PhysicsFS: PhysicsFS is a library to provide abstract access to various archives.

Crypto++: Crypto++ Library is a free C++ class library of cryptographic schemes.

ezXML: ezXML is a C library for parsing XML documents inspired by simpleXML for PHP. As the name implies, it’s easy to use. It’s ideal for parsing XML configuration files or REST web service responses. It’s also fast and lightweight (less than 20k compiled).

libxml: Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License.

CLucene: CLucene is a C++ port of Lucene: the high-performance, full-featured text search engine written in Java.

eipp: eipp is a C++ library that offers a simple and safe interface to Erlang External Term format.

libsvm: LIBSVM is an integrated software for support vector classification, (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM ). It supports multi-class classification.

FANN: Fast Artificial Neural Network Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks. Cross-platform execution in both fixed and floating point are supported. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast. PHP, C++, .NET, Ada, Python, Delphi, Octave, Ruby, Prolog Pure Data and Mathematica bindings are available.

 

Ruby

JRuby: JRuby is an 100% pure-Java implementation of the Ruby programming language. Support for interacting with and defining java classes from within Ruby.

EventMachine: EventMachine is a library for Ruby, C++, and Java programs. It provides event-driven I/O using the Reactor pattern. EventMachine is designed to simultaneously meet two key needs: extremely high scalability, performance and stability for the most demanding production environments; and an API that eliminates the complexities of high-performance threaded network programming, allowing engineers to concentrate on their application logic.

memcached: A Ruby client library for accessing one or more memcache servers.

Erlectricity: Erlectricity exposes Ruby to Erlang and vice versa. It provides a messaging API similar to Erlang’s for writing your ruby scripts that interact with erlang.

SkyNet: Skynet is an open source Ruby implementation of Google’s MapReduce framework.

Gruff: The Gruff Graphing Library is a project to make beautiful graphs with Ruby.

Scruffy: Scruffy is a Ruby library for generating attractive and powerful graphs, useful for web applications, print media and many others.

RubySVM: A Ruby binding to libsvm

cluster: Implements various clustering algorithms for text mining, such as K-Means, Hierarchical clustering, etc.

RubyFANN: Bindings to use FANN (Fast Artificial Neural Network) from within ruby/rails environment.

AI4R: his project aims to produce ruby implementations of algorithms covering several Artificial intelligence fields and simple practical examples using them, including: Genetic algorithms, Neural networks (Backpropagation networks) and Machine Learning (ID3, Decision Trees).

linalg: linalg is a fast, LAPACK-based library for real and complex matrices. Current functionality includes: singular value decomposition, eigenvectors and eigenvalues of a general matrix, least squares, LU, QR, Schur, Cholesky, stand-alone LAPACK bindings.

REXML: REXML is a conformant XML processor for the Ruby programming language. REXML passes 100% of the Oasis non-validating tests and includes full XPath support. It is reasonably fast, and is implemented in pure Ruby. Best of all, it has a clean, intuitive API. REXML is included in the standard library of Ruby

Ruby DBI: The DBI connectivity interface is a database independent wrapper to make SQL calls from your Ruby application.

ActiveRecord: Active Record connects business objects and database tables to create a persistable domain model where logic and data are presented in one wrapping. It‘s an implementation of the object-relational mapping (ORM) pattern.

Distributed Ruby (DRb): dRuby is a distributed object system for Ruby. It allows an object in one Ruby process to invoke methods on an object in another Ruby process on the same or a different machine.

DRb on Amazon’s EC2

Rinda: Rinda::Ring allows DRb services and clients to automatically find each other without knowing where they live.

Revactor: Revactor is an application framework for Ruby which uses the Actor model to simplify the creation of high-performance network services. Revactor’s TCP sockets API is virtually identical to Ruby’s, meaning that porting programs from Ruby to Revactor is a snap. While underneath it achieves high scalability by using non-blocking I/O, Actors can make blocking calls to read and write from sockets, or even make entire HTTP requests and read responses. If you want to use asynchronous I/O for tasks like message processing, you can also have network events delivered directly to Actors as a message.

Managing Amazon’s EC2

Starfish: Starfish is a utility to make distributed programming ridiculously easy.

PoolParty!: PoolParty is an open-source solution for cloud management that automates deployment, scaling, and load-balancing.

RubyInline: RubyInline is a library that allows easy use of C/C++ code inside of Ruby for optimization. Makes creating extensions much, much easier.

ParseTree: Constructs a real-time parse tree of your Ruby code. May be useful in that lisp ‘code-as-data’ sort of way.

ZenTest: A Test-Driven Development suite.

BackgroundDRb: BackgrounDRb is a Ruby job server and scheduler. Its main intent is to be used with Ruby on Rails applications for offloading long-running tasks. Since a Rails application blocks while serving a request it is best to move long-running tasks off into a background process that is divorced from http request/response cycle.

RingyDingy: RingyDingy automatically registers a service with a RingServer. If communication between the RingServer and the RingyDingy is lost, RingyDingy will re-register its service with the RingServer when it reappears. Similarly, the RingServer will automatically drop registrations by a RingyDingy that it can‘t communicate with after a short timeout. RingyDingy also includes a RingServer wrapper that adds verbose mode to see what services as they register and expire and an option to list all available services on the network.

AP4R: AP4R, Asynchronous Processing for Ruby, is the implementation of reliable asynchronous message processing. It provides message queuing, and also message dispatching. Using asynchronous processing, we can cut down turn-around-time of web applications by queuing, or can utilize more machine power by load-balancing.

Currency: The RubyForge package currency implements an object-oriented representation of currencies, monetary values, foreign exchanges and rates.

 

Python

Enthought Python Distribution: The Enthought Python Distribution (EPD) is a “kitchen-sink-included” distribution of the Python™ Programming Language, including over 60 additional tools and libraries. The EPD bundle includes NumPy, SciPy, IPython, 2D and 3D visualization, database adapters, and a lot of other tools right out of the box.

Twisted: Twisted is an event-driven networking engine written in Python and licensed under the MIT license.

Processing: Package for using processes which mimics the threading module. processing is a package for the Python language which supports the spawning of processes using the API of the standard library’s threading module. It runs on both Unix and Windows. Features: Objects can be transferred between processes using pipes or multi-producer/multi-consumer queues. Objects can be shared between processes using a server process or (for simple data) shared memory. Equivalents of all the synchronization primitives in threading are available. A Pool class makes it easy to submit tasks to a pool of worker processes.

Stackless: Stackless Python is an enhanced version of the Python programming language. It allows programmers to reap the benefits of thread-based programming without the performance and complexity problems associated with conventional threads.

twill: twill is a simple language that allows users to browse the Web from a command-line interface. With twill, you can navigate through Web sites that use forms, cookies, and most standard Web features.

disco: Disco is an open-source implementation of the Map-Reduce framework for distributed computing. As the original framework, Disco supports parallel computations over large data sets on unreliable cluster of computers.

pylinda: PyLinda is a simple implementation of a linda system, however it also includes several of the more recently proposed extensions to Linda in the form of multiple tuple spaces, garbage collection, sane non-blocking primitives and bulk tuple operations.

PyLucene: PyLucene is a Python extension for accessing Java Lucene. Its goal is to allow you to use Lucene’s text indexing and searching capabilities from Python.

 

C#

Mono: Mono is a cross platform, open source .NET development framework sponsored by Novell.

Interactive Brokers C# API: Interactive Brokers provides a great API for programmatic trading, but they do not offer a native C# version. I have ported their java socket interface to C#, and am maintaining two versions, one which corresponds to Interactive Broker’s release API, and one which corresponds to Interactive Broker’s beta API.

QLNet: QLNet project is about developing a financial library which does the valuation of various simple and complex financial instruments. It has been derived primarily from its C++ counterpart, Quantlib, which has been used as a base reference for modelling of various financial instruments. QLNet project aims at :

ScienceCode: A library of science and mathematics related routines.

RabbitMQ: RabbitMQ is an implementation of AMQP, the emerging standard for high performance enterprise messaging.

ZedGraph: A charting class library with a high degree of configurability.

 

Java

Javolution: Java solution for Real-Time and Embedded Systems. High performance and time-deterministic (real-time) util / lang / text / io / xml base classes. Context programming in order to achieve true separation of concerns (logging, performance, etc). A testing framework addressing not only unit tests but also performance and regression tests as well. Straightforward and low-level parallel computing capabilities with ConcurrentContext. Struct and Union base classes for direct interfacing with native applications (e.g. C/C++). World’s fastest and first hard real-time XML marshalling/unmarshalling facility. Simple yet flexible configuration management of your application.

RabbitMQ: RabbitMQ is an implementation of AMQP, the emerging standard for high performance enterprise messaging.

Java Genetic Algorithms Package: JGAP (pronounced “jay-gap”) is a Genetic Algorithms and Genetic Programming component provided as a Java framework. It provides basic genetic mechanisms that can be easily used to apply evolutionary principles to problem solutions.

Java Object Oriented Neural Engine: Joone is a FREE Neural Network framework to create, train and test artificial neural networks. The aim is to create a powerful environment both for enthusiastic and professional users, based on the newest Java technologies.

JFreeChart: A free Java chart library. JFreeChart supports pie charts (2D and 3D), bar charts (horizontal and vertical, regular and stacked), line charts, scatter plots, time series charts, high-low-open-close charts, candlestick plots, Gantt charts, combined plots, thermometers, dials and more. JFreeChart can be used in applications, applets, servlets and JSP.

JDOM (XML): Java-based solution for accessing, manipulating, and outputting XML data from Java code.

ObjectPool: Pool provides an Object-pooling API, with three major aspects: 1. A generic object pool interface that clients and implementors can use to provide easily interchangable pooling implementations. 2. A toolkit for creating modular object pools. 3. Several general purpose pool implementations.

Commons-Math: Commons Math is a library of lightweight, self-contained mathematics and statistics components.

Java Caching System: JCS is a distributed caching system written in java. It is intended to speed up applications by providing a means to manage cached data of various dynamic natures. Like any caching system, JCS is most useful for high read, low put applications. Latency times drop sharply and bottlenecks move away from the database in an effectively cached system.

EHCache: Ehcache is a widely used java distributed cache for general purpose caching, Java EE and light-weight containers. It features memory and disk stores, replicate by copy and invalidate, listeners, cache loaders, cache extensions, cache exception handlers, a gzip caching servlet filter and much more.

SMACK API: Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java library, it can be embedded into your applications to create anything from a full XMPP client to simple XMPP integrations such as sending notification messages and presence-enabling devices.

MINA: Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract · event-driven · asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.

JBoss Netty 3: The Netty project is an effort to provide an asynchronous event-driven network application framework and tools for rapid development of maintainable high performance and high scalability protocol servers and clients. In other words, Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP/IP socket server.

QuickFix/J: QuickFIX/J is a full featured messaging engine for the FIX protocol. It is a 100% Java open source implementation of the popular C++ QuickFIX engine.

Sun Java Real-Time System: The Sun Java Real-Time System (Java RTS) is Sun’s commercial implementation of the Real-Time Specification for Java (JSR-001). Implementations of the RTSJ make standard Java technology more deterministic and enable it to meet rigorous timing requirements for mission-critical real-time applications.

Lucene: Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform.

Shoal: Shoal is a java based scalable dynamic clustering framework that provides infrastructure to build fault tolerance, reliability and availability. The framework can be plugged into any product needing clustering and related distributed systems capabilities without tightly binding to a specific communications infrastructure. Shoal is dual licensed under the CDDL version 1.0 and GPL v2 license with Classpath Exception.

JESSICA2: JESSICA2 (Java-Enabled Single-System-Image Computing Architecture version 2) is a distributed Java Virtual Machine (DJVM) to support parallel execution of multithreaded Java applications in a networked cluster environment. Implemented as a cluster middleware at the Java virtual machine level for realizing single system image, JESSICA2, makes the whole cluster look as a single machine running a single JVM. With JESSICA2 DJVM, a single Java program can span multiple computing nodes, and enjoy extreme computation power, huge memory space, and strong I/O capabilities.

Rapid-I: Rapid-I provides software, solutions, and services in the fields of predictive analytics, data mining, and text mining. The company concentrates on automatic intelligent analyses on a large-scale base, i.e. for large amounts of structured data like database systems and unstructured data like texts. The open-source data mining specialist Rapid-I enables other companies to use leading-edge technologies for data mining and business intelligence.

 

Matlab

Free Toolboxes

List of Matlab Toolboxes

Jacket: GPU engine for MATLAB

 

Indicators

Indicator Formulas

Technical Analysis Documentation

 

GPU

CUDA: CUDA (originally Compute Unified Device Architecture although this is no longer used) is a parallel computing architecture developed by NVIDIA. Simply put, CUDA is the compute engine in NVIDIA graphics processing units or GPUs, that is accessible to software developers through industry standard programming languages.

OpenCL: OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. OpenCL includes a language (based on C99) for writing kernels (functions that execute on OpenCL devices), plus APIs that are used to define and then control the heterogeneous platform. OpenCL provides parallel programming using both task-based and data-based parallelism.

BrookGPU: Brook for GPUs is a compiler and runtime implementation of the Brook stream program language for modern graphics hardware.

CG Tutorial: Comprehensive tutorial on Cg.

 

Mac OS X

MacResearch: Site dedicated to performing research on Mac OS X.

Velocity Engine: The Velocity Engine, embodied in the G4 and G5 processors, expands the current PowerPC architecture through addition of a 128-bit vector execution unit that operates concurrently with existing integer and floating-point units. This provides for highly parallel operations, allowing for simultaneous execution of up to 16 operations in a single clock cycle. This new approach expands the processor’s capabilities to concurrently address high-bandwidth data processing (such as streaming video) and the algorithmic intensive computations which today are handled off-chip by other devices, such as graphics, audio, and modem functions.The AltiVec instruction set allows operation on multiple bits within the 128-bit wide registers. This combination of new instructions, operation in parallel on multiple bits, and wider registers, provide speed enhancements of up to 30x on operations that are common in media processing.

VAST/AltiVec: With the advent of the Motorola G4 and IBM G5 chips featuring the AltiVec unit (Apple calls it the Velocity Engine) you can now achieve very high performance from desktop systems. Vector processing techniques from supercomputers have made their way down to microprocessors, and if you adapt your application to take advantage of these vectors, you can see dramatic performance gains. VAST is a code optimizer that has been widely used for over 20 years to help people get the most out of high performance computer systems. It features highly advanced automatic vectorization and parallelization. VAST analyzes source codes and creates a new version of the program that includes vector and/or parallel constructs and runs faster than the original program.

 

Cloud Computing

Eucalyptus: EUCALYPTUS - Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems - is an open-source software infrastructure for implementing “cloud computing” on clusters. The current interface to EUCALYPTUS is compatible with Amazon’s EC2 interface, but the infrastructure is designed to support multiple client-side interfaces. EUCALYPTUS is implemented using commonly available Linux tools and basic Web-service technologies making it easy to install and maintain.

GoGrid: Deployment and management cloud servers.

Skytap: Cloud-based virtual labs. On-demand virtual data center.

Sun Grid

Amazon Elastic Compute Cloud

 

Databases

PostgreSQL: PostgreSQL is a powerful, open source object-relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL92 and SQL99 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.

MySQL: The MySQL® database has become the world’s most popular open source database because of its consistent fast performance, high reliability and ease of use. It’s used on every continent — Yes, even Antarctica! — by individual Web developers as well as many of the world’s largest and fastest-growing organizations to save time and money powering their high-volume Web sites, business-critical systems and packaged software — including industry leaders such as Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, and Zappos.com. Not only is MySQL the world’s most popular open source database, it’s also become the database of choice for a new generation of applications built on the LAMP stack (Linux, Apache, MySQL, PHP / Perl / Python.) MySQL runs on more than 20 platforms including Linux, Windows, OS/X, HP-UX, AIX, Netware, giving you the kind of flexibility that puts you in control.

CouchDB: Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language. CouchDB is written in Erlang, but can be easily accessed from any environment that provides means to make HTTP requests. There are a multitude of third-party client libraries that make this even easier for a variety of programming languages and environments.

MonetDB: MonetDB is a open-source database system for high-performance applications in data mining, OLAP, GIS, XML Query, text and multimedia retrieval. MonetDB often achieves a 10-fold raw speed improvement for SQL and XQuery over competitor RDBMSs. Use the product strands as your roadmap for exploration.

db4o: db4o is the open source object database that enables Java and .NET developers to store and retrieve any application object with only one line of code, eliminating the need to predefine or maintain a separate, rigid data model. World class innovators deploy the db4o database engine at the heart of next generation data-driven devices and applications to cache user-generated and client-side data, enabling compelling new features and achieving unprecedented performance and flexibility. From devices and equipment to Complex Event Processing (CEP) systems db4o excels in a wide range of applications due to its performance, transparency, flexibility and ease of use.

Berkeley DB: The Oracle Berkeley DB family of open source, embeddable databases provides developers with fast, reliable, local persistence with zero administration. Often deployed as “edge” databases, the Oracle Berkeley DB family provides very high performance, reliability, scalability, and availability for application use cases that do not require SQL.

 

CEP / ESP

Esper: Esper is a component for CEP and ESP applications, available for Java as Esper, and for .NET as NEsper. Esper and NEsper enable rapid development of applications that process large volumes of incoming messages or events. Esper and NEsper filter and analyze events in various ways, and respond to conditions of interest in real-time.

 

Miscellaneous

NASDAQ Symbol Directory

你可能感兴趣的:(高频交易,HFT)