urazakgul / isyatirimhisse

https://pypi.org/project/isyatirimhisse/
MIT License
101 stars 14 forks source link

start_date - end_date arası dışındaki datanın listeye gelmesi #9

Closed ErcanYaman closed 1 year ago

ErcanYaman commented 1 year ago

Selam,

Aşağıdaki kod çalıştırıldığında 31-12-2022 ile 14-08-2023 arasındaki data gelmesi gerekirken 31-12-2022 öncesi ve 14-08-2023 sonrası datanın geldiği görülmektedir.

İnceleyebilir misiniz.?

from isyatirimhisse import fetch_data from datetime import date

symbol=['ATAKP','KCHOL']

data=(fetch_data( symbol=symbol, stock_market_index=['XU100'], start_date='31-12-' + str((date.today().year-1)), end_date=(date.today() - timedelta(days=1)).strftime("%d-%m-%Y"), drop_na = False, frequency='1d' ).sort_values(by='Date', ascending=True).fillna(0))

print(data)

ErcanYaman commented 1 year ago

sorun sanki endeks verilerini ekleyince oluyor gibi anlıyorum çalışmasından semboller için çünkü sadece girdiğim tarih aralığının verisi geliyor ama endeksin değerleri ise bu tarih dışındakileri de kapsıyor.

urazakgul commented 1 year ago

Selam, bununla ilgili bir iyileştirme yapmıştım. Sanırım ondan kaynaklanıyor. Kodlarınızı teste dahil ediyorum. Yeni sürümde sorunun ortadan kalkmasını bekliyorum.

ErcanYaman commented 1 year ago

Bu sorun devam ediyor. Endeks verileri için start_date - end_date dışındaki günler için de data gelmektedir.3.0.0 sürümünde denedim.

ErcanYaman commented 1 year ago

Aşağıdaki script çalıştığında XU100 için 2022 yılının datasının geldiği görülüyor ki hisselerde 2022 için NaN sonuç var. Tarih filtresi endeksler için sağlıklı çalışmıyor gibi.

from isyatirimhisse import fetch_data from datetime import date, timedelta import asyncio

async def main(): symbol = ['KCHOL', 'ASELS'] stock_market_index = ['XU100'] start_date = '31-12-' + str((date.today().year - 1)) end_date = (date.today() - timedelta(days=1)).strftime("%d-%m-%Y") frequency = '1d' drop_na = False language = 'tr'

veriler = await fetch_data(
    symbol=symbol,
    stock_market_index=stock_market_index,
    start_date=start_date,
    end_date=end_date,
    frequency=frequency,
    drop_na=drop_na,
    language=language
)

return veriler

async def run(): sonuc = await main() print(sonuc)

async def main_wrapper(): gorev = asyncio.create_task(run()) await gorev

asyncio.run(main_wrapper())

urazakgul commented 1 year ago

Sorunu buldum. Küçük bir sürüm çıkaracağım.

urazakgul commented 1 year ago

Sürüm çıkarıldı. Geri dönüşlerinizi beklerim.

ErcanYaman commented 1 year ago

fixlenmiş teşekkür ederim.