Skip to content

Commit e39e44e

Browse files
author
rob
committed
VERSION 1.0
1 parent adf2d8d commit e39e44e

File tree

2 files changed

+113
-140
lines changed

2 files changed

+113
-140
lines changed

DONE_TO_DO.md

Lines changed: 111 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -1,177 +1,182 @@
11
# Release notes
22

3+
## Version 1.00
4+
5+
- Fixed a few bugs
6+
- Added Bitcoin data, as everyone wants it
7+
- Is pretty stable so version 1.0 seems appropriate (also my birthday)
8+
39
## Version 0.90
410

5-
Completely refactored accounting code.
6-
Completely refactored optimisation code.
7-
Moved 'quant' type functions to sysquant: robust_vol_calc - you may get error messages - update your config
8-
Renamed certain functions in systems.rawdata (used by 'fancier' trading rules) - update your config
11+
- Completely refactored accounting code.
12+
- Completely refactored optimisation code.
13+
- Moved 'quant' type functions to sysquant: robust_vol_calc - you may get error messages - update your config
14+
- Renamed certain functions in systems.rawdata (used by 'fancier' trading rules) - update your config
915

1016

1117
## Version 0.85
1218
**WARNING! FROM VERSION 0.85.0 IS A MAJOR UPGRADE. SEE [pandas_upgrade](pandas_upgrade.md) BEFORE DOING ANYTHING!
1319

14-
Upgraded pandas and arctic versions
15-
Added 'Pause' process status
16-
Refactored and tidied control code
17-
Control process now sleep when not needed to save energy
18-
Removed option to specify machine to run process on
20+
- Upgraded pandas and arctic versions
21+
- Added 'Pause' process status
22+
- Refactored and tidied control code
23+
- Control process now sleep when not needed to save energy
24+
- Removed option to specify machine to run process on
1925

2026
## Version 0.80
2127

22-
Finished refactoring of production code (or at least, for now!)
23-
sysproduction/diagnostics now renamed reporting
24-
sysproduction/data code now uses generic handler and property methods to access data
25-
broker API now has proper base classes
26-
Tinkered with requirements to get running on new machine
28+
- Finished refactoring of production code (or at least, for now!)
29+
- sysproduction/diagnostics now renamed reporting
30+
- sysproduction/data code now uses generic handler and property methods to access data
31+
- broker API now has proper base classes
32+
- Tinkered with requirements to get running on new machine
2733

2834
## Version 0.75
2935

30-
Moved defaults.yaml to /sysdata/config directory
31-
Removed 'example' strategy from config files - strategies need to be explicit in private yaml config
32-
Cleaned up configuration code. Production config now accessed through data blob where possible.
33-
Messed up order database by changing formats; let me know if you have any issues reading your old orders
36+
- Moved defaults.yaml to /sysdata/config directory
37+
- Removed 'example' strategy from config files - strategies need to be explicit in private yaml config
38+
- Cleaned up configuration code. Production config now accessed through data blob where possible.
39+
- Messed up order database by changing formats; let me know if you have any issues reading your old orders
3440

3541
## Version 0.70
3642

37-
Massive refactoring mainly of order code but also IB client structure. Should be backwardly compatible with old saved orders except 'split' orders which are ignored. Read 'journey of an order' in production code for granular detail.
38-
39-
added remote monitoring
43+
- Massive refactoring mainly of order code but also IB client structure. Should be backwardly compatible with old saved orders except 'split' orders which are ignored. Read 'journey of an order' in production code for granular detail.
44+
- added remote monitoring
4045

4146
## Version 0.60.0
4247

43-
Split out control configuration from other YAML files (**YOU WILL NEED TO CHANGE PRIVATE CONFIG** look at the production docs!)
44-
Refactoring of run and control processes mostly into new syscontrol module
45-
Added simple monitoring tool
46-
Added email 'to' option (**YOU WILL NEED TO CHANGE PRIVATE CONFIG TO INCLUDE email_to parameter**)
48+
- Split out control configuration from other YAML files (**YOU WILL NEED TO CHANGE PRIVATE CONFIG** look at the production docs!)
49+
- Refactoring of run and control processes mostly into new syscontrol module
50+
- Added simple monitoring tool
51+
- Added email 'to' option (**YOU WILL NEED TO CHANGE PRIVATE CONFIG TO INCLUDE email_to parameter**)
4752

4853
## Version 0.52.0
4954

