續上一篇:Python 計算股價 KDJ,這篇把它完備一點,再加上前一日收盤價格,今日收盤價格,差異和百分比:
我定義一個函數來取得最後日和前一日的收盤價格資料,並計算差異百分比,最後將結果傳回:
完整程式碼如下:
你可以參考上一篇:
續上一篇:Python 計算股價 KDJ,這篇把它完備一點,再加上前一日收盤價格,今日收盤價格,差異和百分比:
完整程式碼如下:
你可以參考上一篇:
KDJ是通過一個特定的周期(常見為9天)內出現的最高價、最低價和最後交易日的收市價,以及三者之間的比例關係,計出未成熟隨機值(Raw Stochastic Value,RSV),再根據平滑移動平均線(又名「指數移動平均線」,EMA) 的方法計出K值、D值和J值。
今天就來講解如何用python計算KDJ值。
1.首先匯入相關套件:
2.下載特斯拉(美股代號:TSLA) 最近30天的股價資料,(列出最後5日資料查看):
3.計算 KDJ 值,以最後收盤日2024/03/08 與看盤軟體Tiger trade驗證:
4.將股票名稱,最後收盤價,KDJ值放入list
5.寫一個函數將list轉成 DataFrame 格式,欄位有:名稱(Name),最後收盤價格(Price),K,D,J,並且以股票名稱"Name"當作索引欄,並傳回DataFrame:
6.最後將上面的程式寫成3個函數,
(1)計算KDJ:calc_kdj()
(2)取得股價的資料:get_ticker_price()
(3)list轉換dataframe:list_conv_matrix()
7.我用蘋果(AAPL),輝達(NVDA),特斯拉(TSLA) 這3支股票來計算 KDJ,執行結果如下:
8.最後如果要將 dataframe 存成 csv 檔可以用下面的指令:
kdj_df.to_csv(file_name, sep=',') # 用逗點分隔的csv檔
完整程式碼如下:
你可以參考下一篇:
本篇是利用LangChain框架的ChatPDF工具,讀入pdf file,然後透過提問的方式,快速進行文件摘要總結,甚至請它提供建議。
1.首先 import 相關套件:
2.準備你的openAI API key (或是去申請):
3.因為我是用 Colab線上編輯器,所以先掛載雲端硬碟,然後才能讀取雲端硬碟的檔案:
3.使用LangChain提供的讀檔方式讀取PDF檔案:
檔案是 索甲仁波切的 "西藏生死書",第六章演化業與輪迴
如果是 txt 文字檔,可以這樣:
4.由於語言模型一次能讀取的文字數量有限,因此需要將文件切分成數個小區塊:
每個區塊(chunk) 200個字元
5.透過Chroma (一個專門為LLM embedding database設計的工具)
將剛剛的文字轉換成向量,最後儲存成一個本地的vector store。
6.最後建立對話chain,使用LangChain的ConversationalRetrievalChain:
7.結果:
Q: 意識來自何方?A: 從佛教的觀點來看,意識來自於前一刻意識的連續。意識是一個持續不斷的過程,
每一刻的意識都是由前一刻的意識所產生。因此,意識沒有一個特定的來源,而是由無窮盡
的過去意識所連續形成的。
Q: 用300字總結這文件的重點A: 這份文件的重點是,瀕死經驗中的人會經歷全景式的生命回顧,看到自己的行為對他人產生的影響,
並感受到業的真理。他們意識到每一個思想、語言和行為都對周圍的人和環境產生影響,
並且認識到負責任的重要性。他們也明白逃脫不了業的自然律,並意識到未來世的存在。
最終,他們希望通過觀察業的法則、淨化心靈和喚醒智慧,成為真正的人並證悟。
另外,我再用 索甲仁波切的 "西藏生死書"的 臨終的恐懼篇 來測試一下:結果:
Q: 如何面對臨終前未完成的事
A: 面對臨終前未完成的事,可以遵循以下方法:
1. 深入思考:花時間反思自己的生活,找出那些未完成的事情。這可能包括個人目標、夢想、
關係或者其他重要的事情。
2. 優先排序:將這些未完成的事情按照重要性和緊迫性進行排序。確定哪些事情是最重要的,
並優先處理它們。
3. 與親友溝通:與親友分享自己的未完成事項,並尋求他們的理解和支持。他們可能能夠提供幫助、
建議或者陪伴你完成這些事情。
4. 接受現實:有些事情可能無法在臨終前完成,這是現實。學會接受這些無法改變的情況,
並尋找其他方式來處理或者放下這些事情。
5. 尋求心理支持:如果你感到壓力、焦慮或者情緒困擾,尋求心理專業人士的幫助是很重要的。
他們可以提供情緒支持和指導,幫助你處理這些未完成的事情。
6. 尋找內心寧靜:在臨終前,尋找內心的寧靜和平靜是非常重要的。這可以通過冥想、呼吸練習、
寫日記或者其他自我反省的方式來實現。
7. 培養感恩之心:感恩自己所擁有的一切,並將注意力轉移到當下的幸福和滿足感上。
這有助於減輕對未完成事情的焦慮和壓力。
重要的是要記住,每個人的情況和處理方式都不同。找到適合自己的方法,並尋求支持和幫助,
以幫助你面對臨終前的未完成事情。
Q: 用200字總結這文件的重點
A: 這份文件的重點是關於如何在臨終關懷中放下過去的困難,並與臨終者進行對話和溝通。
文件提到了寫下自己的感覺和對話,直到沒有保留的話為止。同時,文件呼籲醫界人士以善意和關懷,
讓臨終者能夠在寧靜和安詳中離世。此外,文件還提到了保留愛和美好回憶的重要性,
以及家人也應該學習如何放下並面對悲痛和未來的不安全感。
程式碼如下:
輸出結果:
看起來2023年度績效最好的是Nvidia,最差的是Apple。
如果Y軸要以百分比來表示可以將:
改成:
輸出結果:
以Nvidia (美股代號:NVDA) 2023/01/03收盤價143.15,到2023/12/29收盤價495.22來算
回報率為245.94%
上一篇提到將台股上市上櫃公司名稱從證交所網頁抓下來,並存成 dataframe 的格式,如下:

如果要用 yfinance 來取得股價寫法是:
因此我們要有一個 '1101.TW' 可以對應到 '台泥' 的一個 table,我們可以這樣做,
將上一篇得到的 df 的有價證券代號及名稱欄位的值切開,例如上圖,索引0台泥的 '有價證券代號及名稱' 欄位的值是 '1101 台泥',我們要切開成為 '1101.TW' 和 '台泥'
結果:1101 台泥將變數code+'.TW',就是股票代碼,股票名稱就是'台泥',然後使用 code 當作字典的key,
然後將上面的程式寫成 function:
要呼叫的時候就這樣寫:
返回的變數 stock_dict 是字典型態,
鍵(key)是股票代碼;值(value)是一個list,包含公司名稱和產業別。
這樣就製作了一個台股代碼和公司,名產業別的一個對照清單。
你可以參考上一篇:
1. 用 Python 取得台股上市上櫃清單(一)
各位知道目前台股上市上櫃的公司有多少嗎?
今天用 Python 來抓取台灣證券交易所上市上櫃的公司清單。
台灣證券交易所公佈的上市證券國際證券辨識號碼一覽表網頁在:
https://isin.twse.com.tw/isin/C_public.jsp?strMode=2
1.首先先載入相關套件:
2. 將html 網頁資料抓下來存成 dataframe資料格式:
3. 接著設定欄位(column)名稱:
4. 刪除第一行(Row):
5. 接著要找出CFI code 是 ESVUFR 的資料,其中CFI代碼CBCIXU是不動產投資信託,CEOGEU是ETF . . .
6. 現在資料有977筆,就是上市公司資料,接著我們要將索引序號重新編排一下:
7. 最後我們把這寫成一個 function:
要取得上市公司的資料就執行:
要取得上櫃公司的資料就執行:
下篇再來講一下如何將股票代碼和公司名稱做一個索引。
你可以參考:
1. 使用 Python 製作台股代碼與股票名稱對應字典(二)