Tuesday, March 23, 2010

FIX Analyzer

ValidFIX is a website for anybody who works with the FIX Protocol
ValidFix comes with  two services:
  1. FIX Analyzer- to inspect one single fix message
  2. FIX Log Analyzer- to inspect sections of logs produced by any FIX Application

There is nothing to download.
Just copy and paste your data in our services and see the results.

Friday, March 19, 2010

Fix client server program

Mini-FIX is a C++ Windows FIX client/server GUI application.

The Financial Information eXchange (FIX) protocol is an electronic communications protocol initiated in 1992 for international real-time exchange of information related to the securities transactions and markets.

Mini-FIX is a client/server able to communicate using this protocol with a high degree of freedom and transparency, well suited for developing and testing other FIX applications.

You can download it from here

Wednesday, March 17, 2010

Define new data provider for Marketcetera

In this post I would like to explain how create new provider for Marketcetera.
I started from the CSV Market Data Adapter example, see instructions for install or compile via code.


After that if you want change provider name read the following instructions.

  • Refactor package name from
org.marketcetera.marketdata.csv;
to
org.marketcetera.marketdata.YOUR_PREFERITE_PROVIDER;
  • Edit file org.marketcetera.module.ModuleFactory  and insert this line

org.marketcetera.marketdata.YOUR_PREFERITE_PROVIDER.MarketceteraFeedModuleFactory

  • Edit file CSVFeedModuleFactory.java  and overwrite this line 

public static final String IDENTIFIER = "YOUR_PREFERITE_PROVIDER";

  • Edit file CSVFeedFactory.java
public String getProviderName()    { return "YOUR_PREFERITE_PROVIDER";  }

  • Edit file Message.java 

static final I18NMessageProvider PROVIDER = new I18NMessageProvider("YOUR_PREFERITE_PROVIDER", Messages.class.getClassLoader());


  • Rename all java source file according with YOUR_PREFERITE_PROVIDER
  • Change provider name in your strategy
  • Call mvn-package 
  • Overwrite generated jar
  • Start strategy with new provider

Tuesday, March 16, 2010

Open source libraries and trading systems review

In this post I reviewed some of the most important trading systems and financial librarys on the net.
SFL Java Trading System Enviroment

The SFL Java Trading System Enviroment is a java application built on
KISS principle (Keep It Simple,Stupid) and its aim is to provide a fast and platform indipendent infrastructure to develop and execute trading Systems.
EclipseTrade

Stock exchange analysis system, featuring shares pricing watch, intraday and history charts with technical analysis indicators, level II/market depth view, news watching, automated trading systems, integrated trading. Based on Eclipse RCP framework.


JSystemTrader is a fully automated trading system (ATS) that can trade various types of market securities during the trading day without user monitoring. All aspects of trading, such as obtaining historical and real time quotes,  analyzing price patterns, making trading decisions, placing orders, monitoring order executions, and controlling the risk are automated according to the user preferences. The central idea behind JSystemTrader is to completely remove the emotions from trading, so that the trading system can systematically and consistently follow a predefined set of rules.

Matrex
http://sourceforge.net/projects/matrex

Use Matrex, the un-spreadsheet, instead of spreadsheets when working with vectors (e.g. database data, charts) and matrices. The perfect desktop tool for mathematical, statistical models and complex calculations. Adapters to matlab, scilab, octave, R.

AIOTrade
http://sourceforge.net/projects/humaitrader

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 genetic programming. Venice runs in a graphical user interface with online help and has full documentation.

Market Analysis System
http://sourceforge.net/projects/eiffel-mas
http://eiffel-mas.sourceforge.net/
System for analysis of financial markets using technical analysis.Includes facilities for stock charting and futures charting, as well as automated generation of trading signals based on user-selected criteria. Operates on both daily and intraday data.

Open Java Trading System
http://sourceforge.net/projects/ojts/
http://ojts.sourceforge.net/
The Open Java Trading System (OJTS) is meant to be a common infrastructure to develop (stock) trading systems. There are four parts: gathering of raw data over the internet, recognition of trading signals, a visualisation module and trading with banks.

Data Visualizer
http://sourceforge.net/projects/dataviews
http://dataviews.sourceforge.net/
Modular environment for graphical visualization of stock market type data

Auge
http://sourceforge.net/projects/auge

Auge is an easy-to-use financial portfolio management application. Auge will help you monitor and analyze your stock and mutual fund positions, providing powerful insight into your entire investment portfolio.

CCAPI2
http://www.activestocks.eu/?q=node/1
http://www.activestocks.eu/
The open source finance library on the net. A java library for automated stock trading, sub fields of financial engineering and automated financial instrument analysis. A java financial library. The CCAPI It is also a algorithm trading application framework. CCAPI is the premium open source java library for developing stock exchange related applications on the net. Various common indicators, methods for creating charts and direct trade interfaces to selected brokers are available for your fingertips.

