-
Notifications
You must be signed in to change notification settings - Fork 5
Home
OpenTrading platform runs as a standalone Java process with a set of executors and listeners. It performs trading during weekdays and performs backtesting during weekends.
Basically, OpenTrading process performs the following.
- Starts at market open
- Receives market data from a data provider
- Consumes or calculates market technicals
- Executes trades (on Stocks/Options) for intraday/short/long term, based on various market strategies on a virtual/real account
- Closes positions, when SL (Stop Loss) or target is met
- Calculates P/L and stores trade performance
- Performs backtesting
- Persists data and transactions
- Generates reports
- Sends notifications
Note: Modules and it's names are not that final and we will be refining and redefining them in the days to come
Purpose: Bootstraps OpenTrading platform.
Repo Style: Poly
Parent: Defines spec for OpeTrading platform
- open-trading-core
Children: Implement the parent
- open-trading-alpaca
- open-trading-tdameritrade
- open-trading-tastyworks
- open-trading-zerodha
- open-trading-ibkr
Purpose: Persists data across the platform.
Repo Style: Mono (Multi modules)
Repo:
- open-trading-persistence
Dependency: Defines persistence spec
- open-trading-persistence-core
Dependents: Implement the dependency
- open-trading-persistence-postgresql
- open-trading-persistence-s3
Purpose: Pulls market data from data providers.
Repo Style: Mono (Multi modules)
Repo:
- open-trading-data
Dependency: Defines spec for connecting, streaming, requesting market data from data providers
- open-trading-data-core
Dependents: Implement the dependency
- open-trading-data-finnhub
- open-trading-data-yahoo
Purpose: Computes market technicals required for technical analysis.
Repo Style: Mono
Repo:
- open-trading-compute
Purpose: Defines strategies.
Repo Style: Mono
Repo:
- open-trading-strategy
Purpose: Analyzes market technicals. Executes strategies. Generates signals for opening trades.
Repo Style: Mono
Repo:
- open-trading-oracle
Purpose: Receives trade signals and opens/closes trades.
Repo Style: Mono
Repo:
- open-trading-executor
Purpose: Tracks executed trades and generates signals for closing trades.
Repo Style: Mono
Repo:
- open-trading-watchdog
Purpose: Simulates market data.
Repo Style: Mono
Repo:
- open-trading-simulator
Purpose: Processes historical data and backtests strategies.
Repo Style: Mono
Repo:
- open-trading-backtest
Purpose: Processes persisted data and generates reports for visualizing trade performance.
Repo Style: Mono
Repo:
- open-trading-report
Purpose: Receives/Generates and sends notifications.
Repo Style: Mono (Multi modules)
Repo:
- open-trading-mailer
Dependency: Defines mailer spec
- open-trading-mailer-core
Dependents: Implement the dependency
- open-trading-mailer-email
- open-trading-mailer-sms
Purpose: Focuses on aspects like logging and auditing.
Repo Style: Mono
Repo:
- open-trading-aspect
Purpose: Acts as a gateway between UI client and services.
Repo Style: Poly
Parent: Defines facade spec
- open-trading-facade-core
Children: Implement the parent
- open-trading-facade-boot
- open-trading-facade-simulator
- open-trading-facade-report
- open-trading-facade-mailer
Purpose: Interacts with services and helps controlling, managing and visualizing data and reports.
Repo Style: Poly
Parent: Defines view spec
- open-trading-glass-core
Children: Implement the parent
- open-trading-glass-platform
- open-trading-glass-simulator
- open-trading-glass-report
- open-trading-glass-mailer