質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2683閲覧

python oanda API 取得しローソク足にする

globalplus

総合スコア119

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/03/15 09:03

編集2019/03/15 09:35

oanda API 取得しローソク足として表示させたいのですが
Traceback (most recent call last):
File "api.py", line 9, in <module>
import matplotlib.finance as mpf
ModuleNotFoundError: No module named 'matplotlib.finance'
とエラーが出てしまいます。pip install mpl_financeはすでに行いましたのでインストールは済んでいます(pip listの中に表示されているのも確認済みです)
間違っている箇所を教えて頂きたいです。よろしくお願いします。
*matplolibのバージョン3.0.2

python

1from oandapyV20 import API 2import oandapyV20.endpoints.instruments as instruments 3import pandas as pd 4import oandapy 5import pytz 6import datetime 7from datetime import datetime, timedelta 8#matplotlibバージョン3.0.2 9import matplotlib.pyplot as plt 10import matplotlib.finance as mpf 11from matplotlib import ticker 12import matplotlib.dates as mdates 13 14# APIの設定 15accountID = "アカウントID" 16access_token = "アクセスキー" 17api = API(access_token=access_token) 18 19# APIへ接続 20oanda = oandapy.API(environment="practice", access_token=access_token) 21 22# 5分間隔で100データ 23params = { 24 "count": 1000, 25 "granularity": "M5" 26} 27 28# APIへ過去データをリクエスト 29r = instruments.InstrumentsCandles(instrument="USD_JPY", params=params) 30api.request(r) 31 32# 文字列 -> datetime 33def iso_to_jp(iso): 34 date = None 35 try: 36 date = datetime.strptime(iso, '%Y-%m-%dT%H:%M:%S.%fZ') 37 date = pytz.utc.localize(date).astimezone(pytz.timezone("Asia/Tokyo")) 38 except ValueError: 39 try: 40 date = datetime.strptime(iso, '%Y-%m-%dT%H:%M:%S.%f%z') 41 date = date.astimezone(pytz.timezone("Asia/Tokyo")) 42 except ValueError: 43 pass 44 return date 45 46# datetime -> 表示用文字列 47def date_to_str(date): 48 if date is None: 49 return '' 50 return date.strftime('%Y/%m/%d %H:%M:%S') 51 52# ドル円の現在のレートを取得 53res = oanda.get_prices(instruments="USD_JPY") 54 55print(date_to_str(iso_to_jp(res['prices'][0]['time']))) 56 57# 日本時間へ変換 58iso_to_jp(res['prices'][0]['time']) 59 60# dataとしてリストへ変換 61data = [] 62for raw in r.response['candles']: 63 data.append([raw['time'], raw['volume'], raw['mid']['o'], raw['mid']['h'], raw['mid']['l'], raw['mid']['c']]) 64 65# リストからデータフレームへ変換 66df = pd.DataFrame(data) 67df.columns = ['time', 'volume', 'open', 'high', 'low', 'close'] 68df = df.set_index('time') 69 70# date型を綺麗にする 71df.index = pd.to_datetime(df.index) 72print(df.tail()) 73 74 75# ローソク足 76def candlechart(data, width=0.8): 77 fig, ax = plt.subplots() 78 mpf.candlestick2_ohlc(ax, opens=data.o.values, closes=data.c.values, 79 lows=data.l.values, highs=data.h.values, 80 width=width, colorup='r', colordown='b') 81 82 # x軸を時間にする 83 xdate = data.index 84 ax.xaxis.set_major_locator(ticker.MaxNLocator(6)) 85 86 def mydate(x, pos): 87 try: 88 return xdate[int(x)] 89 except IndexError: 90 return '' 91 92 ax.xaxis.set_major_formatter(ticker.FuncFormatter(mydate)) 93 ax.format_xdata = mdates.DateFormatter('%Y-%m-%d') 94 95 96 fig.autofmt_xdate() 97 fig.tight_layout() 98 99 return fig, ax 100 101# ローソク足チャートのプロッティング 102candlechart(df)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryu22e

2019/03/15 09:14

質問文に使っているmatplotlibのバージョンを書いてください。
ryu22e

2019/03/15 09:42

ありがとうございます。hayataka2049さんが書いている回答で解決するはずなので、私の回答は省略します。
guest

回答1

0

ベストアンサー

mpl_financeを導入したのであれば、それをmpfとしてimportしてください。

python

1# import matplotlib.finance as mpf 2import mpl_finance as mpf

This module is deprecated in 2.0 and has been moved to a module called mpl_finance.

finance — Matplotlib 2.1.2 documentation

投稿2019/03/15 09:10

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

globalplus

2019/03/15 19:29

ありがとうございます。このエラーは解決しました。ただまた別のエラーが出てしまいましたので、わからない時また質問させて頂くかもしれません。その時はよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問