import%20marimo%0A%0A__generated_with%20%3D%20%220.18.1%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20datetime%20as%20dt%0A%20%20%20%20import%20warnings%0A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20plotly.graph_objs%20as%20go%0A%20%20%20%20import%20polars%20as%20pl%0A%20%20%20%20import%20yfinance_pl%20as%20yf%0A%0A%20%20%20%20warnings.simplefilter(%22ignore%22)%0A%20%20%20%20return%20go%2C%20mo%2C%20pl%2C%20yf%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20%E4%B8%80%E7%9B%AE%E5%9D%87%E8%A1%A1%E8%A1%A8%EF%BC%88Ichimoku%20Cloud%EF%BC%89%E3%82%92%E4%BD%9C%E3%82%8B%0A%0A%20%20%20%20%E4%B8%80%E7%9B%AE%E5%9D%87%E8%A1%A1%E8%A1%A8%E3%81%AF%E3%80%811936%E5%B9%B4%E3%81%AB%E6%97%A5%E6%9C%AC%E3%81%AE%E7%B4%B0%E7%94%B0%E6%82%9F%E4%B8%80%E6%B0%8F%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E9%96%8B%E7%99%BA%E3%81%95%E3%82%8C%E3%81%9F%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E6%8C%87%E6%A8%99%E3%81%A7%E3%81%99%E3%80%82%0A%20%20%20%20%E3%80%8C%E4%B8%80%E7%9B%AE%E3%81%A7%E7%9B%B8%E5%A0%B4%E3%81%AE%E5%9D%87%E8%A1%A1%E7%8A%B6%E6%85%8B%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8B%E3%80%8D%E3%81%93%E3%81%A8%E3%81%8B%E3%82%89%E5%90%8D%E4%BB%98%E3%81%91%E3%82%89%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%0A%0A%20%20%20%20%23%23%23%20%E6%A7%8B%E6%88%90%E8%A6%81%E7%B4%A0%EF%BC%885%E6%9C%AC%E3%81%AE%E7%B7%9A%EF%BC%89%0A%0A%20%20%20%201.%20**%E8%BB%A2%E6%8F%9B%E7%B7%9A%EF%BC%88Conversion%20Line%20%2F%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%EF%BC%89**%3A%20%E7%9F%AD%E6%9C%9F%E7%9A%84%E3%81%AA%E7%9B%B8%E5%A0%B4%E3%81%AE%E6%96%B9%E5%90%91%E6%80%A7%E3%82%92%E7%A4%BA%E3%81%99%EF%BC%889%E6%97%A5%E9%96%93%EF%BC%89%0A%20%20%20%202.%20**%E5%9F%BA%E6%BA%96%E7%B7%9A%EF%BC%88Base%20Line%20%2F%20%E5%9F%BA%E6%BA%96%E7%B7%9A%EF%BC%89**%3A%20%E4%B8%AD%E6%9C%9F%E7%9A%84%E3%81%AA%E7%9B%B8%E5%A0%B4%E3%81%AE%E6%96%B9%E5%90%91%E6%80%A7%E3%82%92%E7%A4%BA%E3%81%99%EF%BC%8826%E6%97%A5%E9%96%93%EF%BC%89%0A%20%20%20%203.%20**%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%EF%BC%88Leading%20Span%20A%20%2F%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%EF%BC%89**%3A%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%E3%81%A8%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%81%AE%E4%B8%AD%E9%96%93%E3%82%9226%E6%97%A5%E5%85%88%E8%A1%8C%E3%81%95%E3%81%9B%E3%81%9F%E7%B7%9A%0A%20%20%20%204.%20**%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%EF%BC%88Leading%20Span%20B%20%2F%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%EF%BC%89**%3A%20%E9%95%B7%E6%9C%9F%E7%9A%84%E3%81%AA%E7%9B%B8%E5%A0%B4%E3%81%AE%E6%96%B9%E5%90%91%E6%80%A7%E3%82%9226%E6%97%A5%E5%85%88%E8%A1%8C%E3%81%95%E3%81%9B%E3%81%9F%E7%B7%9A%EF%BC%8852%E6%97%A5%E9%96%93%EF%BC%89%0A%20%20%20%205.%20**%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%EF%BC%88Lagging%20Span%20%2F%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%EF%BC%89**%3A%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E7%B5%82%E5%80%A4%E3%82%9226%E6%97%A5%E9%81%85%E8%A1%8C%E3%81%95%E3%81%9B%E3%81%9F%E7%B7%9A%0A%0A%20%20%20%20**%E9%9B%B2%EF%BC%88Kumo%20%2F%20Cloud%EF%BC%89**%3A%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%E3%81%A8%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%E3%81%AE%E9%96%93%E3%81%AE%E9%A0%98%E5%9F%9F%0A%20%20%20%20-%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%81%AE%E4%B8%8A%20%E2%86%92%20%E4%B8%8A%E6%98%87%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%0A%20%20%20%20-%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%81%AE%E4%B8%AD%20%E2%86%92%20%E3%82%82%E3%81%BF%E5%90%88%E3%81%84%E7%9B%B8%E5%A0%B4%0A%20%20%20%20-%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%81%AE%E4%B8%8B%20%E2%86%92%20%E4%B8%8B%E9%99%8D%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%0A%0A%20%20%20%20---%0A%0A%20%20%20%20%E4%BB%A5%E4%B8%8B%E3%80%81%E5%90%84%E7%B7%9A%E3%82%92%E5%80%8B%E5%88%A5%E3%81%AB%E8%A8%88%E7%AE%97%E3%81%97%E3%81%AA%E3%81%8C%E3%82%89%E5%AD%A6%E7%BF%92%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo)%3A%0A%20%20%20%20stock_code%20%3D%20mo.ui.text(%228381.T%22%2C%20placeholder%3D%228381.T%22)%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20f%22%22%22%0A%20%20%20%20%20%20%20%20%23%23%20%E8%A8%BC%E5%88%B8%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%99%E3%82%8B%0A%0A%20%20%20%20%20%20%20%20%7Bstock_code%7D%0A%0A%20%20%20%20%20%20%20%20%3E%20%E4%BE%8B%3A%20%607203.T%60%EF%BC%88%E3%83%88%E3%83%A8%E3%82%BF%EF%BC%89%E3%80%81%609984.T%60%EF%BC%88%E3%82%BD%E3%83%95%E3%83%88%E3%83%90%E3%83%B3%E3%82%AF%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%EF%BC%89%E3%80%81%608381.T%60%EF%BC%88%E5%B1%B1%E9%99%B0%E5%90%88%E5%90%8C%E9%8A%80%E8%A1%8C%EF%BC%89%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%20(stock_code%2C)%0A%0A%0A%40app.cell%0Adef%20_(stock_code%2C%20yf)%3A%0A%20%20%20%20ticker%20%3D%20yf.Ticker(stock_code.value)%0A%20%20%20%20info%20%3D%20ticker.info%0A%20%20%20%20hist%20%3D%20ticker.history(period%3D%221y%22)%0A%20%20%20%20hist.head(5)%0A%20%20%20%20return%20hist%2C%20ticker%0A%0A%0A%40app.cell%0Adef%20_(hist%2C%20mo%2C%20pl)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%201.%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%EF%BC%88Conversion%20Line%20%2F%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%EF%BC%89%0A%0A%20%20%20%20**%E8%A8%88%E7%AE%97%E5%BC%8F**%3A%20%60(%E9%81%8E%E5%8E%BB9%E6%97%A5%E9%96%93%E3%81%AE%E6%9C%80%E9%AB%98%E5%80%A4%20%2B%20%E9%81%8E%E5%8E%BB9%E6%97%A5%E9%96%93%E3%81%AE%E6%9C%80%E5%AE%89%E5%80%A4)%20%C3%B7%202%60%0A%0A%20%20%20%20%E7%9F%AD%E6%9C%9F%E7%9A%84%E3%81%AA%E7%9B%B8%E5%A0%B4%E3%81%AE%E6%96%B9%E5%90%91%E6%80%A7%E3%82%92%E7%A4%BA%E3%81%99%E6%8C%87%E6%A8%99%E3%81%A7%E3%81%99%E3%80%829%E6%97%A5%E9%96%93%E3%81%A8%E3%81%84%E3%81%86%E7%9F%AD%E3%81%84%E6%9C%9F%E9%96%93%E3%81%A7%E8%A8%88%E7%AE%97%E3%81%95%E3%82%8C%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%20%E4%BE%A1%E6%A0%BC%E5%A4%89%E5%8B%95%E3%81%AB%E6%95%8F%E6%84%9F%E3%81%AB%E5%8F%8D%E5%BF%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%E3%81%8C%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%82%92%E4%B8%8A%E6%8A%9C%E3%81%91%E3%82%8B%20%E2%86%92%20%E8%B2%B7%E3%81%84%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%EF%BC%88%E5%A5%BD%E8%BB%A2%EF%BC%89%0A%20%20%20%20-%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%E3%81%8C%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%82%92%E4%B8%8B%E6%8A%9C%E3%81%91%E3%82%8B%20%E2%86%92%20%E5%A3%B2%E3%82%8A%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%EF%BC%88%E9%80%86%E8%BB%A2%EF%BC%89%0A%0A%20%20%20%20**%E5%AE%9F%E8%A3%85%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20yfinance_pl%E3%81%8B%E3%82%89%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AFDecimal%E5%9E%8B%0A%20%20%20%20-%20Polars%E3%81%AE%60rolling_max%60%2F%60rolling_min%60%E3%81%AFDecimal%E5%9E%8B%E6%9C%AA%E5%AF%BE%E5%BF%9C%0A%20%20%20%20-%20%E4%BA%8B%E5%89%8D%E3%81%AB%60.cast(pl.Float64)%60%E3%81%A7%E5%9E%8B%E5%A4%89%E6%8F%9B%E3%81%8C%E5%BF%85%E8%A6%81%0A%0A%20%20%20%20%60%60%60python%0A%20%20%20%20high%20%3D%20hist%5B%22high.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20low%20%3D%20hist%5B%22low.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20conversion_line%20%3D%20(high.rolling_max(9)%20%2B%20low.rolling_min(9))%20%2F%202%0A%20%20%20%20%60%60%60%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20%23%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%3A%20%E9%81%8E%E5%8E%BB9%E6%97%A5%E9%96%93%E3%81%AE%20(Max%20%2B%20Min)%20%2F%202%0A%20%20%20%20high%20%3D%20hist%5B%22high.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20low%20%3D%20hist%5B%22low.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20conversion_line%20%3D%20(high.rolling_max(9)%20%2B%20low.rolling_min(9))%20%2F%202%0A%20%20%20%20conversion_line%0A%20%20%20%20return%20(conversion_line%2C)%0A%0A%0A%40app.cell%0Adef%20_(hist%2C%20mo%2C%20pl)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%202.%20%E5%9F%BA%E6%BA%96%E7%B7%9A%EF%BC%88Base%20Line%20%2F%20%E5%9F%BA%E6%BA%96%E7%B7%9A%EF%BC%89%0A%0A%20%20%20%20**%E8%A8%88%E7%AE%97%E5%BC%8F**%3A%20%60(%E9%81%8E%E5%8E%BB26%E6%97%A5%E9%96%93%E3%81%AE%E6%9C%80%E9%AB%98%E5%80%A4%20%2B%20%E9%81%8E%E5%8E%BB26%E6%97%A5%E9%96%93%E3%81%AE%E6%9C%80%E5%AE%89%E5%80%A4)%20%C3%B7%202%60%0A%0A%20%20%20%20%E4%B8%AD%E6%9C%9F%E7%9A%84%E3%81%AA%E7%9B%B8%E5%A0%B4%E3%81%AE%E6%96%B9%E5%90%91%E6%80%A7%E3%82%92%E7%A4%BA%E3%81%99%E6%8C%87%E6%A8%99%E3%81%A7%E3%81%99%E3%80%8226%E6%97%A5%E9%96%93%E3%81%AF%E7%B4%841%E3%83%B6%E6%9C%88%E3%81%AE%E5%96%B6%E6%A5%AD%E6%97%A5%E3%81%AB%E7%9B%B8%E5%BD%93%E3%81%97%E3%80%81%0A%20%20%20%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%E3%82%88%E3%82%8A%E3%82%82%E5%AE%89%E5%AE%9A%E3%81%97%E3%81%9F%E5%8B%95%E3%81%8D%E3%82%92%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%81%8C%E4%B8%8A%E5%90%91%E3%81%8D%20%E2%86%92%20%E4%B8%AD%E6%9C%9F%E7%9A%84%E3%81%AA%E4%B8%8A%E6%98%87%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%0A%20%20%20%20-%20%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%81%8C%E4%B8%8B%E5%90%91%E3%81%8D%20%E2%86%92%20%E4%B8%AD%E6%9C%9F%E7%9A%84%E3%81%AA%E4%B8%8B%E9%99%8D%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%0A%20%20%20%20-%20%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%81%8C%E6%A8%AA%E3%81%B0%E3%81%84%20%E2%86%92%20%E3%82%82%E3%81%BF%E5%90%88%E3%81%84%E7%9B%B8%E5%A0%B4%0A%0A%20%20%20%20**26%E6%97%A5%E3%81%A8%E3%81%84%E3%81%86%E6%95%B0%E5%AD%97%E3%81%AE%E6%84%8F%E5%91%B3**%3A%0A%20%20%20%20%E4%B8%80%E7%9B%AE%E5%9D%87%E8%A1%A1%E8%A1%A8%E3%81%8C%E9%96%8B%E7%99%BA%E3%81%95%E3%82%8C%E3%81%9F1936%E5%B9%B4%E5%BD%93%E6%99%82%E3%80%81%E6%97%A5%E6%9C%AC%E3%81%AE%E5%8F%96%E5%BC%95%E6%89%80%E3%81%AF%E6%9C%88%E3%81%AB26%E6%97%A5%E5%96%B6%E6%A5%AD%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%20%E3%80%8C1%E3%83%B6%E6%9C%88%E3%80%8D%E3%82%92%E8%A1%A8%E3%81%99%E6%95%B0%E5%AD%97%E3%81%A8%E3%81%97%E3%81%A626%E3%81%8C%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20%60%60%60python%0A%20%20%20%20high%20%3D%20hist%5B%22high.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20low%20%3D%20hist%5B%22low.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20base_line%20%3D%20(high.rolling_max(26)%20%2B%20low.rolling_min(26))%20%2F%202%0A%20%20%20%20%60%60%60%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20%23%20%E5%9F%BA%E6%BA%96%E7%B7%9A%3A%20%E9%81%8E%E5%8E%BB26%E6%97%A5%E9%96%93%E3%81%AE%20(Max%20%2B%20Min)%20%2F%202%0A%20%20%20%20_high%20%3D%20hist%5B%22high.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20_low%20%3D%20hist%5B%22low.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20base_line%20%3D%20(_high.rolling_max(26)%20%2B%20_low.rolling_min(26))%20%2F%202%0A%20%20%20%20base_line%0A%20%20%20%20return%20(base_line%2C)%0A%0A%0A%40app.cell%0Adef%20_(base_line%2C%20conversion_line%2C%20mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%203.%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%EF%BC%88Leading%20Span%20A%20%2F%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E7%94%B2%EF%BC%89%0A%0A%20%20%20%20**%E8%A8%88%E7%AE%97%E5%BC%8F**%3A%20%60(%E8%BB%A2%E6%8F%9B%E7%B7%9A%20%2B%20%E5%9F%BA%E6%BA%96%E7%B7%9A)%20%C3%B7%202%60%20%E3%82%92%20**26%E6%97%A5%E6%9C%AA%E6%9D%A5**%20%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%0A%0A%20%20%20%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%E3%81%A8%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%81%AE%E4%B8%AD%E9%96%93%E5%80%A4%E3%82%9226%E6%97%A5%E5%85%88%E8%A1%8C%E3%81%95%E3%81%9B%E3%81%9F%E7%B7%9A%E3%81%A7%E3%81%99%E3%80%82%0A%20%20%20%20%E3%81%93%E3%81%AE%E7%B7%9A%E3%81%AF%E3%80%8C%E7%8F%BE%E5%9C%A8%E3%81%AE%E7%9F%AD%E6%9C%9F%E3%80%9C%E4%B8%AD%E6%9C%9F%E3%81%AE%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%80%8D%E3%82%92%E6%9C%AA%E6%9D%A5%E3%81%AB%E6%8A%95%E5%BD%B1%E3%81%97%E3%81%9F%E3%82%82%E3%81%AE%E3%81%A8%E8%A7%A3%E9%87%88%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%E3%81%A8%E5%90%88%E3%82%8F%E3%81%9B%E3%81%A6%E3%80%8C%E9%9B%B2%EF%BC%88Kumo%EF%BC%89%E3%80%8D%E3%82%92%E5%BD%A2%E6%88%90%0A%20%20%20%20-%20%E9%9B%B2%E3%81%AE%E4%B8%8A%E9%99%90%E3%81%BE%E3%81%9F%E3%81%AF%E4%B8%8B%E9%99%90%E3%81%A8%E3%81%97%E3%81%A6%E6%A9%9F%E8%83%BD%0A%20%20%20%20-%20%E4%BE%A1%E6%A0%BC%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%83%BB%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%A8%E3%81%97%E3%81%A6%E6%A9%9F%E8%83%BD%0A%0A%20%20%20%20**%E5%AE%9F%E8%A3%85%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20Polars%E3%81%AE%60.shift(26)%60%E3%81%AF%E6%AD%A3%E3%81%AE%E6%95%B0%E3%81%A7%E3%80%8C%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%E3%80%8D%0A%20%20%20%20-%20%E3%82%B7%E3%83%95%E3%83%88%E3%81%97%E3%81%9F%E5%88%86%EF%BC%88%E5%85%88%E9%A0%AD26%E5%80%8B%EF%BC%89%E3%81%AF%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%60null%60%E3%81%AB%E3%81%AA%E3%82%8B%0A%20%20%20%20-%20%E3%81%93%E3%82%8C%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88%E4%B8%8A%E3%81%A726%E6%97%A5%E5%88%86%E5%85%88%E8%A1%8C%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%0A%0A%20%20%20%20%60%60%60python%0A%20%20%20%20leading_span1%20%3D%20((conversion_line%20%2B%20base_line)%20%2F%202).shift(26)%0A%20%20%20%20%60%60%60%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20%23%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%3A%20(%E8%BB%A2%E6%8F%9B%E7%B7%9A%20%2B%20%E5%9F%BA%E6%BA%96%E7%B7%9A)%20%2F%202%20%E3%82%9226%E6%97%A5%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%81%9A%E3%82%89%E3%81%99%0A%20%20%20%20leading_span1%20%3D%20((conversion_line%20%2B%20base_line)%20%2F%202).shift(26)%0A%20%20%20%20leading_span1%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(hist%2C%20mo%2C%20pl)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%204.%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%EF%BC%88Leading%20Span%20B%20%2F%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E4%B9%99%EF%BC%89%0A%0A%20%20%20%20**%E8%A8%88%E7%AE%97%E5%BC%8F**%3A%20%60(%E9%81%8E%E5%8E%BB52%E6%97%A5%E9%96%93%E3%81%AE%E6%9C%80%E9%AB%98%E5%80%A4%20%2B%20%E9%81%8E%E5%8E%BB52%E6%97%A5%E9%96%93%E3%81%AE%E6%9C%80%E5%AE%89%E5%80%A4)%20%C3%B7%202%60%20%E3%82%92%20**26%E6%97%A5%E6%9C%AA%E6%9D%A5**%20%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%0A%0A%20%20%20%20%E9%95%B7%E6%9C%9F%E7%9A%84%E3%81%AA%E7%9B%B8%E5%A0%B4%E3%81%AE%E6%96%B9%E5%90%91%E6%80%A7%E3%82%9226%E6%97%A5%E5%85%88%E8%A1%8C%E3%81%95%E3%81%9B%E3%81%9F%E7%B7%9A%E3%81%A7%E3%81%99%E3%80%82%0A%20%20%20%2052%E6%97%A5%E9%96%93%E3%81%AF%E7%B4%842%E3%83%B6%E6%9C%88%E3%81%AE%E5%96%B6%E6%A5%AD%E6%97%A5%E3%81%AB%E7%9B%B8%E5%BD%93%E3%81%97%E3%80%81%E3%82%88%E3%82%8A%E9%95%B7%E6%9C%9F%E7%9A%84%E3%81%AA%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%82%92%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%E3%81%A8%E5%90%88%E3%82%8F%E3%81%9B%E3%81%A6%E3%80%8C%E9%9B%B2%EF%BC%88Kumo%20%2F%20Cloud%EF%BC%89%E3%80%8D%E3%82%92%E5%BD%A2%E6%88%90%0A%20%20%20%20-%20%E9%9B%B2%E3%81%AE%E5%8E%9A%E3%81%95%20%3D%20%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%81%AE%E5%BC%B7%E3%81%95%0A%20%20%20%20%20%20-%20%E9%9B%B2%E3%81%8C%E5%8E%9A%E3%81%84%20%E2%86%92%20%E5%BC%B7%E3%81%84%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%2F%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%0A%20%20%20%20%20%20-%20%E9%9B%B2%E3%81%8C%E8%96%84%E3%81%84%20%E2%86%92%20%E5%BC%B1%E3%81%84%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%2F%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%0A%20%20%20%20-%20%E9%9B%B2%E3%81%AE%E8%89%B2%EF%BC%88%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%E3%81%A82%E3%81%AE%E4%B8%8A%E4%B8%8B%E9%96%A2%E4%BF%82%EF%BC%89%0A%20%20%20%20%20%20-%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%20%3E%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%20%E2%86%92%20%E4%B8%8A%E6%98%87%E9%9B%B2%EF%BC%88%E7%B7%91%E8%89%B2%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E5%A4%9A%E3%81%84%EF%BC%89%0A%20%20%20%20%20%20-%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%20%3C%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%20%E2%86%92%20%E4%B8%8B%E9%99%8D%E9%9B%B2%EF%BC%88%E8%B5%A4%E8%89%B2%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E5%A4%9A%E3%81%84%EF%BC%89%0A%0A%20%20%20%20**52%E6%97%A5%E3%81%A8%E3%81%84%E3%81%86%E6%95%B0%E5%AD%97%E3%81%AE%E6%84%8F%E5%91%B3**%3A%0A%20%20%20%2026%E6%97%A5%E3%81%AE2%E5%80%8D%E3%81%A7%E3%80%81%E7%B4%842%E3%83%B6%E6%9C%88%E3%81%AE%E5%96%B6%E6%A5%AD%E6%97%A5%E3%82%92%E8%A1%A8%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20%60%60%60python%0A%20%20%20%20high%20%3D%20hist%5B%22high.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20low%20%3D%20hist%5B%22low.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20leading_span2%20%3D%20((high.rolling_max(52)%20%2B%20low.rolling_min(52))%20%2F%202).shift(26)%0A%20%20%20%20%60%60%60%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20%23%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%3A%20%E9%81%8E%E5%8E%BB52%E6%97%A5%E9%96%93%E3%81%AE%20(Max%20%2B%20Min)%20%2F%202%20%E3%82%9226%E6%97%A5%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%81%9A%E3%82%89%E3%81%99%0A%20%20%20%20_high2%20%3D%20hist%5B%22high.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20_low2%20%3D%20hist%5B%22low.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20leading_span2%20%3D%20((_high2.rolling_max(52)%20%2B%20_low2.rolling_min(52))%20%2F%202).shift(26)%0A%20%20%20%20leading_span2%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(hist%2C%20mo%2C%20pl)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%205.%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%EF%BC%88Lagging%20Span%20%2F%20Chikou%20Span%20%2F%20%E9%81%85%E8%A1%8C%E7%B7%9A%EF%BC%89%0A%0A%20%20%20%20**%E8%A8%88%E7%AE%97%E5%BC%8F**%3A%20%E4%BB%8A%E6%97%A5%E3%81%AE%E7%B5%82%E5%80%A4%E3%82%92%20**26%E6%97%A5%E9%81%8E%E5%8E%BB**%20%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%0A%0A%20%20%20%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E7%B5%82%E5%80%A4%E3%82%9226%E6%97%A5%E5%89%8D%E3%81%AB%E9%81%A1%E3%81%A3%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E7%B7%9A%E3%81%A7%E3%81%99%E3%80%82%0A%20%20%20%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E4%BE%A1%E6%A0%BC%E6%B0%B4%E6%BA%96%E3%82%92%E9%81%8E%E5%8E%BB%E3%81%AE%E4%BE%A1%E6%A0%BC%E3%81%A8%E6%AF%94%E8%BC%83%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E7%9B%B8%E5%A0%B4%E3%81%AE%E5%8B%A2%E3%81%84%E3%82%92%E5%88%A4%E6%96%AD%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20**%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%8C%E9%81%8E%E5%8E%BB%E3%81%AE%E3%83%AD%E3%83%BC%E3%82%BD%E3%82%AF%E8%B6%B3%E3%82%92%E4%B8%8A%E6%8A%9C%E3%81%91%E3%82%8B%20%E2%86%92%20%E5%BC%B7%E3%81%84%E8%B2%B7%E3%81%84%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%0A%20%20%20%20-%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%8C%E9%81%8E%E5%8E%BB%E3%81%AE%E3%83%AD%E3%83%BC%E3%82%BD%E3%82%AF%E8%B6%B3%E3%82%92%E4%B8%8B%E6%8A%9C%E3%81%91%E3%82%8B%20%E2%86%92%20%E5%BC%B7%E3%81%84%E5%A3%B2%E3%82%8A%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%0A%20%20%20%20-%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%8C%E3%83%AD%E3%83%BC%E3%82%BD%E3%82%AF%E8%B6%B3%E3%81%AB%E7%B5%A1%E3%82%80%20%E2%86%92%20%E3%82%82%E3%81%BF%E5%90%88%E3%81%84%E7%9B%B8%E5%A0%B4%0A%0A%20%20%20%20**%E5%AE%9F%E8%A3%85%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88**%3A%0A%20%20%20%20-%20Polars%E3%81%AE%60.shift(-26)%60%E3%81%AF%E8%B2%A0%E3%81%AE%E6%95%B0%E3%81%A7%E3%80%8C%E9%81%8E%E5%8E%BB%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%E3%80%8D%0A%20%20%20%20-%20%E3%82%B7%E3%83%95%E3%83%88%E3%81%97%E3%81%9F%E5%88%86%EF%BC%88%E6%9C%AB%E5%B0%BE26%E5%80%8B%EF%BC%89%E3%81%AF%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%60null%60%E3%81%AB%E3%81%AA%E3%82%8B%0A%20%20%20%20-%20%E3%81%93%E3%82%8C%E3%81%AB%E3%82%88%E3%82%8A%E3%80%81%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88%E4%B8%8A%E3%81%A726%E6%97%A5%E5%88%86%E9%81%85%E8%A1%8C%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%0A%0A%20%20%20%20**%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%AE%E3%82%B3%E3%83%84**%3A%0A%20%20%20%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%AF%E3%80%8C%E7%8F%BE%E5%9C%A8%E3%81%AE%E4%BE%A1%E6%A0%BC%E3%81%8C26%E6%97%A5%E5%89%8D%E3%81%A8%E6%AF%94%E3%81%B9%E3%81%A6%E3%81%A9%E3%81%86%E3%81%8B%E3%80%8D%E3%82%92%E7%A4%BA%E3%81%99%E3%81%9F%E3%82%81%E3%80%81%0A%20%20%20%20%E4%B8%8A%E6%98%87%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E6%99%82%E3%81%AF%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%8C%E9%81%8E%E5%8E%BB%E3%81%AE%E3%83%AD%E3%83%BC%E3%82%BD%E3%82%AF%E8%B6%B3%E3%81%AE%E4%B8%8A%E6%96%B9%E3%81%AB%E4%BD%8D%E7%BD%AE%E3%81%97%E3%80%81%0A%20%20%20%20%E4%B8%8B%E9%99%8D%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E6%99%82%E3%81%AF%E4%B8%8B%E6%96%B9%E3%81%AB%E4%BD%8D%E7%BD%AE%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20%60%60%60python%0A%20%20%20%20close%20%3D%20hist%5B%22close.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20lagging_span%20%3D%20close.shift(-26)%0A%20%20%20%20%60%60%60%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20%23%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%3A%20%E4%BB%8A%E6%97%A5%E3%81%AE%E7%B5%82%E5%80%A4%E3%82%9226%E6%97%A5%E9%81%8E%E5%8E%BB%E3%81%AB%E3%81%9A%E3%82%89%E3%81%99%0A%20%20%20%20_close%20%3D%20hist%5B%22close.amount%22%5D.cast(pl.Float64)%0A%20%20%20%20lagging_span%20%3D%20_close.shift(-26)%0A%20%20%20%20lagging_span%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(go%2C%20hist%2C%20mo%2C%20pl%2C%20stock_code%2C%20ticker)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20%E4%B8%80%E7%9B%AE%E5%9D%87%E8%A1%A1%E8%A1%A8%E3%81%AE%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88%E8%A1%A8%E7%A4%BA%0A%0A%20%20%20%20%E4%B8%8A%E8%A8%98%E3%81%A7%E5%AD%A6%E7%BF%92%E3%81%97%E3%81%9F%E5%90%84%E7%B7%9A%E3%81%AE%E8%A8%88%E7%AE%97%E3%82%92%E3%80%81%60get_ichimoku_values()%60%E9%96%A2%E6%95%B0%E3%81%A7%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20%60%60%60python%0A%20%20%20%20from%20libs.ichimoku%20import%20get_ichimoku_values%0A%20%20%20%20values%20%3D%20get_ichimoku_values(hist)%0A%20%20%20%20%60%60%60%0A%0A%20%20%20%20%E3%81%93%E3%81%AE%E9%96%A2%E6%95%B0%E3%81%AF5%E3%81%A4%E3%81%AE%E7%B7%9A%E3%82%92%E3%81%99%E3%81%B9%E3%81%A6%E8%A8%88%E7%AE%97%E3%81%97%E3%81%A6%E8%BE%9E%E6%9B%B8%E5%BD%A2%E5%BC%8F%E3%81%A7%E8%BF%94%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%0A%0A%20%20%20%20%23%23%23%20%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88%E3%81%AE%E8%A6%8B%E6%96%B9%0A%0A%20%20%20%20**%E4%B8%89%E5%BD%B9%E5%A5%BD%E8%BB%A2%EF%BC%88%E3%81%95%E3%82%93%E3%82%84%E3%81%8F%E3%81%93%E3%81%86%E3%81%A6%E3%82%93%EF%BC%89**%3A%20%E6%9C%80%E5%BC%B7%E3%81%AE%E8%B2%B7%E3%81%84%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%0A%20%20%20%201.%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%E3%81%8C%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%82%92%E4%B8%8A%E6%8A%9C%E3%81%91%E3%82%8B%0A%20%20%20%202.%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%8C%E3%83%AD%E3%83%BC%E3%82%BD%E3%82%AF%E8%B6%B3%E3%82%92%E4%B8%8A%E6%8A%9C%E3%81%91%E3%82%8B%0A%20%20%20%203.%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%82%92%E4%B8%8A%E6%8A%9C%E3%81%91%E3%82%8B%0A%0A%20%20%20%20**%E4%B8%89%E5%BD%B9%E9%80%86%E8%BB%A2%EF%BC%88%E3%81%95%E3%82%93%E3%82%84%E3%81%8F%E3%81%8E%E3%82%83%E3%81%8F%E3%81%A6%E3%82%93%EF%BC%89**%3A%20%E6%9C%80%E5%BC%B7%E3%81%AE%E5%A3%B2%E3%82%8A%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB%0A%20%20%20%201.%20%E8%BB%A2%E6%8F%9B%E7%B7%9A%E3%81%8C%E5%9F%BA%E6%BA%96%E7%B7%9A%E3%82%92%E4%B8%8B%E6%8A%9C%E3%81%91%E3%82%8B%0A%20%20%20%202.%20%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%8C%E3%83%AD%E3%83%BC%E3%82%BD%E3%82%AF%E8%B6%B3%E3%82%92%E4%B8%8B%E6%8A%9C%E3%81%91%E3%82%8B%0A%20%20%20%203.%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%82%92%E4%B8%8B%E6%8A%9C%E3%81%91%E3%82%8B%0A%0A%20%20%20%20**%E9%9B%B2%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9**%3A%0A%20%20%20%20-%20%E9%9B%B2%E3%81%AF%E5%B0%86%E6%9D%A5%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%83%BB%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E7%A4%BA%E3%81%99%0A%20%20%20%20-%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%81%AE%E4%B8%8A%20%E2%86%92%20%E4%B8%8A%E6%98%87%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E7%B6%99%E7%B6%9A%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E9%AB%98%E3%81%84%0A%20%20%20%20-%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%81%AE%E4%B8%8B%20%E2%86%92%20%E4%B8%8B%E9%99%8D%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E7%B6%99%E7%B6%9A%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E9%AB%98%E3%81%84%0A%20%20%20%20-%20%E4%BE%A1%E6%A0%BC%E3%81%8C%E9%9B%B2%E3%82%92%E7%AA%81%E7%A0%B4%20%E2%86%92%20%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E8%BB%A2%E6%8F%9B%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7%0A%20%20%20%20%22%22%22)%0A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20from%20datetime%20import%20datetime%2C%20timedelta%0A%0A%20%20%20%20from%20libs.ichimoku%20import%20IchimokuValues%2C%20get_ichimoku_values%0A%0A%20%20%20%20def%20generate_future_business_days(last_date%3A%20str%2C%20n_days%3A%20int%20%3D%2026)%20-%3E%20list%5Bstr%5D%3A%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20Generate%20n%20future%20business%20days%20from%20last_date.%0A%0A%20%20%20%20%20%20%20%20Args%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20last_date%3A%20Last%20date%20in%20format%20%22YYYY-MM-DD%22%0A%20%20%20%20%20%20%20%20%20%20%20%20n_days%3A%20Number%20of%20business%20days%20to%20generate%0A%0A%20%20%20%20%20%20%20%20Returns%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20List%20of%20date%20strings%20in%20%22YYYY-MM-DD%22%20format%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20current%20%3D%20datetime.strptime(last_date%2C%20%22%25Y-%25m-%25d%22)%0A%20%20%20%20%20%20%20%20future_dates%20%3D%20%5B%5D%0A%0A%20%20%20%20%20%20%20%20while%20len(future_dates)%20%3C%20n_days%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20current%20%2B%3D%20timedelta(days%3D1)%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%200%20%3D%20Monday%2C%206%20%3D%20Sunday%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20current.weekday()%20%3C%205%3A%20%20%23%20Monday%20to%20Friday%20(%E5%96%B6%E6%A5%AD%E6%97%A5)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20future_dates.append(current.strftime(%22%25Y-%25m-%25d%22))%0A%0A%20%20%20%20%20%20%20%20return%20future_dates%0A%0A%20%20%20%20def%20create_cloud_segments(dates%2C%20span1%2C%20span2)%3A%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20Split%20Ichimoku%20cloud%20into%20colored%20segments%20based%20on%20bullish%2Fbearish%20crossovers.%0A%0A%20%20%20%20%20%20%20%20Args%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20dates%3A%20List%20of%20date%20strings%0A%20%20%20%20%20%20%20%20%20%20%20%20span1%3A%20Polars%20Series%20or%20numpy%20array%20of%20leading_span1%20values%0A%20%20%20%20%20%20%20%20%20%20%20%20span2%3A%20Polars%20Series%20or%20numpy%20array%20of%20leading_span2%20values%0A%0A%20%20%20%20%20%20%20%20Returns%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20List%20of%20go.Scatter%20traces%20for%20colored%20cloud%20segments%0A%20%20%20%20%20%20%20%20%22%22%22%0A%20%20%20%20%20%20%20%20%23%20Convert%20to%20numpy%20arrays%20if%20needed%0A%20%20%20%20%20%20%20%20if%20hasattr(span1%2C%20%22to_numpy%22)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20span1%20%3D%20span1.to_numpy()%0A%20%20%20%20%20%20%20%20if%20hasattr(span2%2C%20%22to_numpy%22)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20span2%20%3D%20span2.to_numpy()%0A%0A%20%20%20%20%20%20%20%20%23%20Calculate%20bullish%20condition%20(span1%20%3E%20span2)%0A%20%20%20%20%20%20%20%20%23%20Handle%20NaN%20values%20by%20treating%20them%20as%20False%0A%20%20%20%20%20%20%20%20is_bullish%20%3D%20np.nan_to_num(span1%20%3E%20span2%2C%20nan%3DFalse)%0A%0A%20%20%20%20%20%20%20%20%23%20Find%20crossover%20points%20where%20bullish%20condition%20changes%0A%20%20%20%20%20%20%20%20crossovers%20%3D%20np.where(np.diff(is_bullish.astype(int))%20!%3D%200)%5B0%5D%20%2B%201%0A%0A%20%20%20%20%20%20%20%20%23%20Create%20segment%20boundaries%20(start%20at%200%2C%20include%20all%20crossovers%2C%20end%20at%20len)%0A%20%20%20%20%20%20%20%20boundaries%20%3D%20np.concatenate(%5B%5B0%5D%2C%20crossovers%2C%20%5Blen(dates)%5D%5D)%0A%0A%20%20%20%20%20%20%20%20traces%20%3D%20%5B%5D%0A%0A%20%20%20%20%20%20%20%20%23%20For%20each%20segment%20between%20boundaries%0A%20%20%20%20%20%20%20%20for%20i%20in%20range(len(boundaries)%20-%201)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20start_idx%20%3D%20boundaries%5Bi%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20end_idx%20%3D%20boundaries%5Bi%20%2B%201%5D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20Extract%20segment%20data%0A%20%20%20%20%20%20%20%20%20%20%20%20segment_dates%20%3D%20dates%5Bstart_idx%3Aend_idx%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20segment_span1%20%3D%20span1%5Bstart_idx%3Aend_idx%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20segment_span2%20%3D%20span2%5Bstart_idx%3Aend_idx%5D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20Skip%20if%20all%20values%20are%20NaN%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20np.all(np.isnan(segment_span1))%20or%20np.all(np.isnan(segment_span2))%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20Determine%20segment%20color%0A%20%20%20%20%20%20%20%20%20%20%20%20segment_is_bullish%20%3D%20is_bullish%5Bstart_idx%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20fillcolor%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22rgba(135%2C%20206%2C%20250%2C%200.3)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20segment_is_bullish%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%22rgba(255%2C%20165%2C%200%2C%200.3)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20Create%20trace%20pair%20for%20this%20segment%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20First%20trace%3A%20span1%20(no%20fill)%0A%20%20%20%20%20%20%20%20%20%20%20%20traces.append(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20go.Scatter(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dsegment_dates%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dsegment_span1%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20line%3D%7B%22width%22%3A%200.5%2C%20%22color%22%3A%20%22rgba(200%2C200%2C200%2C0.5)%22%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showlegend%3DFalse%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20hoverinfo%3D%22skip%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20Second%20trace%3A%20span2%20(fill%20to%20previous%20%3D%20span1)%0A%20%20%20%20%20%20%20%20%20%20%20%20traces.append(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20go.Scatter(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dsegment_dates%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dsegment_span2%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20line%3D%7B%22width%22%3A%200.5%2C%20%22color%22%3A%20%22rgba(200%2C200%2C200%2C0.5)%22%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fill%3D%22tonexty%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fillcolor%3Dfillcolor%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showlegend%3DFalse%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20hoverinfo%3D%22skip%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20return%20traces%0A%0A%20%20%20%20def%20get_ichimoku_fig(df%3A%20pl.DataFrame%2C%20values%3A%20IchimokuValues%2C%20name%3A%20str)%3A%0A%20%20%20%20%20%20%20%20%23%20%E6%97%A5%E4%BB%98%E3%82%92%22YYYY-MM-DD%22%E5%BD%A2%E5%BC%8F%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%81%AB%E5%A4%89%E6%8F%9B%EF%BC%88%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E8%BB%B8%E3%81%AE%E3%83%A9%E3%83%99%E3%83%AB%E3%81%8C%E7%B6%BA%E9%BA%97%E3%81%AB%E3%81%AA%E3%82%8B%EF%BC%89%0A%20%20%20%20%20%20%20%20original_dates%20%3D%20df%5B%22date%22%5D.dt.strftime(%22%25Y-%25m-%25d%22).to_list()%0A%0A%20%20%20%20%20%20%20%20%23%20%E6%9C%AA%E6%9D%A526%E5%96%B6%E6%A5%AD%E6%97%A5%E3%82%92%E7%94%9F%E6%88%90%EF%BC%88%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E8%A1%A8%E7%A4%BA%E7%94%A8%EF%BC%89%0A%20%20%20%20%20%20%20%20future_dates%20%3D%20generate_future_business_days(original_dates%5B-1%5D%2C%20n_days%3D26)%0A%0A%20%20%20%20%20%20%20%20%23%20%E6%8B%A1%E5%BC%B5%E3%81%95%E3%82%8C%E3%81%9F%E6%97%A5%E4%BB%98%E7%AF%84%E5%9B%B2%EF%BC%88%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E7%94%A8%EF%BC%89%0A%20%20%20%20%20%20%20%20extended_dates%20%3D%20original_dates%20%2B%20future_dates%0A%0A%20%20%20%20%20%20%20%20%23%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%82%92%E6%9C%AA%E6%9D%A5%E3%81%AE%E6%97%A5%E4%BB%98%E3%81%AB%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%0A%20%20%20%20%20%20%20%20%23%20%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E3%81%AF26%E6%97%A5%E5%85%88%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E5%85%88%E9%A0%AD26%E5%80%8B%E3%81%AFnull%E3%80%81%E6%AE%8B%E3%82%8A%E3%82%92%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%0A%20%20%20%20%20%20%20%20span1_values%20%3D%20values%5B%22leading_span1%22%5D.to_numpy()%0A%20%20%20%20%20%20%20%20span2_values%20%3D%20values%5B%22leading_span2%22%5D.to_numpy()%0A%0A%20%20%20%20%20%20%20%20%23%20%E6%8B%A1%E5%BC%B5%E9%85%8D%E5%88%97%3A%20%5Bnull%C3%9726%E5%80%8B%2C%20%E5%AE%9F%E9%9A%9B%E3%81%AE%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%E5%80%A4%5D%0A%20%20%20%20%20%20%20%20span1_extended%20%3D%20np.concatenate(%5B%5Bnp.nan%5D%20*%2026%2C%20span1_values%5D)%0A%20%20%20%20%20%20%20%20span2_extended%20%3D%20np.concatenate(%5B%5Bnp.nan%5D%20*%2026%2C%20span2_values%5D)%0A%0A%20%20%20%20%20%20%20%20layout%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22height%22%3A%20700%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22title%22%3A%20%7B%22text%22%3A%20name%2C%20%22x%22%3A%200.5%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22xaxis%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22rangeslider%22%3A%20%7B%22visible%22%3A%20False%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22category%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22nticks%22%3A%2012%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tickmode%22%3A%20%22auto%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22showgrid%22%3A%20False%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22yaxis1%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22domain%22%3A%20%5B0.05%2C%201.0%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22title%22%3A%20%22%E4%BE%A1%E6%A0%BC(JPY)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22side%22%3A%20%22left%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tickformat%22%3A%20%22%2C%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22yaxis2%22%3A%20%7B%22domain%22%3A%20%5B0.0%2C%200.05%5D%7D%2C%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20data%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20go.Candlestick(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20yaxis%3D%22y1%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Doriginal_dates%2C%20%20%23%20%E5%85%83%E3%81%AE%E6%97%A5%E4%BB%98%E3%81%AE%E3%81%BF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20open%3Ddf%5B%22open.amount%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20high%3Ddf%5B%22high.amount%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20low%3Ddf%5B%22low.amount%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20close%3Ddf%5B%22close.amount%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20increasing_line_color%3D%22red%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20decreasing_line_color%3D%22green%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3Dname%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%23%20%E4%B8%80%E7%9B%AE%E5%9D%87%E8%A1%A1%E8%A1%A8%E3%81%AE%E5%90%84%E7%B7%9A%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%0A%20%20%20%20%20%20%20%20%20%20%20%20go.Scatter(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Doriginal_dates%2C%20%20%23%20%E5%85%83%E3%81%AE%E6%97%A5%E4%BB%98%E3%81%AE%E3%81%BF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dvalues%5B%22base_line%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3D%22%E5%9F%BA%E6%BA%96%E7%B7%9A%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20line%3D%7B%22color%22%3A%20%22green%22%2C%20%22width%22%3A%201%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20go.Scatter(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Doriginal_dates%2C%20%20%23%20%E5%85%83%E3%81%AE%E6%97%A5%E4%BB%98%E3%81%AE%E3%81%BF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dvalues%5B%22conversion_line%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3D%22%E8%BB%A2%E6%8F%9B%E7%B7%9A%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20line%3D%7B%22color%22%3A%20%22darkviolet%22%2C%20%22width%22%3A%201%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20go.Scatter(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dextended_dates%2C%20%20%23%20%E6%8B%A1%E5%BC%B5%E6%97%A5%E4%BB%98%EF%BC%88%E6%9C%AA%E6%9D%A5%E3%81%BE%E3%81%A7%EF%BC%89%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dspan1_extended%2C%20%20%23%20%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3D%22%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20line%3D%7B%22color%22%3A%20%22gainsboro%22%2C%20%22width%22%3A%201%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20go.Scatter(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Dextended_dates%2C%20%20%23%20%E6%8B%A1%E5%BC%B5%E6%97%A5%E4%BB%98%EF%BC%88%E6%9C%AA%E6%9D%A5%E3%81%BE%E3%81%A7%EF%BC%89%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dspan2_extended%2C%20%20%23%20%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3D%22%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20line%3D%7B%22color%22%3A%20%22gainsboro%22%2C%20%22width%22%3A%201%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20go.Scatter(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%3Doriginal_dates%2C%20%20%23%20%E5%85%83%E3%81%AE%E6%97%A5%E4%BB%98%E3%81%AE%E3%81%BF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%3Dvalues%5B%22lagging_span%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20name%3D%22%E9%81%85%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B3%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mode%3D%22lines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20line%3D%7B%22color%22%3A%20%22cornflowerblue%22%2C%20%22width%22%3A%201%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%5D%0A%0A%20%20%20%20%20%20%20%20%23%20%E9%9B%B2%E3%81%AE%E5%A1%97%E3%82%8A%E3%81%A4%E3%81%B6%E3%81%97%EF%BC%88%E9%99%BD%E8%BB%A2%E3%83%BB%E9%99%B0%E8%BB%A2%E3%81%A7%E8%89%B2%E5%88%86%E3%81%91%EF%BC%89%0A%20%20%20%20%20%20%20%20cloud_traces%20%3D%20create_cloud_segments(%0A%20%20%20%20%20%20%20%20%20%20%20%20dates%3Dextended_dates%2C%20%20%23%20%E6%8B%A1%E5%BC%B5%E6%97%A5%E4%BB%98%EF%BC%88%E6%9C%AA%E6%9D%A5%E3%81%BE%E3%81%A7%EF%BC%89%0A%20%20%20%20%20%20%20%20%20%20%20%20span1%3Dspan1_extended%2C%20%20%23%20%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B31%0A%20%20%20%20%20%20%20%20%20%20%20%20span2%3Dspan2_extended%20%20%20%23%20%E6%9C%AA%E6%9D%A5%E3%81%AB%E3%82%B7%E3%83%95%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%E5%85%88%E8%A1%8C%E3%82%B9%E3%83%91%E3%83%B32%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20data.extend(cloud_traces)%0A%20%20%20%20%20%20%20%20return%20go.Figure(data%3Ddata%2C%20layout%3Dgo.Layout(layout))%0A%0A%20%20%20%20values%20%3D%20get_ichimoku_values(hist)%0A%20%20%20%20company_name%20%3D%20ticker.info.get(%22shortName%22%2C%20stock_code.value)%0A%20%20%20%20fig%20%3D%20get_ichimoku_fig(df%3Dhist%2C%20values%3Dvalues%2C%20name%3Dcompany_name)%0A%20%20%20%20fig%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
7aef1f20286598ec349a8497d2772dec