中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python代碼創建復雜的財務圖表

發布時間:2023-04-25 11:56:21 來源:億速云 閱讀:111 作者:zzz 欄目:編程語言

今天小編給大家分享一下怎么使用Python代碼創建復雜的財務圖表的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

導入包

將所需的包導入到我們的 python 環境中是一個必不可少的步驟。在本文中,我們需要三個包,它們是處理數據幀的 Pandas、調用 API 和提取股票數據的requests,以及創建金融圖表的 mplfinance。對于尚未安裝這些軟件包的人,請將此代碼復制到你的終端中:

pip install pandas
pip install requests
pip install mplfinance

完成安裝包后,是時候將它們導入到我們的 python 環境中了。

import pandas as pd
import requests
import mplfinance as mf

提取股票數據

現在,我們已經導入了所有必要的包。讓我們使用12data.com[1]提供的 API 端點拉取亞馬遜的歷史股票數據。在此之前,12data.com上的一條說明:12data是領先的市場數據提供商之一,擁有適用于所有類型市場數據的大量 API 端點。與十二數據提供的 API 交互非常容易,并且擁有有史以來最好的文檔之一。此外,請確保你在12data.com上擁有一個帳戶,只有這樣,你才能訪問你的 API 密鑰(使用 API 提取數據的重要元素)。

Python實現
def get_historical_data(symbol, start_date):
api_key = 'YOUR API KEY'
api_url = f'https://api.twelvedata.com/time_series?symbol={symbol}&interval=1day&outputsize=5000&apikey={api_key}'
raw_df = requests. get(api_url).json()
df = pd.DataFrame(raw_df['values']).iloc[::-1].set_index('datetime').astype(float)
df = df[df.index >= start_date]
df.index = pd.to_datetime(df.index)
return df
amzn = get_historical_data('AMZN', '2021-01-01')
amzn.tail()

輸出:

怎么使用Python代碼創建復雜的財務圖表

代碼說明

我們做的第一件事是定義一個名為'get_historical_data'的函數,該函數以股票代碼('symbol')和歷史數據的開始日期('start_date')為參數。

在函數內部,我們定義了 API 密鑰和 URL,并將它們存儲到各自的變量中。

接下來,我們使用'get'函數以 JSON 格式提取歷史數據并將其存儲到 'raw_df'變量中。在對原始 JSON 數據進行一些清理和格式化處理之后,我們以一個空的 Pandas DataFrame 的形式返回它。

最后,我們調用 created 函數來拉取亞馬遜從 2021 年初開始的歷史數據,并將其存儲到"amzn"變量中。

OHLC圖

OHLC 圖表是一種條形圖,顯示每個時期的開盤價、最高價、最低價和收盤價。

OHLC 圖表很有用,因為它們顯示了一段時間內的四個主要數據點,許多交易者認為收盤價是最重要的。它也有助于顯示增加或減少的動量。開合相距較遠時表現強勁,開合相近時則表現優柔寡斷或動能弱。

最高價和最低價顯示了該時期的完整價格范圍,有助于評估波動性1[2]。現在要使用 mplfinance 創建一個 OHLC 圖表,只需一行代碼:

mf.plot(amzn.iloc[:-50,:])

在上面的代碼中,我們首先調用該plot函數,并在其中將我們之前提取的 Amazon OHLC 數據切片為最后 50 個讀數,這樣做的目的只是使圖表更清晰,以便元素可見。上面的單行代碼將產生如下所示的輸出:

怎么使用Python代碼創建復雜的財務圖表

OHLC圖表

燭臺圖

交易者使用燭臺圖根據過去的模式確定可能的價格變動。燭臺在交易時很有用,因為它們在交易者指定的整個時間段內顯示四個價格點(開盤價、收盤價、最高價和最低價)。

這種類型的圖表最有趣的部分是它還可以幫助交易者閱讀情緒,這是市場本身的首要驅動因素 2[3]。要使用 mplfinance 生成燭臺圖,我們只需添加另一個參數,即函數的type參數plot并candle在其中提及。代碼如下所示:

mf.plot(amzn.iloc[:-50,:], type = 'candle')

上面的代碼將生成一個如下所示的燭臺圖表:

怎么使用Python代碼創建復雜的財務圖表

燭臺圖

磚形圖

磚形圖( Renko chart)是一種使用價格變動構建的圖表,而不是像大多數圖表那樣同時使用價格和標準化時間間隔。該圖表看起來像一系列磚塊,當價格移動指定的價格金額時會創建一個新磚塊,并且每個塊都與前一個磚塊成 45 度角(向上或向下)。Renko 圖表的主要用途是過濾掉噪音并幫助交易者更清楚地看到趨勢,因為所有小于框大小的運動都被過濾掉 3[4] 。

據我所知,mplfinance 是唯一提供 Renko 圖表的 Python 庫,也是我們接下來要看到的,這就是為什么這個包在金融可視化方面具有強大優勢的原因。現在要創建一個 Renko,我們只需要在函數renko的type參數中指定plot。Renko 圖表的代碼如下所示:

mf.plot(amzn, type = 'renko')

