+ def make_chart(symbol: str, ticker: yf.Ticker, period: str) -> str:
+ base_filename = f'stock_chart_{symbol}.png'
+ output_filename = os.path.join(kiosk_constants.pages_dir, base_filename)
+ transparent = go.Layout(
+ paper_bgcolor='rgba(0,0,0,0)',
+ plot_bgcolor='rgba(0,0,0,0)',
+ xaxis_rangeslider_visible=False,
+ )
+ hist = ticker.history(period=period, interval="1wk")
+ chart = go.Figure(
+ data=go.Candlestick(
+ open=hist['Open'],
+ high=hist['High'],
+ low=hist['Low'],
+ close=hist['Close'],
+ ),
+ layout=transparent,
+ )
+ chart.update_xaxes(visible=False, showticklabels=False)
+ chart.update_yaxes(side="right")
+ chart.write_image(output_filename, format="png", width=600, height=350)
+ print(f"Write {output_filename}...")
+ return base_filename
+
+ def get_last_close(
+ self,
+ ticker: yf.Ticker
+ ) -> float:
+ last_close = stock_quote_renderer.get_item_from_dict(
+ ['previous_close',
+ 'open'],
+ ticker.fast_info)
+ if last_close:
+ return last_close
+
+ last_close = stock_quote_renderer.get_item_from_dict(
+ ['preMarketPrice'],
+ self.cache_info(ticker))
+ if last_close:
+ return last_close
+ return self.get_price(ticker)
+