Next:
Preface
Up:
Up
The Trading-shim Manual
Bill Pippin
Preface
Copyright
Introduction
Outline
Caveats
Notation
Acknowledgements
Free Software
Developing the Shim
Learning About Finance
Personal Thanks
Why the Shim?
Background
Motivation
Why Not a Lightweight Library?
What Features Do We Want?
The Shim Architecture
Tutorial
Installation, Setup, and Startup
Resource Requirements
The Network
The Trading-shim Database
The IB tws
Resource Selection
Program Configuration
Download and Compile the Shim
Allow Connections to the IB tws
Provide the Connection Parameters
Database Creation
Set the Dbms Isolation Level
Create the Databases
Shim Startup
Run the Shim
Run the Test Scripts
Locate and View Output
The Shim Command Line
Choosing the Mode
Choosing Options
Deciding Where to Run the Shim
Troubleshooting Connect Problems
Using the Shim
The
trading-shim
Command Set
Commands to Control the Shim
Commands that Trigger Requests
IB tws api Protocol Events
Requests to the IB tws
Messages from the IB tws
Requests
Messages
The Downstream Text Protocols
The Command Language
The Shim Output Format
Adding Info to the Database
Adding Symbols and Contracts to the Database
Data for the table Underlying
Data for the table Symbol
Data for the table Contract
Reference
Languages and IO
The Binary Upstream Protocols
Portability and the Tranfer Encoding
Common Features
The Client - IB tws Handshake
The Shim Output Channels
File Writes
Database Posts
The Database Architecture
Patterns, Tables, and Classes
Significant Design Patterns Used in the Shim
Binding Patterns
The Singletree
Type Symbols
Factories, Accumulators, and Wrappers
The Shim Database
Database and Other Scripts
The Type System
The Fundamental Three-Way Partition for Types
Multiple Inheritance in the Type System
Input Matching
The Full Hierarchy
Application Finite Domain Dual Types
Atoms: the Routeable Objects
Database Tuples
The Event Hierarchy
IO Stream Objects
Time-related State
The TimeStamp
The Clock
The Timer
The Scheduler
The Task Set
Stages of Computation
Initialization Via Construction of the Singletree
one::Constants
iof::IoFlow
one::Router
Delayed initialization
Modes, Options, and Commands
Building the Internal Database Dependency Graph
IO Selection and Event Scheduling
Calculating the Processor Clock Frequency
Finite State Automata Definitions
Query Data Bar Intervals
Input Analysis
The Internal Database Update Algorithm
The Event Input Algorithm
Tokenization and Type Checking
Object Routing and Processing
The Subscription Watchlist Update Algorithm
Output Processing
Request Sending
Dbms Post
Event Logging
The
Position
,
OrderContext
Command
The
Wire
Command
Order Wire Format Specification
Dealing with Broken Compiles Caused by Preprocessor Macros
Exploring the Sources Directly
Roadmap
Appendices
Related Command Scripts
The Makefile
Database and Table Setup
Database Setup
Table Creation and Recreation
Common Table Creation Scripts
The Regression Test Scripts
bin/regress
bin/unsafe
bin/includes
The Filter Scripts
bin/c++.filter
The Log Selectors
The Binary Converters
Directed Graph Diagram Construction
Error Messages and Exceptions
Library Components and Usage
Singletons and Constants
The Components Singleton
The Memory Allocator
The Token Type Hierarchy
Strings, Ids, Hash Codes, and Text Buffers
The String Component
Hash Code Computation
Buffer Types and Their Uses
Equivalence Classes and Logic Variables
Representing Equality Theories Via Disjoint Set Union
Single Assignment Pointers as Logic Variables
Block-Doubling Containers
Block-Doubling Via Handles
Vectors and Queues
Splay Trees
Hashed Functions
Mostly Declarative Tables and Sequences
Logical Tables
Sequences
System Call Wrappers
List of Tables
List of Figures
Bibliography
Bill Pippin 2008-10-10