Advertisement
penguin88428

plot stock

Jul 15th, 2021
1,328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.71 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Jul 15 20:16:10 2021
  4.  
  5. @author: darren
  6. """
  7.  
  8. import yfinance as yf
  9. import pandas as pd
  10. import mplfinance as mpf
  11. from finta import TA
  12.  
  13. #%%
  14. # 下載資料
  15.  
  16. start_date = "2020-01-01" #日期用字串表示,年月日中間用 - 隔開
  17. end_date = "2020-02-01"
  18. ticker_list = ['TSLA'] #用list儲存要查詢的股票代號
  19.  
  20. data = pd.DataFrame() #宣告一個空的DataFrame存所有的股票資料
  21. for tic in ticker_list: #每一檔依序下載
  22.     temp_df = yf.download(tic, start=start_date, end=end_date) # 呼叫API,回傳DataFrame格式
  23.     temp_df["tic"] = tic #新增一欄註記這是哪一檔股票
  24.     data = data.append(temp_df)
  25.  
  26. #%%
  27. # 畫出所有股票
  28.  
  29. for tic in ticker_list:
  30.     mpf.plot(data[data.tic == tic],title=tic,style='yahoo',type='candle',volume=True)
  31.    
  32. #%%
  33.  
  34. mpf.plot(data,type='line')
  35. mpf.plot(data,type='candle',mav=4)
  36. mpf.plot(data,type='candle',mav=(3,6,9),volume=True)
  37.  
  38. #%%
  39.  
  40. DEMA  = mpf.make_addplot(TA.DEMA(data,10))
  41. mpf.plot(data, type = 'line', title = 'TSLA', addplot = [DEMA])
  42.  
  43. #%%
  44. index  = mpf.make_addplot(TA.DEMA(data,10), panel = 1, ylabel = 'DEMA', color = 'green')
  45. mpf.plot(data, type = 'line', title = 'TSLA', addplot = [index])
  46.  
  47. #%%
  48.  
  49. start_date = "2020-01-01" #日期用字串表示,年月日中間用 - 隔開
  50. end_date = "2021-01-01"
  51. ticker_list = ['TSLA'] #用list儲存要查詢的股票代號
  52.  
  53. data = pd.DataFrame() #宣告一個空的DataFrame存所有的股票資料
  54. for tic in ticker_list: #每一檔依序下載
  55.     temp_df = yf.download(tic, start=start_date, end=end_date) # 呼叫API,回傳DataFrame格式
  56.     temp_df["tic"] = tic #新增一欄註記這是哪一檔股票
  57.     data = data.append(temp_df)
  58.    
  59. #%%
  60.  
  61. SMA = mpf.make_addplot(TA.SMA(data),color='orange') # 41天SMA
  62. WMA = mpf.make_addplot(TA.WMA(data),color='green') # 9天WMA
  63.  
  64. MACD_fast = mpf.make_addplot(TA.MACD(data).MACD,panel=1,color='blue')
  65. MACD_slow = mpf.make_addplot(TA.MACD(data).SIGNAL,panel=1,color='red')
  66.  
  67. diff = TA.MACD(data).MACD-TA.MACD(data).SIGNAL
  68. colors = ['g' if v >= 0 else 'r' for v in diff]
  69. MACD_hist = mpf.make_addplot(diff,type='bar',panel=1,color=colors)
  70.  
  71. mpf.plot(data, type = 'line', title = 'TSLA', style='yahoo',addplot = [SMA,WMA,MACD_fast,MACD_slow,MACD_hist],volume=True,volume_panel=2)
  72.  
  73. #%%
  74.  
  75. RSI = mpf.make_addplot(TA.RSI(data),panel=1,ylabel='RSI',color='orange')
  76. mpf.plot(data, type = 'line', title = 'TSLA', style='yahoo',addplot = [RSI])
  77.  
  78.  
  79. #%%
  80.  
  81. up  = mpf.make_addplot(TA.BBANDS(data).BB_UPPER)
  82. mid  = mpf.make_addplot(TA.BBANDS(data).BB_MIDDLE)
  83. low  = mpf.make_addplot(TA.BBANDS(data).BB_LOWER)
  84. mpf.plot(data,style='yahoo',type='candle',volume=True, title = 'TSLA', addplot = [up,mid,low])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement