dev360 / FourierFx

Automatic generation of trade signals on stock and commodity prices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

 REQUIREMENTS
==============

1.  ZeroMQ

    Low-level library to build a messaging framework or client/server.

    Install it from source and install some pre-reqs:

    $ sudo apt-get install libtool uuid-dev autoconf automake 
    $ curl http://download.zeromq.org/zeromq-3.1.0-beta.tar.gz > zeromq.tar.gz
    $ tar -xzf zeromq.tar.gz
    $ cd zeromq-3.1.0
    $ ./configure
    $ make
    $ make install

    On OSX, you just need to install ossp-uuid with brew.

2.  Haskell
  
    Runs the server

    Just get the latest version which comes bundled with cabal. Afaik version doesnt matter.

    $ sudo apt-get update
    $ sudo apt-get install ghc

3.  Redis

    Will be used to store quotes in.

   $ sudo apt-get update
   $ sudo apt-get install redis




 RUNNING THE CODE
======================

0.  Get and the data (a sample is found in the data folder).

1.  Run qoute publisher server
      
      $ easy_install virtualenv
      $ cd FourierFx/cfg/ && virtualenv fourierfx --no-site-packages

    Save yourself a lot of time and trouble, find your bash profile script
    and add this alias which activates the virtualenv for you:

      alias cd_fourierfx="cd ~/Projects/FourierFx/src/py/quotes && . ../../../cfg/fourierfx/bin/activate"

      $ cd_fourierfx
      $ pip -E fourierfx install -r pip.requirements.txt 
      $ cd FourierFx/src/py/
      $ python quotes publisher --file=../../data/EURUSD_sample.csv --symbol=EURUSD --limit=100


2.  Run quote analyzer client

    Make sure you upgrade to GHC >== 7.2, it should come with Cabal.
      
      $ cd FourierFx/src/hs/
      $ cabal install
      
   There will be a binary created in the dist folder; its usually like this:

      $ FourierFx/src/hs/dist/build/fourierfx/fourierfx  tcp://127.0.0.1:6000


3. Verifying that it worked:

   You can use any redis client to verify that it works.

      $ cd_fourierfx
      $ python -c "from quotes.utils.redisdb import RedisDB as R; r = R(); print r.llen('symbol_EURUSD')"
      $ python -c "from quotes.utils.redisdb import RedisDB as R; r = R(); print r.lrange('symbol_EURUSD', 0, 10)"

4. Deleting the quotes:

      $ python -c "from quotes.utils.redisdb import RedisDB as R; r = R(); r.delete('symbol_EURUSD')"


 NEXT STEPS
============

  - Code that splits up Daily, hourly, and per minute data streams and initiates the corresponding computations.
    I wrote the DatePart data structure with this in mind.

About

Automatic generation of trade signals on stock and commodity prices


Languages

Language:Python 56.2%Language:Haskell 43.8%