我們還可以向plot函數添加一個額外的參數,該參數是根據renko_params我們的需要和其他類似類型修改磚塊大小的參數,但我更喜歡默認的。上面的代碼生成了一個看起來像這樣的磚形圖:

怎么使用Python代碼創建復雜的財務圖表

磚形圖

點數圖

點數圖,簡稱 P&F 圖,類似于 Renko 圖,它在不考慮時間流逝的情況下繪制資產的價格走勢。與其他一些類型的圖表(例如燭臺)相反,燭臺標志著資產在設定的時間段內的變動程度,而 P&F 圖表使用由堆疊的 X 或 O 組成的列,每個列代表一定數量的價格變動。X 代表價格上漲,而 O 代表價格下跌。當價格反轉反轉量 4[5] 時,會在 O 之后形成新的 X 列或在 X 之后形成新的 O 列。

支持點數圖的函數在其他地方找不到,只能在 mplfinance 庫中找到,而且它還使我們可以通過僅pnf在函數的type參數中指定來創建圖表的過程更容易plot。代碼如下所示:

mf.plot(amzn, type = 'pnf')

怎么使用Python代碼創建復雜的財務圖表

點數圖

添加更多信息

mplfinance 包不僅限于生成不同類型的圖表,還使我們能夠通過添加簡單移動平均線 (SMA) 和交易量等附加指標使這些圖表更具洞察力。對于那些不知道這兩者的人來說,成交量是交易者在特定時間范圍內買賣的股票數量,而簡單移動平均線 (SMA) 只不過是特定時間段的平均價格。它是一種技術指標,廣泛用于創建交易策略。

用 matplotlib 繪制這些數據需要一千年,而 mplfinance 允許我們只用一行代碼就可以完成這項任務。除了type參數之外,我們只需要引入另外兩個參數,一個是mav我們必須指定每個 SMA 的回溯期的參數,另一個是volume我們必須提到的參數,True 如果我們想將成交量圖添加到我們的圖表中,或者False 我們不想。這兩個指標的代碼如下所示:

mf.plot(amzn, mav = (10, 20), type = 'candle', volume = True)

可以通過兩種方式修改和試驗上述代碼。第一種方法顯然是嘗試不同類型的圖表。在上述代碼中,我們提到我們的圖表類型是燭臺,但你可以將其更改為 OHLC、Renko 甚至 P&F 圖表,并觀察每個圖表及其兩個附加指標的外觀。下一個方法是使用mav我們可以添加任意數量的具有不同回顧期的 SMA的參數。上述代碼的輸出如下所示:

怎么使用Python代碼創建復雜的財務圖表

保存圖片

如果你想知道如何保存這些財務可視化中的任何一個,只需添加另一個參數,savefig即你只需提及其文件名的參數,其余部分將被處理。假設你想保存上面的圖,那么你必須遵循的代碼如下所示:

mf.plot(amzn,
mav = (10, 20),
type = 'candle',
volume = True,
savefig = 'amzn.png')

完整代碼

import pandas as pd
import requests
import mplfinance as mf
# Extracting stock data
def get_historical_data(symbol, start_date):
api_key = 'YOUR API KEY'
api_url = f'https://api.twelvedata.com/time_series?symbol={symbol}&interval=1day&outputsize=5000&apikey={api_key}'
raw_df = requests.get(api_url).json()
df = pd.DataFrame(raw_df['values']).iloc[::-1].set_index('datetime').astype(float)
df = df[df.index >= start_date]
df.index = pd.to_datetime(df.index)
return df
amzn = get_historical_data('AMZN', '2021-01-01')
amzn.tail()
# 1. OHLC Chart
mf.plot(amzn.iloc[:-50,:])
# 2. Candlestick Chart
mf.plot(amzn.iloc[:-50,:], type = 'candle')
# 3. Renko Chart
mf.plot(amzn, type = 'renko')
# 4. Point and Figure Chart
mf.plot(amzn, type = 'pnf')
# 5. Technical chart
mf.plot(amzn, mav = (10, 20), type = 'candle', volume = True)
# 6. Plot customization
mf.plot(amzn, mav = (5, 10, 20), type = 'candle',
volume = True, figratio = (10,5),
style = 'binance', title = 'AMZN STOCK PRICE',
tight_layout = True)
# 7. Saving the plot
mf.plot(amzn, mav = (5, 10, 20), type = 'candle',
volume = True, figratio = (10,5),
style = 'binance', title = 'AMZN STOCK PRICE',
tight_layout = True, savefig = 'amzn.png')

以上就是“怎么使用Python代碼創建復雜的財務圖表”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

治多县| 北海市| 华宁县| 礼泉县| 石嘴山市| 都安| 博野县| 昌宁县| 海盐县| 莆田市| 罗源县| 兴安盟| 咸丰县| 邯郸市| 兴山县| 洛浦县| 普洱| 突泉县| 东辽县| 漯河市| 沧州市| 虹口区| 赣州市| 汝州市| 吉安市| 化德县| 稻城县| 黄石市| 根河市| 密云县| 合作市| 大余县| 澳门| 汕头市| 涟水县| 巴林右旗| 彰化市| 松潘县| 瓮安县| 泾源县| 胶南市|