movedul`
This commit is contained in:
parent
22c43b51c7
commit
fed83c07f9
43
paperone.py
43
paperone.py
@ -1,9 +1,14 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from sys import exit
|
||||
from datetime import datetime, timedelta
|
||||
from dotenv import load_dotenv
|
||||
from typing import NoReturn, List
|
||||
from typing import NoReturn
|
||||
from paperone.utils import (
|
||||
parse_date_yyyymmdd,
|
||||
days_range_from,
|
||||
format_date_readable,
|
||||
is_trading_day,
|
||||
)
|
||||
from os import environ
|
||||
from paperone.taapi import TaapiClient, IndicatorEnum
|
||||
from rich.progress import (
|
||||
@ -18,36 +23,6 @@ from rich.progress import (
|
||||
load_dotenv()
|
||||
|
||||
|
||||
def is_trading_day(date: datetime) -> bool:
|
||||
return date.weekday() not in [5, 6]
|
||||
|
||||
|
||||
def parse_date_yyyymmdd(date_str: str) -> datetime:
|
||||
return datetime.strptime(date_str, "%Y%m%d")
|
||||
|
||||
|
||||
def days_range_from(date: datetime, n: int) -> List[datetime]:
|
||||
"""
|
||||
Generate a list of dates going back n days from the given date (inclusive).
|
||||
|
||||
Example: date=Jan 3, n=2 → [Jan 1, Jan 2, Jan 3]
|
||||
|
||||
Args:
|
||||
date: The target date
|
||||
n: Number of days to backtrack
|
||||
|
||||
Returns:
|
||||
List of datetime objects from (date - n) to date (inclusive)
|
||||
"""
|
||||
start_date = date - timedelta(days=n)
|
||||
|
||||
return [start_date + timedelta(days=i) for i in range(n + 1)]
|
||||
|
||||
|
||||
def format_date_readable(date: datetime) -> str:
|
||||
return date.strftime("%B %d, %Y")
|
||||
|
||||
|
||||
def main() -> NoReturn:
|
||||
api_key = environ.get("API_KEY")
|
||||
|
||||
@ -58,7 +33,7 @@ def main() -> NoReturn:
|
||||
date = parse_date_yyyymmdd("20250821")
|
||||
days_range = 60
|
||||
dates_range = days_range_from(date, days_range)
|
||||
tickers = ["AAPL", "NVDA", "AMD", "META", "MSFT", "GOOG"]
|
||||
tickers = ["VIX"]
|
||||
indicators = list(IndicatorEnum)
|
||||
|
||||
with Progress(
|
||||
@ -74,7 +49,7 @@ def main() -> NoReturn:
|
||||
)
|
||||
|
||||
with TaapiClient(api_key) as client:
|
||||
for ticker in tickers:
|
||||
for ticker in [x for x in tickers if x in client.get_available_tickers()]:
|
||||
# Update ticker task
|
||||
progress.update(
|
||||
ticker_task, description=f"[cyan]Processing {ticker}..."
|
||||
|
31
paperone/utils.py
Normal file
31
paperone/utils.py
Normal file
@ -0,0 +1,31 @@
|
||||
from datetime import datetime, timedelta
|
||||
from typing import List
|
||||
|
||||
def is_trading_day(date: datetime) -> bool:
|
||||
return date.weekday() not in [5, 6]
|
||||
|
||||
|
||||
def parse_date_yyyymmdd(date_str: str) -> datetime:
|
||||
return datetime.strptime(date_str, "%Y%m%d")
|
||||
|
||||
def days_range_from(date: datetime, n: int) -> List[datetime]:
|
||||
"""
|
||||
Generate a list of dates going back n days from the given date (inclusive).
|
||||
|
||||
Example: date=Jan 3, n=2 → [Jan 1, Jan 2, Jan 3]
|
||||
|
||||
Args:
|
||||
date: The target date
|
||||
n: Number of days to backtrack
|
||||
|
||||
Returns:
|
||||
List of datetime objects from (date - n) to date (inclusive)
|
||||
"""
|
||||
start_date = date - timedelta(days=n)
|
||||
|
||||
return [start_date + timedelta(days=i) for i in range(n + 1)]
|
||||
|
||||
|
||||
def format_date_readable(date: datetime) -> str:
|
||||
return date.strftime("%B %d, %Y")
|
||||
|
Loading…
x
Reference in New Issue
Block a user