Marketcetera
http://trac.marketcetera.org/
http://www.marketcetera.com/
Marketcetera LLC is building a new software platform committed to providing fast, flexible and reliable securities trading tools to financial services professionals. Our mission is to make world-class order management and risk-management software available and affordable to individuals and to institutions of all sizes. Marketcetera focuses on building the key trading functions that are common to all organizations, thus freeing our clients to concentrate on proprietary trading algorithms and other specialized software that provide a competitive advantage.

Oropuro trading system

http://sourceforge.net/projects/oropuro 
http://www.oropuro.org
Complete technical analysis & trading system, full set of features: retrieve, analyze EOD stocks data; manage multiple portfolios; technical analysis & graphical rendering; neural networks for generation of trading signals; support trader community

TrueTrade
http://code.google.com/p/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 prealpha mode and should not be used against a live trading account.

Open forex platform
http://www.openforexplatform.com/

Open Forex Platform is an open source financial instruments trading platform. It features custom developed charts and GUI, 100+ trading indicators, back testing on historical data and working on live trading accounts. It also has the capability to integrate with other platforms to allow trading and data acquisition.

jbooktrader
http://code.google.com/p/jbooktrader/

JBookTrader is a fully automated trading system (ATS) that can trade various types of market securities during the trading ay without user monitoring. All aspects of trading, such as obtaining market prices, analyzing price patterns, making trading ecisions, placing orders, monitoring order executions, and controlling the risk are automated according to the user references. The central idea behind JBookTrader is to completely remove emotions from trading, so that the trading system can systematically and consistently follow a predefined set of rules. The features include strategy back testing, optimization, market data recording, and real time trading via the Interactive Brokers API.JBookTrader is written in Java and is intended for software developers. It is not an "off-the-shelf" product that can be installed and run. Instead, JBookTrader provides a framework for developing automated trading systems and requires a certain amount of programming knowledge and experience in Java. If you are not a software developer or if you don't have much experience programming in Java, JBookTrader is probably not for you.

TrueTrade
http://code.google.com/p/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.

ActiveQuant
http://www.activestocks.eu/

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.

JQuantLib
http://www.jquantlib.org/
JQuantLib is a free, open-source, comprehensive framework for quantitative finance, written in Java. It provides "quants" and Java application developers several mathematical and statistical tools needed for the valuation of shares, options, futures, swaps, and other financial instruments, also providing tools related to risk management and money management. It's is a 100% Java framework based on QuantLib, which is written in C++. JQuantLib is not a mere translation of the C++ thing, but a complete rewrite intended to offer features that Java developers expect. JQuantLib aims to be fast, correct, strongly typed, well-documented, and user-friendly.

jrobotrader
http://jrobotrader.atspace.com/index.html

Robotrader is a 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. Version 0.2.7 of robotrader includes: Complete simulation platform with a graphical user interface, many sample trading strategies implemented, Yahoo quotes downloading, more statistics, more technical indicators.

Humai Trader
https://humaitrader.dev.java.net/

AIOTrade (i.e. Humai Trader) is a free, open source, stock technical analysis platform with a pluggable architecture that is ideal for extensions such as indicators and charts. It's built on pure java. For more information, please visit: aiotrade.com You may download the newest version via: sourceforge.net I now maintain a blog about AIOTrade and trading in general at blogtrader.net AIOTrade is a standalone application built on NetBeans Platform. The source code is organized as a NetBeans module-suite project.

TA-Lib : Technical Analysis Library
http://ta-lib.org/

TA-Lib is widely used by trading software developers requiring to perform technical analysis of financial market data.

Java Quant Financial Quantitative Algorithms
http://www.javaquant.net/

Here you will find information about the evaluation of financial options and the theory, definitions and models behind. This webpage provides Java Applets to calculate the price of complex financial options, using the Monte Carlo technique, Binary Trees, among others. The source code written in Java and C++, together with information about the structure of lasses is available. The programs have been written following the Object Oriented Paradigms. Check this table, with option pricing applets.

QuantLib

A free/open-source library for quantitative finance
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.QuantLib is written in C++ with a clean object model, and is then exported to different languages such as C#, Objective Caml, Java, Perl, Python, GNU R, Ruby, and Scheme. The QuantLibAddin/QuantLibXL project uses ObjectHandler to export an object-oriented QuantLib interface to a variety of end-user platforms including Microsoft Excel and OpenOffice.org Calc. Bindings to other languages and porting to Gnumeric, Matlab/Octave, S-PLUS/R, Mathematica, COM/CORBA/SOAP architectures, FpML, are under consideration.

GeniusTrader
http://www.geniustrader.org/

GeniusTrader aims to be a full featured toolbox to create trading systems. Powerful systematic trading requires several things :many indicators and corresponding signals money management rules deciding what is a reasonable amount of money to put on a single trade (to limit the risk associated to that trade)combining different values within the portfolio (to limit the global risk)flexibility to be able to test all combinations with the above items backtesting system with analysis of results GeniusTrader already has support of most of this. GeniusTrader consists of a bunch of perl modules associated to a few perl scripts. It has no graphical user interface since it's absolutely not needed to achieve its goals

Monday, March 15, 2010

Valutazione del grado di maturità di soluzioni software Open Source

Per chi come me si fosse trovato a valutare delle soluzioni open source, suggerisco un modello che permette di definire dei rank di vari parametri fondamentali atti alla comparazione di più software.

FASE 0: Analisi del Contesto

Si raccolgono informazioni relative alla struttura ed al funzionamento dell'impresa. Da queste si stabiliscono una o più categorie software da valutare mediante il modello.
Successivamente viene redatta la lista dei prodotti candidati per l'inserimento e si definiscono i criteri sui quali effettuare la stima.

FASE 1: Selezione Preliminare

Tra i criteri definiti nella fase precedente si evidenzia l'insieme di quelli più critici.
Per tali criteri viene fissato un insieme di valori di soglia minimi che il software deve possedere per accedere alla fase successiva. Il filtraggio sarà tanto più selettivo quanto maggiore sarà il numero di criteri che devono essere soddisfatti.

FASE 2 : Filtraggio Decisionale

Le applicazioni selezionate precedentemente sono sottoposte ad una stima ulteriore, basata sui criteri definiti nella prima fase. In questa fase sono valutate esclusivamente le caratteristiche del prodotto. Ogni criterio ha un punteggio, valutato su una scala normalizzata di valori compresi tra 1 e 10. L'uniformità permette di differenziare l'importanza di ogni punteggio applicandovi un peso (moltiplicatore). Quest'ultimo viene fissato in base alle necessità dell'azienda. Il punteggio finale è ottenuto tramite la somma dei singoli punteggi pesati.

L'articolo continua qua

Create new Market data feed

In this post I would like to explain how build (from scratch) a new marked data feed adapter. My goal is build a module that can retrives price from market and use into Marketcetera strategy.
In this case I will connect to Currenex server.

...cooming soon...

Friday, March 12, 2010

Strategy Agent

In this post I would like explain you how create your custom strategy and runs it in debug mode from your preferite IDE.




public static void main(String[] args) {
String cmds = "MarketData.txt";
StrategyAgent.main(new String[]{cmds});
} catch (Exception e) {
e.printStackTrace();
}
MarketData.java


import org.marketcetera.strategy.java.Strategy;
import org.marketcetera.event.AskEvent;
import org.marketcetera.event.BidEvent;
import org.marketcetera.event.TradeEvent;
import org.marketcetera.marketdata.MarketDataRequest;
import static org.marketcetera.marketdata.MarketDataRequest.*;

/* $License$ */
/**
 * Strategy that receives market data
 *
 * @author anshul@marketcetera.com
 * @version $Id$
 * @since $Release$
 */
public class MarketData extends Strategy {
    private static final String SYMBOLS = "AMZN,JAVA"; //Depends on MD - can be other symbols
    private static final String MARKET_DATA_PROVIDER = "bogus"; // Can be activ, bogus, marketcetera
    /**
     * Executed when the strategy is started.
     * Use this method to set up data flows
     * and other initialization tasks.
     */
    @Override
    public void onStart() {
      System.out.println("onStart");
        requestMarketData(MarketDataRequest.newRequest().
                withSymbols(SYMBOLS).
                fromProvider(MARKET_DATA_PROVIDER).
                withContent(Content.LATEST_TICK, Content.TOP_OF_BOOK));
               
       
    }

    /**
     * Executed when the strategy receives an ask event.
     *
     * @param inAsk the ask event.
     */
    @Override
    public void onAsk(AskEvent inAsk) {
        warn("Ask " + inAsk);
        System.out.println(inAsk.toString());
    }

    /**
     * Executed when the strategy receives a bid event.
     *
     * @param inBid the bid event.
     */
    @Override
    public void onBid(BidEvent inBid) {
        warn("Bid " + inBid);
        System.out.println(inBid.toString());
    }

    /**
     * Executed when the strategy receives a trade event.
     *
     * @param inTrade the ask event.
     */
    @Override
    public void onTrade(TradeEvent inTrade) {
        warn("Trade " + inTrade);
        System.out.println(inTrade.toString());
    }

}

Manage Vtiger Menu

How Manage and customize Vtiger Menu You need to modify the function getAppMenuList in the f...