Releases: oceanprotocol/pdr-backend
v0.4.1
What's Changed
- Convert streamlit dashboard to Dash by @calina-c in #938
- Fix #963: [Sim, log] Main summary log line takes up >1 line by @trentmc in #964
- Fix #890: [Aimodel] Add Jaime's techniques: balance class weights in logistic regression, calibrate with isotonic by @trentmc in #959
- Fixes to sim plotting by @calina-c in #962
- Fix #965: add log loss metric to logs by @trentmc in #966
- Fix #977: [CLI] 'pdr view accounts' is too verbose by @trentmc in #978
- #971 - Organize payout slots and contract addresses based on shared slots by @trizin in #972
- Change sim plots entrypoint, add tests by @calina-c in #979
- Issue 804 - Thread multisim by @calina-c in #919
- Feature #981 - Integrate dydx exchange and sim by @trizin in #987
- Adds sim line logger. by @calina-c in #988
- Remove extra command line in fund_accounts parser. by @calina-c in #986
- Clarify when sim run starts by @calina-c in #985
- Plot log loss by @calina-c in #984
- Bump mypy from 1.9.0 to 1.10.0 by @dependabot[bot] in #994
- Bump eth-typing from 4.1.0 to 4.2.2 by @dependabot[bot] in #995
- Bump dash from 2.16.1 to 2.17.0 by @dependabot[bot] in #996
- Bump plotly from 5.21.0 to 5.22.0 by @dependabot[bot] in #998
- Fix #990: Add predictoor log line. by @calina-c in #999
- Fix #1003: Process dates with natural language processing. by @calina-c in #1004
- Towards #1009: Seasonal decomposition: Part 1/2: backend, unit test plots by @trentmc in #1016
- Fix #1022: [UX, CLI] 'pdr sim_plots' is key yet not shown by default by @trentmc in #1024
- Fix #1019 [Bug] AimodelDataFactory hangs, with 'fragmented' warning x 100 by @trentmc in #1023
- Towards #1009: in tests, plot rel strengths of trend - seasonality - resid by @trentmc in #1025
- Bump pyarrow from 15.0.2 to 16.0.0 by @dependabot[bot] in #1027
- Bump freezegun from 1.5.0 to 1.5.1 by @dependabot[bot] in #1028
- Bump eth-typing from 4.2.2 to 4.2.3 by @dependabot[bot] in #1029
- Bump ccxt from 4.3.11 to 4.3.21 by @dependabot[bot] in #1030
- Bump sapphire-py from 0.2.2 to 0.2.3 by @dependabot[bot] in #1031
- Towards #1009: plot ACF & PACF by @trentmc in #1026
- #1033 - slack bot warn when subgraph gets stuck by @trizin in #1034
- Bump ccxt from 4.3.21 to 4.3.27 by @dependabot[bot] in #1062
- Bump pyarrow from 16.0.0 to 16.1.0 by @dependabot[bot] in #1063
- Bump pylint from 3.1.0 to 3.2.1 by @dependabot[bot] in #1064
- Bump polars from 0.20.23 to 0.20.26 by @dependabot[bot] in #1066
- Update CLI ROSE and OCEAN payout to work with pred submitter manager by @trizin in #1056
- Bump requests from 2.31.0 to 2.32.0 by @dependabot[bot] in #1072
- Fix #1020: help with sim state storage by @calina-c in #1075
- Fix #1081 - ROSE payout doesn't transfer WROSE tokens from pred submitter instances by @trizin in #1082
- Feature #1061 - Set minimum slot threshold for payouts by @trizin in #1067
- Bump pylint from 3.2.1 to 3.2.2 by @dependabot[bot] in #1089
- Bump types-requests from 2.31.0.20240406 to 2.32.0.20240523 by @dependabot[bot] in #1090
- Bump ccxt from 4.3.27 to 4.3.33 by @dependabot[bot] in #1091
- Bump web3 from 6.17.2 to 6.19.0 by @dependabot[bot] in #1092
- Feature #1073 - [Predictoor] define max payout batch size by @trizin in #1074
- Adds train every n epochs for sim engine. by @calina-c in #1101
- Adds PPSS object retrieval in cli module. by @calina-c in #1114
- Feature #1113 - [pdr sim trader] prediction confidence threshold by @trizin in #1115
- Bump typeguard from 4.2.1 to 4.3.0 by @dependabot[bot] in #1124
- Bump requests from 2.32.0 to 2.32.3 by @dependabot[bot] in #1123
- Bump scikit-learn from 1.4.2 to 1.5.0 by @dependabot[bot] in #1121
- Bump ccxt from 4.3.33 to 4.3.38 by @dependabot[bot] in #1120
- Bump polars from 0.20.26 to 0.20.31 by @dependabot[bot] in #1122
- ARIMA-style feed analysis app by @KatunaNorbert in #1078
- Add sidebar to sim plots dash UI by @KatunaNorbert in #1112
- Add loading message to arima dashboard if lag > 50 by @KatunaNorbert in #1127
- Fix #1135: AttributeError: 'Series' object has no attribute 'has_nulls' by @trentmc in #1136
- Fix #1137: ValueError: how must be one of {'inner', ..}, got full by @trentmc in #1138
- Fix #1140: call to 'pdr sim_plots' has 'path not found' by @trentmc in #1141
- For #1137 redux: suppress warnings that emerged from fix by @trentmc in #1142
- Fix #1117: Classifier-via-regressor by @trentmc in #1125
- Fix sim plots tab switches to initial state when new data is loaded by @KatunaNorbert in #1149
- Fix #1133: Enable linear logistic classifier to use lasso, ridge, or … by @trentmc in #1152
- Open sim dash browser view automatically when sim is started by @KatunaNorbert in #1150
- Fix #1156: [Bug, sim_plots] Model perf plots: fix y-axis labels, give more x-axis breathing space by @trentmc in #1157
- Fix #1158: deprecate dydx by @trentmc in #1159
- Fix #1151 #1161 #1148 #1154: [Sim] Improve impact & model response plots by @trentmc in #1160
- Fix #1162: [Sim] log has e-notation even for values in rng 0-100 by @trentmc in #1164
- #Fix 1163: in regressors, var impacts are probably wrong by @trentmc in #1165
- Fix #1163: [Bug, sim plots] In regressors, var impacts are probably wrong [fixed] by @trentmc in #1166
- Fix #1154: Var impact bar plots giving lower-bound impact <<0 [fixed] by @trentmc in #1167
- Fix #1147: Re-order 'Profit' plots to give more space for time dimension by @trentmc in #1168
- Fix #1134: move test_ccxt_exchanges.py by @trentmc in #1169
- Bump types-requests from 2.32.0.20240523 to 2.32.0.20240602 by @dependabot[bot] in #1172
- Bump pylint from 3.2.2 to 3.2.3 by @dependabot[bot] in #1171
- Bump ccxt from 4.3.38 to 4.3.42 by @dependabot[bot] in #1170
- Make font sizes outside graphs smaller to give more space to the graphs by @KatunaNorbert in #1173
- Fix #1139 - [test_submit_prediction_and_payout] Increase prediction epoch by @trizin in #1178
- Fix #1174: Can't launch ARIMA plots // BoxCox unstable by @KatunaNorbert in #1175
- Fix #1179: Refactor: move code to new statutil/ directory by @trentmc in https://github.com/oceanprotocol/pdr-...
v0.4.0
What's Changed
New Features & Breaking Changes
- Towards #779: Easier benchmarking via new 'multisim' CLI. [@trentmc] (#783)
- #701 - Prediction manager contract and Predictoor Agent with PredSubmitterManager. [@trizin](#786, #877)
- Adds multisim ids to enable multiple streamlit runs/comparisons. [@calina-c] (#857)
- Adds snapshots slider for sim engine plots. [@calina-c] (#851)
- Issue #749 - Use streamlit to display graphs in sim plotter. [@calina-c] (#793)
- Issue #842 - Convert plots to plotly. [@calina-c] (#853)
- Remove matplotlib. [@calina-c] (#876)
- Issue #867 - CI warnings. [@calina-c] (#872)
- Add streamlit info in predictoor.md. [@calina-c] (#873)
- #918 - Remove ganache dependency from predictoor tests. [@trizin] (#934)
- #930 - Remove CLI approach arg from predictoor. [@trizin] (#931)
Bug Fixes
- Fix #787, #795, #805, #806, #812, #806, #871, #889, #892, #899, #901, #907, #912, #917, #933: Various bug fixes including CLI refactors, DRY violations, datetime deprecations, timezone issues, and more. [@trentmc]
- Fix #791: Add sim/lake_ss_test_dict to avoid DRY violations. [@trentmc] (#792)
- Fix #702, #493: Check balances before submitting a prediction and new method safe_fetch_ohlcv(). [@trizin, @trentmc] (#713, #875)
- Fix asyncio version by downgrading to 21.1 again for CI warnings. [@calina-c] (#837)
- Fix accuracy calculation for predictions and predictoors info. [@KatunaNorbert] (#840)
Documentation and Other Refactors
- Update predictoor.md. [@KatunaNorbert] (#926)
- Towards #879: Refactors in 'exchange/', and timezone bug fix. [@trentmc] (#896)
New Contributors
Full Changelog: v0.3.2...v0.4.0
v0.3.2
What's Changed
- Add safe fetch ohlcv dydx method by @graceful-coder in #686
- Currency special types by @calina-c in #676
- #695 - Claim rewards for second private key by @trizin in #700
- #692 - Implement cutoff seconds to stop predictions by @trizin in #696
- Finish special types - Remove asCurrency function (unused). by @calina-c in #706
- Fix #684: [Sim] Change 1d profit scatterplots to 2d by @trentmc in #705
- Fix #708: When prob(up) < 0.5, trader profit is always zero by @trentmc in #712
- Add dependency numbers. by @calina-c in #711
- Fix #719: [Bug, Aimodel] constant classifier by @trentmc in #720
- Fix #704: Calibrate model probabilities w CalibratedClassifierCV by @trentmc in #721
- Fix #722 #725 #723 classifier: balance T/F, weight newest by 10x, calc var importances (PR #727) by @trentmc in #727
- Fix #729: [Aimodel] ppss for weight_recent, balance_classes, calibrate_probs by @trentmc in #730
- #697 - Automatically claim payouts for previous epochs by @trizin in #698
- Bump pylint from 3.0.3 to 3.1.0 by @dependabot in #716
- Bump pytest-asyncio from 0.21.1 to 0.23.5 by @dependabot in #714
- Bump numpy from 1.24.4 to 1.26.4, upgrade CIs to Python 3.11 by @dependabot in #715
- Bump scikit-learn from 1.3.2 to 1.4.1.post1 by @dependabot in #717
- Bump pandas from 2.0.3 to 2.2.1 by @dependabot in #718
- Fix #678 - Deployer update for two sided prediction bots by @trizin in #690
- Fix #752 [Bug] ccxt FileNotFoundError in initialize_network_objects by @trentmc in #753
- Fix #750: [Sim] Refactor plot code in sim_engine by @trentmc in #755
- Extend work from #750: [Sim] Refactor plot code in sim_engine by @trentmc in #760
- Fix # 743: [DX] VisualStudio linter complains about README formatting by @Pfed-prog in #745
- Fix #732 - Refactor currency classes to reduce duplication by @trizin in #733
- Fix #657: [Bug, lake] pl.Dataframe constructor error by @trentmc in #762
- Fix #724 #674: [Sim] Plot rel importances of vars; plot contours for 2 most impt vars by @trentmc in #761
- For #493 step 2/4 add a new method safe_fetch_ohlcv_dydx() by @graceful-coder in #736
- Fix #726: [Sim] Log/plot better metrics: f1, precision, recall by @trentmc in #780
- Bump types-pyyaml from 6.0.12.12 to 6.0.12.20240311 by @dependabot in #763
- Bump matplotlib from 3.7.5 to 3.8.3 by @dependabot in #765
- Bump polars from 0.20.10 to 0.20.15 by @dependabot in #764
- Bump types-requests from 2.31.0.20240218 to 2.31.0.20240311 by @dependabot in #766
- Bump pyarrow from 15.0.0 to 15.0.1 by @dependabot in #767
- Fixes #784 - Query pending payouts - Get canceled slots by @trizin in #785
New Contributors
- @dependabot made their first contribution in #716
- @Pfed-prog made their first contribution in #745
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
Fixes a critical bug appeared in v0.3.0 predictoor agent. (#688)
- Fix #657: Float being interpreted as integer by @idiom-bytes in #669
- Fix #688: PredictoorContract deepcopy() causes RecursionError by @trentmc in #689
Full Changelog: v0.3.0...v0.3.1
v0.3.0
In this release, the main change is: prediction bots submit "up" and "down" predictions with a stake-weighted confidence on each, i.e. "two-sided prediction". This reduces epoch-to-epoch variance and increases profitability.
What's changed
- Predictoor bots: Two-sided prediction #670. Easy deployment of >1 agents via Kubernetes + CLI; pm2 deprecated #570
- Trader bots: live-mocking ability, enabling "ghost" trades.
- Simulator: predictions are two-sided. Trades use model confidence. New plots like predictoor profit vs. time and a visual of model probability response surface. Live trading possible.
- Data pipeline: better structure. Analytics are starting to get built on top.
- UX: There is now proper Python-style logging. ppss.yaml tuned. Small CLI utilities added.
- Core: The codebase is more robust, including greatly-expanded type-checking and several bug fixes. Predictoor and trader agents are refactored to be simpler. Technical debt is low -- no small feat.
Contributors: @trizin @calina-c @KatunaNorbert @kdetry @idiom-bytes @graceful-coder @trentmc
Full Changelog: v0.2.0...v0.3.0
v0.2.0
This release migrates existing main.py files to the pdr CLI. Agent configuration is now done in a YAML file, with the sole environment variable being for the private key. All agents are now operated from the pdr CLI.
What's Changed
Full Changelog: v0.1.3...v0.2.0
v0.1.3
What's Changed
- #430 - Do not fetch pending slots older than 3 days by @trizin in #431
- Convert filter timestamp to int - trueval by @trizin in #432
- Fix install bot link inside readme by @KatunaNorbert in #440
- #402 - Query Payouts: only get concluded slots by @trizin in #441
- Adds manual trigger to pytest by @calina-c in #486
- For #465 into main: Implement a delay to pause and retry in case of network errors by @trizin in #491
Full Changelog: v0.1.2...v0.1.3
v0.1.2
v0.1.1
What's Changed
- issue376: accuracy rate issue by @kdetry in #377
- Enforce newer ccxt and accomodate changes. by @calina-c in #386
- Increase default subgraph timeout and retry count by @trizin in #390
- #229 - Test
trueval agent batch.pygets stuck in infinite loop by @trizin in #367
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Initial Release
What's Changed
- Make sure all pdr repos are up to date by @trizin in #7
- Use block timestamp instead of block number by @trizin in #12
- Add a Dockerfile by @trizin in #18
- Use seconds instead of block number in subgraph module by @trizin in #22
- Towards #13: add unit tests by @trentmc in #17
- Towards #13: add unit tests by @trentmc in #24
- Create an env module in utils by @trizin in #11
- Add pytest workflow by @trizin in #25
- Update prediction submission logic by @trizin in #27
- Replace
pdr-sapphire-wrapperwithsapphire.pyby @trizin in #29 - Add publisher to pdr backend by @trizin in #30
- Add black, mypy and pylint workflow by @trizin in #37
- Fund wallets during publisher startup by @trizin in #44
- Fix send_encrypted_tx arguments by @trizin in #46
- Fix #38: improve dfbuyer random algorithm by @trizin in #39
- [predictoor] Infinite token approval and cache allowance by @trizin in #48
- Add contract unit tests by @trizin in #53
- Towards #51: trader README first cut by @trentmc in #59
- Towards #51 by @trentmc in #62
- Fix #51: Add local README for each stakeholder by @trentmc in #63
- Update predict.py docstring by @trizin in #64
- Add a readme for building and deploying a container image on azure by @trizin in #65
- migrate real-time prediction loop from pdr-model-experiments by @richardblythman in #49
- Fix #57: Remove floatvalue from utils and trueval agent by @trizin in #58
- Finish #54 - Enable (a) simple flow with random predictions, yet (b) examples of using actual models by @trentmc in #71
- Fix #68 - update READMEs based on Berkay's new azure readmes by @trentmc in #72
- Fix #73 - Predictoor output too verbose due to "connection timed out" subgraph logs by @trentmc in #74
- Fix #75: Refactor predictoor approach directory structure by @trentmc in #76
- Fix #77 - Refactor: shrink "env" module and its usage by @trentmc in #78
- Fix #80 - READMEs don't support subgraph querying by @trentmc in #81
- Towards #80 - readme doesn't specify to use thegraph by @trentmc in #82
- Fix #86 - contract.py does way too much, refactor it by @trentmc in #87
- Fix #90 - Fix pylint errors by @trentmc in #93
- Issue3 - Some epochs might not get truevals fix this by @trizin in #67
- Towards #13: add predictoor tests by @calina-c in #88
- Fix #92: Have unified way to call approach 1 vs 2 by @trizin in #94
- Issue10 - Detect and claim unclaimed profits by @trizin in #91
- Adds some publish tests. by @calina-c in #89
- Fix #99: MODELDIR error in CLI by @trentmc in #100
- Refactor trueval agent by @trizin in #103
- Bump ocean-contracts version to 2.0.0a11 by @trizin in #107
- Towards #13: rename ContractData -> Feed by @trentmc in #108
- Towards #13: refactor: create BaseConfig, and make TruevalConfig inherit from it by @trentmc in #109
- Towards #13: rename query_predictContracts -> query_feed_contracts by @trentmc in #114
- Add an interface class for PredictoorHelper contract and tests by @trizin in #106
- Towards #13: make get_feeds() returns dict of Feed, not dict of dict by @trentmc in #111
- Remove env vars from conftest ganache. by @calina-c in #112
- Towards #13: tests & refactoring predictoor/ by @trentmc in #101
- Fix #117 test_predictoor_batcher.py failures by @trentmc in #118
- Fix #119: module 'ccxt.kraken' does not have the attribute 'fetch_ohlcv' by @trentmc in #120
- Fix #115 add TruevalAgentBatch agent and tests by @trizin in #116
- Fix #79: Predictoor agents see subgraph by @trentmc in #123
- Fix #122: When running publisher, get errors in get_feeds() by @trentmc in #125
- #126 - Add ContractBase class by @trizin in #127
- Remove payout call from predictoor main flow and add a command to do
payoutby @trizin in #131 - Add error handling for every external call by @trizin in #132
- Reduce random stake amount by @trizin in #134
- Fix #136 - Refactor and test trader by @calina-c in #113
- [trader] cache previous traded epoch by @trizin in #151
- #153 - [trader] Optimize main loop by waiting till soonest epoch by @trizin in #155
- #149 - [trader] make logging informative and more succinct by @trizin in #154
- #158 - [trader] Rename get_trader to trade by @trizin in #160
- #157 - [trader] Move max tries to trader agent config class by @trizin in #159
- Bump ocean-contracts version to 2.0.0a12 by @trizin in #161
- add check script by @alexcos20 in #145
- Reorganise approach 1. by @calina-c in #156
- Increase stake amount by @trizin in #166
- Fix #60: Update READMEs for remote testnet by @trizin in #143
- #162 - Update publish script for tesnet by @trizin in #163
- #148 - Add documentation for env vars by @trizin in #152
- Async feed processing in trader agent by @trizin in #167
- Refactor dfbuyer agent and implement new algorithm by @trizin in #168
- #171 - dfbuyer should handle gas related reverts by @trizin in #172
- "Get consume so far" should fetch all orders by @trizin in #175
- #176 - trueval should use close prices by @trizin in #177
- [dfbuyer] Fix expected consume calculation by @trizin in #181
- Add dfbuyer to check script by @trizin in #178
- #184 - slack notify CI is failing by @trizin in #185
- Add mainnet deployment configuration into publisher by @trizin in #187
- Bump ocean-contracts version to 2.0.0a14 by @trizin in #188
- #190 - check if subgraph is in sync before take step by @trizin in #193
- Update & add READMEs for remote mainnet by @trizin in #189
- Fix #199: Predictoor log says: Timestamp={block['timestamp']} by @trentmc in #201
- For #194 and generally: add more cleanup info to barge.md by @trentmc in #203
- Fix #196: Add link to mainnet subgraph by @trizin in #202
- Fix #204: Make predictoor payout module rock solid by @trizin in https://github.com/oceanprotocol/pdr-backend/pu...