目次
はじめに
パッケージのインポート
ストック データの抽出
Python 実装
OHLC チャート
ローソク足チャート
砖形图
点数图
添加更多信息
保存图片
写在最后
完整代码
ホームページ バックエンド開発 Python チュートリアル Python コードを使用して複雑な財務チャートを作成するにはどうすればよいですか?

Python コードを使用して複雑な財務チャートを作成するにはどうすればよいですか?

Apr 24, 2023 pm 06:28 PM
python 視覚化 コード

Python コードを使用して複雑な財務チャートを作成するにはどうすればよいですか?

はじめに

金融に適用されるプログラミングとテクノロジーの急増は避けられず、成長が衰えることはないようです。応用プログラミングの最も興味深い部分の 1 つは、過去またはリアルタイムの株式データの解釈と視覚化です。

Python で一般的なデータを視覚化するには、matplotlib、seaborn などのモジュールが活躍しますが、財務データの視覚化に関しては、インタラクティブなビジュアルを提供する Plotly が最初の選択肢になります。組み込み関数。ここで、mplfinance ライブラリ matplotlib の兄弟ライブラリにすぎない縁の下の力持ちを紹介したいと思います。

matplotlib パッケージがいかに多用途で、あらゆる種類のデータを簡単にプロットできることは誰もが知っています。ローソク足のような金融チャートも matplotlib パッケージを使用して描画できますが、最初から開始する必要があります。

最近、高度な財務視覚化の作成専用の mplfinance という別のモジュールがあることを知りました。この記事では、この Python ライブラリを詳しく見て、さまざまなタイプのグラフを生成するその機能を探っていきます。

パッケージのインポート

必要なパッケージを Python 環境にインポートすることは重要な手順です。この記事では、データ フレームを処理するパンダ、API を呼び出して株価データを抽出するリクエスト、財務チャートを作成する mplfinance の 3 つのパッケージが必要です。これらのパッケージをまだインストールしていない方は、次のコードをターミナルにコピーしてください:

pip install pandas
pip install requests
pip install mplfinance
ログイン後にコピー

パッケージのインストールが完了したら、パッケージを Python 環境にインポートします。

import pandas as pd
import requests
import mplfinance as mf
ログイン後にコピー

ストック データの抽出

これで、必要なパッケージがすべてインポートされました。 12data.com[1] が提供する API エンドポイントを使用して、Amazon の過去の株価データを取得してみましょう。それまでは、12data.com に関するメモ: 12data は、あらゆる種類の市場データに対応する多数の API エンドポイントを備えた、主要な市場データ プロバイダーの 1 つです。 Twelve Data が提供する API の操作は非常に簡単で、これまでで最高のドキュメントの 1 つが提供されています。また、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 コードを使用して複雑な財務チャートを作成するにはどうすればよいですか?

コードの説明

最初に行うことは、株式銘柄 ('symbol') と履歴データの開始日 ('start_date') をパラメーターとして受け取る 'get_historyal_data' という関数を定義することです。

関数内で API キーと URL を定義し、それぞれの変数に格納します。

次に、「get」関数を使用して履歴データを JSON 形式で抽出し、「raw_df」変数に保存します。生の JSON データのクリーニングとフォーマットを行った後、それを空の Pandas DataFrame として返します。

最後に、作成した関数を呼び出して、2021 年の初めから始まる Amazon の履歴データを取得し、「amzn」変数に保存します。

OHLC チャート

OHLC チャートは、各期間の始値、高値、安値、終値を示す棒グラフです。

OHLC チャートは、一定期間にわたる 4 つの主要なデータ ポイントを表示するため便利であり、多くのトレーダーは終値が最も重要であると考えています。また、勢いの増加または減少を示すのにも役立ちます。オープニングとクロージングが離れている場合はパフォーマンスが強く、オープニングとクロージングが近い場合はパフォーマンスが優柔不断または弱いと言えます。

高値と安値は期間の全価格帯を示し、ボラティリティの評価に役立ちます1[2]。 mplfinance を使用して OHLC チャートを作成するには、1 行のコードを実行するだけです。

mf.plot(amzn.iloc[:-50,:])
ログイン後にコピー

上記のコードでは、最初にプロット関数を呼び出し、その中で Amazon OHLC を抽出します。データは最後の 50 件の測定値にスライスされます。これの目的は、要素が見えるようにチャートを明確にすることだけです。上記の 1 行のコードにより、次のような出力が生成されます。

Python コードを使用して複雑な財務チャートを作成するにはどうすればよいですか?

OHLC チャート

ローソク足チャート

トレーダーはローソク足チャートを使用します。過去に基づいてパターンが起こり得る価格変動を決定します。ローソク足は、トレーダーが指定した期間を通じて 4 つの価格ポイント (始値、終値、高値、安値) を表示するため、取引に役立ちます。

このタイプのチャートの最も興味深い点は、トレーダーが市場自体の主な要因であるセンチメントを読み取るのにも役立つことです2[3]。 mplfinance を使用してローソク足チャートを生成するには、別のパラメーターを追加するだけです。関数の型パラメーター プロットには、ローソク足が記述されています。コードは次のようになります:

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')
ログイン後にコピー

这就是你为保存精彩的财务可视化所需要做的全部工作。很容易,对吧?

