MYTHOSLIVE / config.py
3VVM's picture
Add genuine walk-forward Ridge forecasting model
4554e0a verified
Raw History Blame Contribute Delete
2.74 kB
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# Creation is lazy: importing the application must also work in a read-only
# checkout. Operators can point runtime artifacts at a persistent writable mount.
OUTPUT_DIR = os.path.abspath(os.path.expanduser(os.environ.get('MYTHOS_OUTPUT_DIR', os.path.join(BASE_DIR, 'outputs'))))
DEFAULT_FOREX_SYMBOLS = [
'EURUSD=X', 'GBPUSD=X', 'USDJPY=X', 'USDCHF=X', 'AUDUSD=X',
'USDCAD=X', 'NZDUSD=X', 'EURJPY=X', 'EURGBP=X', 'GBPJPY=X',
'AUDJPY=X', 'CADJPY=X', 'CHFJPY=X', 'NZDJPY=X', 'EURCHF=X',
'EURCAD=X', 'EURAUD=X', 'EURNZD=X', 'GBPCHF=X', 'GBPCAD=X',
'GBPAUD=X', 'GBPNZD=X', 'AUDCAD=X', 'AUDCHF=X', 'AUDNZD=X',
'CADCHF=X', 'NZDCAD=X', 'NZDCHF=X', 'USDINR=X', 'USDCNH=X',
'USDHKD=X', 'USDSGD=X', 'USDZAR=X', 'USDMXN=X', 'USDTRY=X',
'USDSEK=X', 'USDNOK=X', 'USDDKK=X', 'USDPLN=X', 'USDTHB=X',
]
DEFAULT_CRYPTO_SYMBOLS = [
'BTC-USD', 'ETH-USD', 'BNB-USD', 'XRP-USD', 'SOL-USD',
'ADA-USD', 'DOGE-USD', 'DOT-USD', 'LTC-USD', 'LINK-USD',
]
ALL_DEFAULT_SYMBOLS = DEFAULT_FOREX_SYMBOLS + DEFAULT_CRYPTO_SYMBOLS
YF_NATIVE_INTERVALS = {
'1m': {'max_days': 30, 'max_request_days': 7},
'2m': {'max_days': 60, 'max_request_days': 60},
'5m': {'max_days': 60, 'max_request_days': 60},
'15m': {'max_days': 60, 'max_request_days': 60},
'30m': {'max_days': 60, 'max_request_days': 60},
'60m': {'max_days': 730, 'max_request_days': 730},
'90m': {'max_days': 60, 'max_request_days': 60},
'1d': {'max_days': None, 'max_request_days': None},
'1wk': {'max_days': None, 'max_request_days': None},
'1mo': {'max_days': None, 'max_request_days': None},
}
CUSTOM_TIMEFRAMES = {
'1m': {'source': '1m', 'rule': None},
'2m': {'source': '2m', 'rule': None},
'5m': {'source': '5m', 'rule': None},
'10m': {'source': '5m', 'rule': '10min'},
'15m': {'source': '15m', 'rule': None},
'30m': {'source': '30m', 'rule': None},
'1h': {'source': '60m', 'rule': None},
'2h': {'source': '60m', 'rule': '2h'},
'4h': {'source': '60m', 'rule': '4h'},
'1d': {'source': '1d', 'rule': None},
}
TIMEFRAMES = ['1m', '2m', '5m', '10m', '15m', '30m', '1h', '2h']
MODEL_NAMES = ['ARIMA', 'Auto-ARIMA', 'ARIMA-GARCH', 'Moirai', 'TimesFM', 'Ridge']
PROVIDERS = ['Yahoo Finance', 'Binance Spot', 'Twelve Data']
RESEARCH_PHASES = ['Tune only', 'Tune + Validate', 'Vault only']
MOIRAI_CHECKPOINT = 'Salesforce/moirai-1.1-R-small'
TIMESFM_CHECKPOINT = 'google/timesfm-2.5-200m-pytorch'
DEFAULT_SYMBOL = 'BTC-USD'
DEFAULT_TIMEFRAME = '5m'
DEFAULT_MODEL = 'ARIMA-GARCH'
DEFAULT_LOOKBACK_DAYS = 30
DEFAULT_HISTORY_WINDOW = 200
DEFAULT_HORIZON = 1
DEFAULT_BACKTEST_STEP = 30
DEFAULT_MAX_EVALUATIONS = 30
RANDOM_SEED = 42