loader/aggregator added
This commit is contained in:
47
scripts/preparetradecache.py
Normal file
47
scripts/preparetradecache.py
Normal file
@ -0,0 +1,47 @@
|
||||
from ttools.utils import zoneNY
|
||||
from datetime import timedelta, datetime
|
||||
from ttools.loaders import prepare_trade_cache
|
||||
import argparse
|
||||
|
||||
"""
|
||||
Python script prepares trade cache for specified symbols and date range.
|
||||
|
||||
Usually 1 day takes about 35s. It is stored in /tradescache/ directory as daily file keyed by symbol.
|
||||
|
||||
To run this script in the background with specific arguments:
|
||||
|
||||
```bash
|
||||
# Running without forcing remote fetch
|
||||
python3 prepare_cache.py --symbols BAC AAPL --day_start 2024-10-14 --day_stop 2024-10-18 &
|
||||
|
||||
# Running with force_remote set to True
|
||||
python3 prepare_cache.py --symbols BAC AAPL --day_start 2024-10-14 --day_stop 2024-10-18 --force_remote &
|
||||
|
||||
```
|
||||
"""
|
||||
def main(symbols, day_start, day_stop, force_remote=False):
|
||||
# Convert day_start and day_stop to datetime objects in zoneNY
|
||||
day_start = zoneNY.localize(datetime.strptime(day_start, "%Y-%m-%d") + timedelta(hours=9, minutes=45))
|
||||
day_stop = zoneNY.localize(datetime.strptime(day_stop, "%Y-%m-%d") + timedelta(hours=15, minutes=1))
|
||||
|
||||
prepare_trade_cache(symbols, day_start, day_stop, force_remote=force_remote)
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Argument parser
|
||||
parser = argparse.ArgumentParser(description="Prepare cache with trades for specified symbols and date range.")
|
||||
parser.add_argument(
|
||||
"-s", "--symbols", nargs="+", required=True, help="List of symbols to prepare cache for (e.g., BAC AAPL MSFT)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-start", "--day_start", type=str, required=True, help="Start date in format YYYY-MM-DD"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-end", "--day_stop", type=str, required=True, help="End date in format YYYY-MM-DD"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-f", "--force_remote", action="store_true", help="Set this flag to force remote data fetch (default: False)"
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
# Run main function with parsed arguments
|
||||
main(args.symbols, args.day_start, args.day_stop, force_remote=args.force_remote)
|
||||
Reference in New Issue
Block a user