写在最后

在我看来,与Plotly或Altair等库相比,mplfinance是绘制金融数据最强大的库。本文只是简单介绍了使用mplfinance可以实现的功能,但是这个了不起的库附带了许多新特性。它允许我们添加自定义的技术指标数据,并与实际的图表一起绘制,我们可以自定义整个模板,甚至图表中的每一个元素,添加趋势线,等等。

这个库最好的部分是它的易用性,并帮助我们用一行代码生成高级的财务可视化。虽然像Plotly这样的包有创建这些图表的内置函数,但不可能在一行代码中完成。

mplfinance现在唯一的缺点是它糟糕的文档,这使得人们甚至不知道这个包是关于什么的。文档是一个至关重要的方面,当涉及到开源项目时,文档应该被认为是至关重要的。特别像mplfinance这样的关键和有用的项目必须有清晰文档,对其提供的工具和功能有明确的解释。

到这里,你看完了这篇文章。如果你忘记了图表的代码,不要担心,最后我提供了完整的源代码。你也可以收藏本文,等需要用到的时候再查看。

完整代码

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 コードを使用して複雑な財務チャートを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

インストール後にMySQLの使用方法 インストール後にMySQLの使用方法 Apr 08, 2025 am 11:48 AM

この記事では、MySQLデータベースの操作を紹介します。まず、MySQLWorkBenchやコマンドラインクライアントなど、MySQLクライアントをインストールする必要があります。 1. mysql-uroot-pコマンドを使用してサーバーに接続し、ルートアカウントパスワードでログインします。 2。CreatedAtaBaseを使用してデータベースを作成し、データベースを選択します。 3. createTableを使用してテーブルを作成し、フィールドとデータ型を定義します。 4. INSERTINTOを使用してデータを挿入し、データをクエリし、更新することでデータを更新し、削除してデータを削除します。これらの手順を習得することによってのみ、一般的な問題に対処することを学び、データベースのパフォーマンスを最適化することでMySQLを効率的に使用できます。

PSフェザーリングは、遷移の柔らかさをどのように制御しますか? PSフェザーリングは、遷移の柔らかさをどのように制御しますか? Apr 06, 2025 pm 07:33 PM

羽毛の鍵は、その漸進的な性質を理解することです。 PS自体は、勾配曲線を直接制御するオプションを提供しませんが、複数の羽毛、マッチングマスク、および細かい選択により、半径と勾配の柔らかさを柔軟に調整して、自然な遷移効果を実現できます。

mysqlは支払う必要がありますか mysqlは支払う必要がありますか Apr 08, 2025 pm 05:36 PM

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

PSフェザーリングをセットアップする方法は? PSフェザーリングをセットアップする方法は? Apr 06, 2025 pm 07:36 PM

PSフェザーリングは、イメージエッジブラー効果であり、エッジエリアのピクセルの加重平均によって達成されます。羽の半径を設定すると、ぼやけの程度を制御でき、値が大きいほどぼやけます。半径の柔軟な調整は、画像とニーズに応じて効果を最適化できます。たとえば、キャラクターの写真を処理する際に詳細を維持するためにより小さな半径を使用し、より大きな半径を使用してアートを処理するときにかすんだ感覚を作成します。ただし、半径が大きすぎるとエッジの詳細を簡単に失う可能性があり、効果が小さすぎると明らかになりません。羽毛効果は画像解像度の影響を受け、画像の理解と効果の把握に従って調整する必要があります。

MySQLインストール後にデータベースのパフォーマンスを最適化する方法 MySQLインストール後にデータベースのパフォーマンスを最適化する方法 Apr 08, 2025 am 11:36 AM

MySQLパフォーマンスの最適化は、インストール構成、インデックス作成、クエリの最適化、監視、チューニングの3つの側面から開始する必要があります。 1。インストール後、INNODB_BUFFER_POOL_SIZEパラメーターやclose query_cache_sizeなど、サーバーの構成に従ってmy.cnfファイルを調整する必要があります。 2。過度のインデックスを回避するための適切なインデックスを作成し、説明コマンドを使用して実行計画を分析するなど、クエリステートメントを最適化します。 3. MySQL独自の監視ツール(ShowProcessList、ShowStatus)を使用して、データベースの健康を監視し、定期的にデータベースをバックアップして整理します。これらの手順を継続的に最適化することによってのみ、MySQLデータベースのパフォーマンスを改善できます。

PS Featheringは画質にどのような影響を与えますか? PS Featheringは画質にどのような影響を与えますか? Apr 06, 2025 pm 07:21 PM

PSフェザーリングは、画像の詳細の喪失、色の飽和の減少、およびノイズの増加につながる可能性があります。影響を減らすために、小さな羽の半径を使用し、レイヤーをコピーしてから羽毛をコピーし、羽毛の前後に画質を慎重に比較することをお勧めします。さらに、フェザーリングはすべてのケースに適しておらず、マスクなどのツールが画像エッジの処理に適している場合があります。

高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? 高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? Apr 08, 2025 pm 06:03 PM

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

MongoDBデータベースパスワードを表示するNAVICATの方法 MongoDBデータベースパスワードを表示するNAVICATの方法 Apr 08, 2025 pm 09:39 PM

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

See all articles