AlgoTraderAlgoTrader Documentation

AlgoTrader Reference Documentation

Algorithmic Trading Software


Preface
1. Document Conventions
1.1. Typographic Conventions
1.2. Pull-quote Conventions
1.3. Notes and Warnings
1. Introduction
2. Installation and Deployment
2.1. Development Environment Installation
2.1.1. Prerequisites
2.1.2. AlgoTrader Eclipse IDE Installation
2.1.3. Next Steps
2.2. Server Environment Installation
2.2.1. Docker based Installation
2.2.2. Docker Containers
2.2.3. Docker Compose
2.2.4. Docker Management
2.3. VM Arguments
3. Building AlgoTrader
3.1. Command Line
3.1.1. Git Checkout
3.1.2. Maven Build
3.1.3. Docker Build
3.2. Eclipse
3.2.1. Git Checkout
3.2.2. Maven Build
3.2.3. Docker Build
4. Starting AlgoTrader
4.1. Simulation Mode
4.2. Live Trading Mode
4.2.1. Embedded Mode
4.2.2. Distributed Mode
4.3. Server Environment
4.3.1. Embedded Mode
4.3.2. Distributed Mode
5. Strategy Development
5.1. Creating a Trading Strategy
5.1.1. AlgoTrader Strategy Wizard
5.1.2. AlgoTrader Maven Archetype
5.1.3. Generated Artifacts Simple Archetype
5.1.4. Generated Artifacts Esper Archetype
5.2. Building a Trading Strategy
5.3. Hints for Strategy Development
5.3.1. Java based Strategies
5.3.2. Esper based Strategies
5.4. Strategy Groups
6. Strategy Backtesting
6.1. Exchange Simulator
6.2. In-Process Exchange Simulator
6.3. Simulation Process
6.4. Single Run Simulation
6.5. Automated Parameter Optimization
6.6. Performance Statistics
6.7. Multi Security Simulations
7. Architecture
8. Domain Model
8.1. Entities
8.1.1. Strategy
8.1.2. Security
8.1.3. Market Data Events
8.1.4. Order
8.1.5. Account
8.1.6. Transaction
8.1.7. Position
8.1.8. Cash Balance
8.1.9. Subscription
8.1.10. Exchange
8.1.11. Property
8.1.12. Order Preference
8.2. Data access objects (DAOs)
8.3. Services
8.3.1. Main Services
8.3.2. Private Services
8.3.3. Client Services
8.3.4. Order Services
8.3.5. Market Data Services
8.3.6. Historical Data Services
8.3.7. Reference Data Services
8.3.8. Calendar Service
8.3.9. Reconciliation Services
8.3.10. Reset Service
8.4. Value Object
8.5. Enumerations
9. Java Environment
9.1. AlgoTrader Project Structure
9.1.1. common project
9.1.2. core project
9.1.3. strategy projects
9.2. Java Packages
9.3. Maven Environment
9.3.1. algotrader-common
9.3.2. algotrader core
9.3.3. Maven assemblies
10. Code Generation
11. Esper Engine
11.1. Esper Introduction
11.1.1. Introduction to event streams and complex events using Esper
11.1.2. Event representations
11.1.3. Event Stream Analysis
11.1.4. Combining Pattern Matching with Event Stream Analysis
11.1.5. Named windows
11.1.6. Variables
11.2. Esper Quick Start Guide
11.2.1. Event Types
11.2.2. Creating a Statement
11.2.3. Adding a Subscriber
11.2.4. Adding a Listener
11.2.5. Sending events
11.2.6. Configuration
11.3. Esper Documentation
11.4. AlgoTrader specific Esper Artifacts
11.4.1. Engine & EngineManager
11.4.2. Modules
11.4.3. Tags
11.4.4. Subscribers
11.4.5. Listeners
11.4.6. Service method invocation in Esper scripts
11.4.7. Aggregation Functions
11.4.8. Callbacks
11.5. Esper Threading
12. Database
12.1. Entity Relationship Model
12.2. Data Source
12.3. Transaction Handling
13. Client
13.1. HTML5
13.1.1. Header
13.1.2. Order Table
13.1.3. Transaction Table
13.1.4. Positions Table
13.1.5. Market Data Table
13.1.6. Column Selection and Grouping
13.1.7. Chart Widget
13.1.8. Technologies
13.1.9. HTML5 Custom Widgets
13.2. AlgoTrader Eclipse IDE
13.2.1. AlgoTrader Perspective
13.2.2. Strategy Wizard
13.2.3. AlgoTrader Configuration Editor
13.2.4. Esper Colorer
14. Performance Measurement
14.1. Portfolio Value Logging
14.2. Portfolio Value Restoration Feature
15. Risk Management
16. Forex Handling
16.1. Currency Handling
16.1.1. Futures
16.1.2. Forex
16.1.3. Currency Attribution
16.2. Forex-Hedging
16.2.1. Virtual FX Positions (IB only)
16.2.2. FX Future
17. Options & Futures
17.1. Expiration
17.2. Leverage & Exposure
17.3. Symbol, ISIN & RIC
17.4. Delta Hedging
17.5. Option & Future Chain Download
17.6. Option Greeks
17.7. Option Pricing Engine
17.7.1. SABR Calibration
17.7.2. Option Pricing
17.7.3. References
17.8. OTC Options
18. Reconciliation
18.1. Partner Systems
18.2. Email Handling
18.3. FTP Handling
19. Broker/Exchange Interfaces
20. OrderManagement
20.1. Place Order
20.1.1. Trade Suggestions
20.1.2. Order Properties
20.2. Receive Fills
20.3. Internal Order Id Format
20.4. Symbology
21. Market Data
21.1. Creation of Bars based on Ticks
21.2. Numeric Precision
21.3. Price normalization
21.4. Market Data Gap Checking
21.5. Generic Events
22. Historical Data
22.1. InfluxDB
22.2. Live Data Recording
22.3. Historical Data Download
22.4. Interactive Brokers Historical Data Download
22.5. Quandl Historical Data Download
22.6. Google Finance Historical Data Download
22.7. Market Data File Format
22.7.1. Tick Data Files
22.7.2. Bar Data Files
23. Reference Data
24. Adapters
24.1. Fix Interface
24.2. IB Native Interface
24.3. IB Fix Interface
24.4. Bloomberg
24.5. QuantHouse
24.6. EzeSoft / Real Tick
24.7. Trading Technologies (TT)
24.8. Currenex
24.9. JP Morgan
24.10. UBS
24.11. DukasCopy
24.12. FXCM
24.13. LMAX
24.14. Nexus Prime
24.15. Fortex
24.16. Coinigy
24.16.1. Setup Instructions
24.17. Quandl
24.18. Session life-cycle events
24.19. Drop-copy support
24.20. FIX configuration
24.20.1. FIX logging
24.20.2. FIX message persistence
25. Execution Algos
25.1. Existing Execution Algos
25.2. Development of Execution Algos
26. Synthetic Securities and Derivative Spreads
26.1. Combination Example
26.2. Combination Service
26.2.1. Create Combination
26.2.2. Update Component Quantity
26.2.3. Remove a Component
27. Spring Services
27.1. Wiring Factories
27.2. ApplicationContext
27.3. Spring Profiles
27.4. Abstract Services
27.5. Service initialization order
28. Events and Messaging
28.1. Embedded ActiveMQ message broker
28.2. STOPM messaging over WebSockets transport
28.3. Embedded Jetty HTTP server
28.4. RESTful interface
28.5. JSON data binding
28.6. EventDispatcher
28.7. Event listeners
28.8. Strategy life-cycle events
28.9. JMS Destinations
29. Configuration and Preferences API
29.1. Configuration Files
29.2. Esper Variables
29.3. Config Providers
29.4. Config Beans
29.5. Config Locator
30. Processes and Networking
30.1. Processes
30.2. Sockets
30.3. RMI
30.4. REST over HTTP/S
30.5. Transport security
31. Hibernate Sessions and Caching
31.1. Hibernate Caching
31.1.1. Level-Zero Cache
32. Metrics
32.1. Configuration
32.2. Metrics Reporting
33. Logging
33.1. log4j2.xml
33.2. Production log4j2.xml
34. Reporting
A. Example Strategy "BreakOut"
A.1. Trading Idea
A.2. Example
A.3. Implementation
A.4. Installation & Startup
B. Example Strategy "Box"
B.1. Trading Idea
B.2. Implementation
B.3. Strategy Monitoring
B.4. Installation & Startup
C. Example Strategy "Pairs Trading"
C.1. Trading Idea
C.1.1. What Is Pairs Trading?
C.1.2. Pair Trading Lab
C.1.3. AlgoTrader - Pair Trading Lab Integration
C.2. Implementation
C.3. Installation & Startup
C.4. Strategy Monitoring
D. Example Strategy "IPO"
D.1. Trading Idea
D.2. Strategy Monitoring
D.3. Implementation
D.4. Installation & Startup
E. Example Strategy "EMA"
E.1. Trading Idea
E.2. Implementation
E.3. Installation & Startup
F. Example Strategy "Random"
F.1. Trading Idea
F.2. Implementation
F.3. Installation & Startup