enzoampil / fastquant

fastquant — Backtest and optimize your ML trading strategies with only 3 lines of code!
MIT License
1.52k stars 239 forks source link

[BUG] Sentiments fail on businesstimes #355

Open 0cv opened 3 years ago

0cv commented 3 years ago
from fastquant import get_yahoo_data, get_bt_news_sentiment
from datetime import datetime, timedelta

# we get the current date and delta time of 30 days
current_date = datetime.now().strftime("%Y-%m-%d")
delta_date = (datetime.now() - timedelta(30)).strftime("%Y-%m-%d")
data = get_yahoo_data("TSLA", delta_date, current_date)
sentiments = get_bt_news_sentiment(keyword="tesla", page_nums=3)
backtest("sentiment", data, sentiments=sentiments, senti=0.2)

Will result in AttributeError: 'BarContainer' object has no attribute 'get_zorder'

Digging into the issue, it seems that the businesstimes website returns only JavaScript and no more HTML. At least doing this:

page = urlopen("https://www.businesstimes.com.sg/search/tesla?page=1").read()
print("page", page)

will result in an empty body and a lot of javascript. Either I'm doing something wrong, or businesstimes has implemented some mechanism to disable such scraping

enzoampil commented 3 years ago

Ah yes, this is the issue with pull from the next. @rafmacalaba tagging you here since you built the feature :smile:

rafmacalaba commented 3 years ago

@enzoampil ack! seems like its BT stuff.