├── .github └── workflows │ └── test.yml ├── .gitignore ├── Dockerfile-dataloader ├── LICENSE ├── README.md ├── docker-compose.yml ├── hft ├── __init__.py ├── backtesting │ ├── __init__.py │ ├── backtest.py │ ├── data.py │ ├── output.py │ ├── readers.py │ └── strategy.py ├── dataloader │ ├── __init__.py │ ├── build.sh │ ├── callbacks │ │ ├── __init__.py │ │ ├── bitmex.py │ │ ├── clickhouse │ │ │ ├── __init__.py │ │ │ ├── clickhouse_cmds.py │ │ │ └── clickhouse_connector.py │ │ ├── connectors.py │ │ ├── kdb │ │ │ ├── __init__.py │ │ │ └── kdb_connector.py │ │ └── message.py │ ├── clickhouse.config │ ├── config.py │ ├── data_processor.py │ ├── kdb │ │ ├── init.q │ │ └── safe_update.q │ ├── loader.py │ ├── requirements.txt │ └── run.sh ├── environment │ ├── __init__.py │ ├── rl.py │ └── sampler.py ├── strategies │ ├── __init__.py │ └── gatling.py ├── units │ ├── __init__.py │ ├── filters.py │ ├── metric.py │ └── metrics │ │ ├── __init__.py │ │ ├── composite.py │ │ ├── instant.py │ │ └── time.py └── utils │ ├── __init__.py │ ├── consts.py │ ├── data.py │ ├── helper.py │ ├── logger.py │ └── types.py ├── notebooks ├── Gatling.ipynb ├── Hayashi-Yoshido.ipynb ├── Plots.ipynb ├── RL-v1.ipynb └── Sampler-example.ipynb ├── requirements.txt ├── setup.py └── tests ├── backtest_test.py ├── filter_test.py ├── gatling_test.py ├── metric_test.py ├── reader_test.py ├── resources ├── orderbook │ ├── orderbooks.csv.gz │ └── trades.csv.gz ├── snapshots_depth5.csv └── snapshots_filter.csv ├── restore_sequence_util.py ├── rl_example_test.py ├── sampler_test.py ├── strategy_test.py ├── test_utils.py └── traces_test.py /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile-dataloader: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/Dockerfile-dataloader -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /hft/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/backtesting/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/backtesting/backtest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/backtesting/backtest.py -------------------------------------------------------------------------------- /hft/backtesting/data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/backtesting/data.py -------------------------------------------------------------------------------- /hft/backtesting/output.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/backtesting/output.py -------------------------------------------------------------------------------- /hft/backtesting/readers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/backtesting/readers.py -------------------------------------------------------------------------------- /hft/backtesting/strategy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/backtesting/strategy.py -------------------------------------------------------------------------------- /hft/dataloader/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/dataloader/build.sh: -------------------------------------------------------------------------------- 1 | docker build -t thesis/dataloader:0.0.2 . -------------------------------------------------------------------------------- /hft/dataloader/callbacks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/dataloader/callbacks/bitmex.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/callbacks/bitmex.py -------------------------------------------------------------------------------- /hft/dataloader/callbacks/clickhouse/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/dataloader/callbacks/clickhouse/clickhouse_cmds.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/callbacks/clickhouse/clickhouse_cmds.py -------------------------------------------------------------------------------- /hft/dataloader/callbacks/clickhouse/clickhouse_connector.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/callbacks/clickhouse/clickhouse_connector.py -------------------------------------------------------------------------------- /hft/dataloader/callbacks/connectors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/callbacks/connectors.py -------------------------------------------------------------------------------- /hft/dataloader/callbacks/kdb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/dataloader/callbacks/kdb/kdb_connector.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/callbacks/kdb/kdb_connector.py -------------------------------------------------------------------------------- /hft/dataloader/callbacks/message.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/callbacks/message.py -------------------------------------------------------------------------------- /hft/dataloader/clickhouse.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/clickhouse.config -------------------------------------------------------------------------------- /hft/dataloader/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/config.py -------------------------------------------------------------------------------- /hft/dataloader/data_processor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/data_processor.py -------------------------------------------------------------------------------- /hft/dataloader/kdb/init.q: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/kdb/init.q -------------------------------------------------------------------------------- /hft/dataloader/kdb/safe_update.q: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/kdb/safe_update.q -------------------------------------------------------------------------------- /hft/dataloader/loader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/loader.py -------------------------------------------------------------------------------- /hft/dataloader/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/requirements.txt -------------------------------------------------------------------------------- /hft/dataloader/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/dataloader/run.sh -------------------------------------------------------------------------------- /hft/environment/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/environment/rl.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/environment/sampler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/environment/sampler.py -------------------------------------------------------------------------------- /hft/strategies/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/strategies/gatling.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/strategies/gatling.py -------------------------------------------------------------------------------- /hft/units/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/units/filters.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/units/filters.py -------------------------------------------------------------------------------- /hft/units/metric.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/units/metric.py -------------------------------------------------------------------------------- /hft/units/metrics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/units/metrics/composite.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/units/metrics/composite.py -------------------------------------------------------------------------------- /hft/units/metrics/instant.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/units/metrics/instant.py -------------------------------------------------------------------------------- /hft/units/metrics/time.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/units/metrics/time.py -------------------------------------------------------------------------------- /hft/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hft/utils/consts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/utils/consts.py -------------------------------------------------------------------------------- /hft/utils/data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/utils/data.py -------------------------------------------------------------------------------- /hft/utils/helper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/utils/helper.py -------------------------------------------------------------------------------- /hft/utils/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/utils/logger.py -------------------------------------------------------------------------------- /hft/utils/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/hft/utils/types.py -------------------------------------------------------------------------------- /notebooks/Gatling.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/notebooks/Gatling.ipynb -------------------------------------------------------------------------------- /notebooks/Hayashi-Yoshido.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/notebooks/Hayashi-Yoshido.ipynb -------------------------------------------------------------------------------- /notebooks/Plots.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/notebooks/Plots.ipynb -------------------------------------------------------------------------------- /notebooks/RL-v1.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/notebooks/RL-v1.ipynb -------------------------------------------------------------------------------- /notebooks/Sampler-example.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/notebooks/Sampler-example.ipynb -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pandas 2 | numpy 3 | tqdm 4 | websocket_client==0.46.0 -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/setup.py -------------------------------------------------------------------------------- /tests/backtest_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/backtest_test.py -------------------------------------------------------------------------------- /tests/filter_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/filter_test.py -------------------------------------------------------------------------------- /tests/gatling_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/gatling_test.py -------------------------------------------------------------------------------- /tests/metric_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/metric_test.py -------------------------------------------------------------------------------- /tests/reader_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/reader_test.py -------------------------------------------------------------------------------- /tests/resources/orderbook/orderbooks.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/resources/orderbook/orderbooks.csv.gz -------------------------------------------------------------------------------- /tests/resources/orderbook/trades.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/resources/orderbook/trades.csv.gz -------------------------------------------------------------------------------- /tests/resources/snapshots_depth5.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/resources/snapshots_depth5.csv -------------------------------------------------------------------------------- /tests/resources/snapshots_filter.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/resources/snapshots_filter.csv -------------------------------------------------------------------------------- /tests/restore_sequence_util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/restore_sequence_util.py -------------------------------------------------------------------------------- /tests/rl_example_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/rl_example_test.py -------------------------------------------------------------------------------- /tests/sampler_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/sampler_test.py -------------------------------------------------------------------------------- /tests/strategy_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/strategy_test.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/test_utils.py -------------------------------------------------------------------------------- /tests/traces_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evgerher/hft-backtesting/HEAD/tests/traces_test.py --------------------------------------------------------------------------------