Пополнение прогнозов акций в базе данных django с помощью моделей

У меня есть код, который выводит прогнозы акций. Я пытаюсь понять, как заносить прогнозы в базу данных. Каждый раз, когда код выполняется, он должен модифицировать базу данных новыми прогнозами.

Вот мой 'predictions.py':

import yfinance as yf
import numpy as np # Processing data as arrays
import pandas as pd # Used to create a dataframe that holds all data
from keras.models import load_model # Used to load existing models
import datetime
import joblib 


def models_loader(folder, name, days = [1, 5, 30]):
    model = []
    for i in days:
        model.append(load_model(folder+'/'+ name + '_' + str(i) + '.h5'))
    return model

days = [1,5,14,30,90] #Day intervals
scaler = joblib.load('scaler.sav')

models = models_loader('ML Model','Model', days) #Load models 

has_Run = False
companies = ['TSLA', 'AAPL','SIRI','GGB','PLUG']

while True:
    print("Has started")
    time = datetime.datetime.today()
    schedule = datetime.time(17,0,0)
    if time.hour == schedule.hour and has_Run==False: #change second time hour to schedule hour
        last = datetime.date.today() 
        td = datetime.timedelta(100)
        start = last - td
    
        for symbols in companies:
            print(symbols)
            predINV= []
            data = yf.download(symbols,start = start, end = last)
            data = data.filter(['Close'])
            if len(data.index) > 59:
                INPUT = data.values
                INPUT = INPUT[-60:]
                scaled_input = scaler.fit_transform(INPUT)
                scaled_input = np.reshape(scaled_input, (-1,60,1))
                for i in range(len(days)):
                    pred = models[i].predict(scaled_input) 
                    predINV.append(scaler.inverse_transform(pred))
                    predINV[i] = predINV[i].round(decimals = 2)
                    print(f'Day {days[i]}: {predINV[i]}')
        
            del data 
            has_Run = True  

      elif has_Run==True and time.hour != schedule.hour:
         has_Run=False

(Это то, что я хочу заполнить в БД. Он должен заполнить все данные и при каждом запуске кода изменять строки с новыми значениями). Вывод 'predictions.py' выглядит следующим образом:

Has started
TSLA
[*********************100%***********************]  1 of 1 completed
Day 1: [[836.88]]
Day 5: [[836.88]]
Day 14: [[836.07]]
Day 30: [[835.21]]
Day 90: [[827.17]]
AAPL
[*********************100%***********************]  1 of 1 completed
Day 1: [[163.32]]
Day 5: [[163.32]]
Day 14: [[163.69]]
Day 30: [[163.57]]
Day 90: [[163.04]]
SIRI
[*********************100%***********************]  1 of 1 completed
Day 1: [[6.17]]
Day 5: [[6.17]]
Day 14: [[6.16]]
Day 30: [[6.15]]
Day 90: [[6.12]]
....

Это мой 'models.py':

class Predictions(models.Model):
  '''Predictions Table to maintain stock predictions'''
  symbol = models.CharField(default='', max_length=1)
  day1 = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
  day5 = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
  day14 = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
  day30 = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
  day90 = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
Вернуться на верх