def cron_b3_memory(): """ Funcao que prioriza o uso limitado da memoria. """ # Limpa a Base Quotes.objects.filter(market='BOVESPA').delete() download_hquotes(ibrx_tickers) # Limpa a Base PairStats.objects.filter(market='BOVESPA').delete() bulk_list = [] for idx, pair in enumerate(gera_pares(ibrx_tickers)): obj = b3_producer(idx, pair) bulk_list.append(obj) if len(bulk_list) > 1000: # Grava dados no Banco PairStats.objects.bulk_create(bulk_list) # Libera a memória del bulk_list bulk_list = [] # Grava dados no Banco PairStats.objects.bulk_create(bulk_list) # Telegram send_msg()
def matriz_pares(): def pega_datas(): """ TODO: Melhorar """ df = Quotes.objects.get(ticker='BTCUSDT').get_series().index df2 = df[df > date(2019, 8, 17)] df3 = df2[df2 < date(2020, 8, 17)] #df2 = df[df > date(2020, 1, 1)] # DEBUG return df3 return pd.DataFrame(10000, pega_datas(), gera_pares(BINANCE_FUTURES))
def cron_binance(): # Limpa a Base Quotes.objects.filter(market='BINANCE').delete() download_hquotes_binance() # Limpa a Base PairStats.objects.filter(market='BINANCE').delete() bulk_list = [] for idx, pair in enumerate(gera_pares(BINANCE_FUTURES)): obj = binance_producer(idx, pair) bulk_list.append(obj) # Grava dados no Banco PairStats.objects.bulk_create(bulk_list)
def dados_binance(): # Limpa a Base PairStats.objects.filter(market='BINANCE').delete() pares_list = gera_pares(BINANCE_FUTURES) for refdate, plist in matriz_pares().iterrows(): bulk_list = [] for pair in plist.index: #print(refdate, pair) obj = calcula_modelo(refdate, pair) bulk_list.append(obj) # Grava dados no Banco print('bulk', refdate) PairStats.objects.bulk_create(bulk_list)
def cron_b3(): # Limpa a Base Quotes.objects.filter(market='BOVESPA').delete() download_hquotes(ibrx_tickers) # Limpa a Base PairStats.objects.filter(market='BOVESPA').delete() with Pool(2) as p: bulk_list = p.starmap(b3_producer, enumerate(gera_pares(ibrx_tickers))) # Grava dados no Banco PairStats.objects.bulk_create(bulk_list) # Telegram send_msg()
def cron_b3(): """ Funcao bastante rapida, porem usa muita memoria do Heroku (640Mb / 512Mb) """ # Limpa a Base Quotes.objects.filter(market='BOVESPA').delete() download_hquotes(ibrx_tickers) # Limpa a Base PairStats.objects.filter(market='BOVESPA').delete() with Pool(2) as p: bulk_list = p.starmap(b3_producer, enumerate(gera_pares(ibrx_tickers))) # Grava dados no Banco PairStats.objects.bulk_create(bulk_list) # Telegram send_msg()