From 4ab7bc18463c8c4307c2d35a0712419773c4064a Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Tue, 8 Jul 2025 01:33:22 +0300 Subject: [PATCH] tweaks, try live trading --- NN/__pycache__/main.cpython-312.pyc | Bin 11231 -> 0 bytes NN/utils/__pycache__/__init__.cpython-312.pyc | Bin 611 -> 0 bytes .../data_interface.cpython-312.pyc | Bin 29070 -> 0 bytes config.yaml | 10 +- core/training_integration.py | 7 +- enhanced_realtime_training.py | 15 +- run_clean_dashboard.py | 292 +++++++----------- web/clean_dashboard.py | 18 +- 8 files changed, 141 insertions(+), 201 deletions(-) delete mode 100644 NN/__pycache__/main.cpython-312.pyc delete mode 100644 NN/utils/__pycache__/__init__.cpython-312.pyc delete mode 100644 NN/utils/__pycache__/data_interface.cpython-312.pyc diff --git a/NN/__pycache__/main.cpython-312.pyc b/NN/__pycache__/main.cpython-312.pyc deleted file mode 100644 index 7e8467b60cda1e35ffdb888b1f8216c65f012ff8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11231 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 diff --git a/NN/utils/__pycache__/__init__.cpython-312.pyc b/NN/utils/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index db320202c0a61591cdb08e240137392f3779b13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 611 zcmZutJ#Q2-5Vd#rKD2NVq@GNz>$|qdWkN7 zcW>nR;jwhE;PnY_5Ne}6m)gOy$E{$#)U}r;bhs8!EAAYIUxxyu27ip8*MfQ@=q(pg zH{e#zV>`=Vz(?*me9|86oYy#m4@PUOy#sH+B3E9v2wRwl!%=EsO^v;n^e{K}KCRXW zR4%^>mn2i#O`_6&q0rbpTrabyPo*`wMeRfP@quhKSN-6^V%Te%+B8tuET%z7#dO?_ z7!#&utlNn@F}XF+k9H3>3p3QGJ+9kzJ?(mM&D(QDBCZr;=j1j}lfO^*XH{_bIo_aZ zOk-YGMN!3ryNU(4^o+e+th({r;BTq$z1<10=+Qk1=~qfA{hbVH_U93y&#uVxEAr}R LzW;S(ABOLLByzj` diff --git a/NN/utils/__pycache__/data_interface.cpython-312.pyc b/NN/utils/__pycache__/data_interface.cpython-312.pyc deleted file mode 100644 index 5c90249fd6808be2c4f360cdf3eba2cb335acd4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29070 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 kjSno9(Xs_grD&;)ZA@C0y