50-
Mostly refactoring and documenting the creation and storage of data
55+
- Mostly refactoring and documenting the creation and storage of data
5156

5257

5358
## Version 0.51.0
5459

55-
Essentially 'finished' production.md (in as much as anything can be finished...)
56-
Changed data Blobs so now take lists of objects rather than str, easier to see dependencies
60+
- Essentially 'finished' production.md (in as much as anything can be finished...)
61+
- Changed data Blobs so now take lists of objects rather than str, easier to see dependencies
5762

5863
## Version 0.50.0
5964

60-
(Done loads of work but forgotten to update the version number or this file. So let's reward ourselves with a 0.20 version bump. The following list is almost certainly incomplete...)
61-
Done loads of documentation for production
62-
Added position limits
63-
Removed broker base classes as redundant
64-
Minimum tick size used in setting limit orders
65-
Stopped double counting of volumes when daily/intraday data mixed
66-
Added startup script
67-
Fixed issues with time zone mismatches
68-
Added trades report, strategy report, signals report, risk report, p&l report
69-
Position locks
70-
Added interactive diagnostics, interactive order stack, interactive controls
71-
Execution algo!
72-
Added capability to trade
65+
- (Done loads of work but forgotten to update the version number or this file. So let's reward ourselves with a 0.20 version bump. The following list is almost certainly incomplete...)
66+
- Done loads of documentation for production
67+
- Added position limits
68+
- Removed broker base classes as redundant
69+
- Minimum tick size used in setting limit orders
70+
- Stopped double counting of volumes when daily/intraday data mixed
71+
- Added startup script
72+
- Fixed issues with time zone mismatches
73+
- Added trades report, strategy report, signals report, risk report, p&l report
74+
- Position locks
75+
- Added interactive diagnostics, interactive order stack, interactive controls
76+
- Execution algo!
77+
- Added capability to trade
7378

7479
## Version 0.30.0
7580

76-
Introduced capital model for production
77-
Fixed bug in implementation of correlation to covariance
78-
Added optional code for risk overlay [see blog](https://qoppac.blogspot.com/2020/05/when-endogenous-risk-management-isnt.html)
79-
Moved fx cross logic out of sim data into fxPricesData
80-
Strategies now run backtests from configuration file
81+
- Introduced capital model for production
82+
- Fixed bug in implementation of correlation to covariance
83+
- Added optional code for risk overlay [see blog](https://qoppac.blogspot.com/2020/05/when-endogenous-risk-management-isnt.html)
84+
- Moved fx cross logic out of sim data into fxPricesData
85+
- Strategies now run backtests from configuration file
8186

8287
## Version 0.29.0
8388

84-
Added price 'spike' checker, and manual price checking service
85-
Removed PIL library (issue 161)
86-
Fixed ib_insync PIP issue (pull 162)
87-
MongoDb logs will now try to email user if a critical error is raised
89+
- Added price 'spike' checker, and manual price checking service
90+
- Removed PIL library (issue 161)
91+
- Fixed ib_insync PIP issue (pull 162)
92+
- MongoDb logs will now try to email user if a critical error is raised
8893

8994
## Version 0.28.0
9095

91-
IB now uses ib_insync, not native IB library
96+
- IB now uses ib_insync, not native IB library
9297

9398
## Version 0.27.0
9499

95-
Cleaned up way defaults and private config files work
96-
Removed separate mongodb config file
97-
Added production code to run a system backtest and save optimal position state
98-
Cleaned up the way path and filename resolution works
99-
Added production code to backup mongodb to .csv files
100+
- Cleaned up way defaults and private config files work
101+
- Removed separate mongodb config file
102+
- Added production code to run a system backtest and save optimal position state
103+
- Cleaned up the way path and filename resolution works
104+
- Added production code to backup mongodb to .csv files
100105

101106
## Version 0.26.0
102107

103-
Added production code to get daily futures prices from IB, update sampled contracts, update multiple and adjusted prices.
108+
- Added production code to get daily futures prices from IB, update sampled contracts, update multiple and adjusted prices.
104109

105110
## Version 0.25.0
106111

107-
Can now get individual futures prices from IB, both historical daily and intraday (with get_prices_at_frequency_for_* methods)
108-
Added code to deal with VIX weekly expiries - they can now be ignored
109-
Caching IB contract objects in IB client as rather expensive
110-
IB client will now avoid pacing violations
111-
Removed futuresContract.simple() method; you can now just do futuresContract("AUDUSD", "yyyymmdd")
112-
Cleaned up IB client code, error handling is now consistent
113-
Added broker_get_contract_expiry_date method to brokerClient and ibClient
114-
IB connection will now check to see if a clientid is being used even if one is passed. Has '.terminate' method which will try and clear clientid.
115-
.csv config files are cached in IB price API objects
112+
- Can now get individual futures prices from IB, both historical daily and intraday (with get_prices_at_frequency_for_* methods)
113+
- Added code to deal with VIX weekly expiries - they can now be ignored
114+
- Caching IB contract objects in IB client as rather expensive
115+
- IB client will now avoid pacing violations
116+
- Removed futuresContract.simple() method; you can now just do futuresContract("AUDUSD", "yyyymmdd")
117+
- Cleaned up IB client code, error handling is now consistent
118+
- Added broker_get_contract_expiry_date method to brokerClient and ibClient
119+
- IB connection will now check to see if a clientid is being used even if one is passed. Has '.terminate' method which will try and clear clientid.
120+
- .csv config files are cached in IB price API objects
116121

117122
## Version 0.24.0
118123

119-
Can now pass keyword arguments to data methods when creating a trading rule (Enhancement # 141)
120-
Fixed bugs relating to building multiple and adjusted prices
121-
Slight refactoring of futuresContractPrices objects. These only have FINAL, not CLOSE or SETTLE prices now.
122-
Added more data
124+
- Can now pass keyword arguments to data methods when creating a trading rule (Enhancement # 141)
125+
- Fixed bugs relating to building multiple and adjusted prices
126+
- Slight refactoring of futuresContractPrices objects. These only have FINAL, not CLOSE or SETTLE prices now.
127+
- Added more data
123128

124129
## Version 0.23.0
125130

126-
'get_filename_for_package' can now take absolute as well as relative paths, and can cope with separate file names
127-
Updated legacy .csv files
128-
Fixed a few bugs
129-
Can now get unexpired contracts for a given instrument using 'contractDateWithRollParameters.get_unexpired_contracts_from_now_to_contract_date()'
131+
- 'get_filename_for_package' can now take absolute as well as relative paths, and can cope with separate file names
132+
- Updated legacy .csv files
133+
- Fixed a few bugs
134+
- Can now get unexpired contracts for a given instrument using 'contractDateWithRollParameters.get_unexpired_contracts_from_now_to_contract_date()'
130135

131136
## Version 0.22.0
132137

133138
*Now requires python 3.6.0, pandas 0.25.2*
134-
Fixed a few bugs in production functions for FX prices
135-
Logging now requires an explicit labelling argument, eg `log=logtoscreen("String required here")
136-
Changed mongodb logging so now indexes on unique ID
137-
Generally cleaned up logging code
138-
Moved update fx price logic inside generic fx price object
139+
- Fixed a few bugs in production functions for FX prices
140+
- Logging now requires an explicit labelling argument, eg `log=logtoscreen("String required here")
141+
- Changed mongodb logging so now indexes on unique ID
142+
- Generally cleaned up logging code
143+
- Moved update fx price logic inside generic fx price object
139144

140145
## Version 0.21.0
141146

142-
Removed dependency on Quandl currency for setting up spot FX, now uses investing.com
143-
Fixed issues relating to robust vol calc, date offset in roll calendars
147+
- Removed dependency on Quandl currency for setting up spot FX, now uses investing.com
148+
- Fixed issues relating to robust vol calc, date offset in roll calendars
144149

145150
## Version 0.20.0
146151

147-
Started documenting 'how to run a production system'
148-
Created logging to mongo database
149-
Refactoring of mongo and arctic connections
150-
Started creating crontab and scripts for various production functions (read and write FX prices)
151-
Added code to ensure unique client ID for IB
152+
- Started documenting 'how to run a production system'
153+
- Created logging to mongo database
154+
- Refactoring of mongo and arctic connections
155+
- Started creating crontab and scripts for various production functions (read and write FX prices)
156+
- Added code to ensure unique client ID for IB
152157

153158
## Version 0.19.0
154159

155-
Added connection code for Interactive Brokers. See [connecting pysystemtrade to interactive brokers](/docs/IB.md) for more details.
156-
Implemented data socket for spot FX, getting data from IB
157-
Added handcrafting optimisation code.
160+
- Added connection code for Interactive Brokers. See [connecting pysystemtrade to interactive brokers](/docs/IB.md) for more details.
161+
- Implemented data socket for spot FX, getting data from IB
162+
- Added handcrafting optimisation code.
158163

159164
## Version 0.18.2
160-
Added methods to read weight data from csv files
161-
Put generalised non linear mapping into forecast combination
162-
Added flag option to use process pools for parallel processing - but not actually used yet
163-
Cleaned up setup.py file now finds data files recursively
164-
Fixed bug in getting asset class data from csv config files
165+
- Added methods to read weight data from csv files
166+
- Put generalised non linear mapping into forecast combination
167+
- Added flag option to use process pools for parallel processing - but not actually used yet
168+
- Cleaned up setup.py file now finds data files recursively
169+
- Fixed bug in getting asset class data from csv config files
165170

166171
## Version 0.18.1
167-
Finished populating configuration files for Quandl and roll configuration.
168-
Debugged futures.md documentation file.
172+
- Finished populating configuration files for Quandl and roll configuration.
173+
- Debugged futures.md documentation file.
169174

170175
## Version 0.18
171-
See [futures documentation](/docs/futures.md) for more details.
172-
New data sources: Quandl. Data storage in mongodb and arctic is now supported.
173-
Back-adjustment is possible and can be done 'on the fly' or from scratch with new data.
174-
Further refactoring of sim data objects to support the above.
176+
- See [futures documentation](/docs/futures.md) for more details.
177+
- New data sources: Quandl. Data storage in mongodb and arctic is now supported.
178+
- Back-adjustment is possible and can be done 'on the fly' or from scratch with new data.
179+
- Further refactoring of sim data objects to support the above.
175180

176181
## Version 0.17
177182
Massive refactoring of sim data objects, to support alternative data sources and backadjusting
@@ -189,14 +194,14 @@ Added quandl data (but only for individual futures contracts right now so useles
189194
Removed uses of old carry function which was deprecated
190195

191196
## Version 0.16.2
192-
Fixed incorrect calculation of returns over weekends
193-
Forecast scalars now only pool across the set of instruments using a given trading rule
194-
Changed error handling for empty Rules() objects
195-
Added TOC to userguide.md file
197+
- Fixed incorrect calculation of returns over weekends
198+
- Forecast scalars now only pool across the set of instruments using a given trading rule
199+
- Changed error handling for empty Rules() objects
200+
- Added TOC to userguide.md file
196201

197202
## Version 0.16.1
198-
Updated to pandas 0.22.0
199-
Fixed issue #64, #68, #70 and other issues relating to pandas API update breaking correlation matrices
203+
- Updated to pandas 0.22.0
204+
- Fixed issue #64, #68, #70 and other issues relating to pandas API update breaking correlation matrices
200205

201206
## Version 0.16.0
202207
Moved most examples except core to separate git [here](https://github.com/robcarver17/pysystemtrade_examples)
@@ -434,37 +439,5 @@ Moved most examples except core to separate git [here](https://github.com/robcar
434439

435440

436441

437-
# Bugs to fix
438-
439-
* If you use a non USD currency then you get a flat spot earlier in the account curve. It should be NAN
440-
441-
# Features to add -next release
442-
443-
444-
# Features to add - later releases
445-
446-
* Simulation:
447-
448-
* Parallel processing of - getting data, trading rules, p&l calculation, optimisation
449-
* Create live config from a system object (Put final value of estimates into a yaml file)
450-
* Check systems have correct attributes; check turnover, minimum size, right forecast scalars (distribution across instruments) etc
451-
* Check does 'cheap rules' not work when fixed instrument rules, know about weight==0
452-
* Refactor yaml code to drop pyyaml (no long supported)
453-
* Add risk overlay
454-
455442

456-
* Live trading:
457443

458-
* accounting
459-
* order / position reconciliation
460-
* issue market order
461-
* execution algos
462-
* control functions
463-
* get pricing data system
464-
* Reporting:
465-
* risk report
466-
* risk by asset class
467-
* interrogate signal object generated at run time
468-
* p&l report
469-
* trades report
470-

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ Rob Carver
77
[https://qoppac.blogspot.com/p/pysystemtrade.html](https://qoppac.blogspot.com/p/pysystemtrade.html)
88

99

10-
Version 0.90.0
10+
Version 1.00.0
1111

1212

13-
20210429
13+
20210511
1414

1515

1616

0 commit comments

Comments
 (0)