Path: blob/master/ invest-robot-contest_TradingCompetition2022-main/models/ModelBuilder.py
5925 views
from models.TradingModel import TradingModel1from models.ARIMAdeMarkLong import ARIMAdeMarkLong2from models.ARIMAdeMarkLongHFT import ARIMAdeMarkLongHFT3from decimal import Decimal4from logger.LoggerFactory import LoggerFactory5from logger.BusinessLogger import BusinessLogger678class ModelBuilder:9_MODEL_MAP = dict(10ARIMAdeMarkLong=ARIMAdeMarkLong,11ARIMAdeMarkLongHFT=ARIMAdeMarkLongHFT12)1314@classmethod15def buildModel(cls, model_name, ticker, config):16model: TradingModel = cls._MODEL_MAP[model_name](ticker, config)17model.custom_init()18# ToDo Don't send config into model. Parse all config and set value into object1920if not model:21return None2223stock_drop_limit = config.get(section='TradingStrategy', option='stock_drop_limit')24stock_limit = config.get(section='TradingStrategy', option='stock_limit')25stock_lot_limit = config.get(section='TradingStrategy', option='stock_lot_limit')26if stock_drop_limit:27model.stock_drop_limit = Decimal(stock_drop_limit)28if stock_limit:29model.stock_limit = Decimal(stock_limit)30if stock_lot_limit:31model.stock_lot_limit = stock_lot_limit3233# Log data34LoggerFactory.get_business_logger_instance().add_event(BusinessLogger.MODEL_CREATED,35model_name, model)36return model373839404142