Coder Social home page Coder Social logo

tradinglogic.jl's Introduction

Documentation Status

TradingLogic.jl

An attempt at a unified framework in Julia language for both event-driven backtesting and live trading. This package utilizes reactive programming elements implemented in Reactive.jl.

The main objective is to be able to backtest and place real-time orders using the same trading strategy functions.

NOTE: The current master-branch code requires Julia >=0.4.0. See the julia03 branch for the last version tested with Julia 0.3 before 0.4.0 final release.

tradinglogic.jl's People

Contributors

femtotrader avatar iblislin avatar milktrader avatar multidis avatar tmlbl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tradinglogic.jl's Issues

tons of deprecate warning on Julia 0.5

julia> using TradingLogic
INFO: Precompiling module TradingLogic.
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/types.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/types.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/types.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/types.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/exchange.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/exchange.jl:481
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/exchange.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/exchange.jl:481
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/orderhandl.jl:480
WARNING: Base.ASCIIString is deprecated, use String instead.
  likely near /home/iblis/.julia/v0.5/TradingLogic/src/orderhandl.jl:481
WARNING: Base.ASCIIString is deprecated, use String instead.
...

It's time to upgrade to julia 0.5+ syntax and drop older version support?

Complete unit tests

Some orderhandling! cases remain to go over in test/orders.jl. When done also uncomment working parts.

Performance tests from blotter options

Compare current implementation as associative collection with Timestamps.jl based alternative. Timing and memory allocation with long transaction lists when calculating a representative (e.g. profit/loss) metric. The main question is whether hash table based indexing of timestamp keys offers any advantages for faster retrieval when iterating across all and some time points.

Write tests for results from sample trading strategies

List of housekeeping items:

  • decide on standardized data set to test against
  • store data in TimeArray
  • store data in xts
  • store data in pandas
  • store those datasets in the test directory and MarketData.jl
  • write 50/200 strategy results from quantstrat into tests
  • write 50/200 strategy results from zipline into tests
  • create tests with @pending evaluation

Test results from other packages should only involve returns

I put trading stats in test/quantstrat/golden_cross_BA.txt but this should be removed in favor of only comparing the returns on the account on a daily basis.

Comparing trading statistics is testing the results of the backtest and statistic algorithms at the same time, and these should be separated. The statistics should probably live in the FinancialAnalysis package and this data would be useful there once the returns results can be confidently accepted as reasonable and accurate.

The test/quanstrat/quantstrat_cross.R file does return an xts object called rets and this is the result that needs to be referenced.

More realistic exchange simulator

(For later) more realistic exchange models, possibly based on SimJulia.jl. Initially to provide a test suite for the live trading functionality here (based on a "time history script" file with live-like simulation).

NOTE: This may evolve into a separate package to build market models and test trading strategies against those (i.e. 2 Julia processes interacting...)

Backtesting verification

Tests from Quantopian examples and selected forex strategies. Need to verify the basic functionality also providing samples for writing tests of user-defined strategies.

Upgrade to 1.0

Opening this issue as a reminder to upgrade to 1.0 (first to 0.7). To be done conjointly with JuliaQuant/Reactive.jl.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.