Python言語を使って次のプログラムを書いてください。
yahoofinanceからリアルタイムでGBP/JPYのヒストリカルデータを取得してローソク足の5分足で表示する。
このヒストリカルデータを利用してリアルタイムでFFTを行い、ローソク足の5分足表示の下に波形を表示する。
申し訳ありませんが、私はAPIキーなどの機密情報を保持していないため、yahoofinanceからデータを取得することはできません。しかし、プログラムのフレームワークを提供し、取得されたデータをFFTを使用して処理する方法を説明します。
まず、必要なライブラリをインストールします。次のコマンドを使用して、pyplotとyfinanceをインストールします。
pip install matplotlib yfinance
それから、以下のようなPythonスクリプトを作成します。
import yfinance as yf
import numpy as np
from scipy.fft import fft
import matplotlib.pyplot as plt
import mpl_finance as mpf
import datetime as dt
# yahoofinanceからGBP/JPYの過去5日間の1分足のデータを取得する
ticker = yf.Ticker(" GBPJPY=X")
df = ticker.history(period="5d", interval="1m")
# データを5分足に変換する
df_resampled = df.resample("5T").agg({
"Open": "first",
"High": "max",
"Low": "min",
"Close": "last",
"Volume": "sum"
}).dropna()
# ローソク足チャートを描画する
fig, ax = plt.subplots()
mpf.candlestick2_ohlc(ax, df_resampled['Open'], df_resampled['High'], df_resampled['Low'], df_resampled['Close'], width=0.5, colorup='g', colordown='r')
ax.set_title('GBP/JPY 5-minute chart')
# データをFFTにかける
data = df_resampled['Close'].values
data_fft = fft(data)
# FFTの結果を描画する
fig, ax = plt.subplots()
n = len(data_fft)
freq = np.fft.fftfreq(n)
freq_in_hz = abs(freq * 1 / (5 * 60))
ax.plot(freq_in_hz, abs(data_fft))
ax.set_xlabel('Frequency [Hz]')
ax.set_ylabel('Amplitude')
ax.set_title('FFT result of GBP/JPY 5-minute chart')
plt.show()
このスクリプトは、yahoofinanceからGBP/JPYの過去5日間の1分足のデータを取得します。次に、データを5分足に変換してローソク足チャートを描画します。最後に、データをFFTにかけて結果を描画します。 それぞれのグラフは別々のウィンドウで表示されます。
FFTの結果をローソク足チャートの下に描画するには、Matplotlibの
subplot
機能を使用して、2つのグラフを同じウィンドウ内に描画することができます。以下のようにスクリプトを変更して、FFTの結果をローソク足チャートの下に表示することがでバックレましたwww
ついでにBing AIチャットにこのソースコードの間違い探しを依頼したら、
このPythonプログラムは、yfinanceというライブラリを使用して、GBP/JPYの過去5日間の1分足のデータを取得し、5分足に変換してローソク足チャートを描画し、さらにFFT(高速フーリエ変換)を使用してデータを解析するものです。
このプログラムには、特に間違いは見当たりません。ただし、mpl_financeというライブラリは非推奨であり、代わりにmplfinanceというライブラリが推奨されています。そのため、import mpl_finance as mpf
を import mplfinance as mpf
に変更することができます。
だとよ。ホントか?
P.S.
結局、ChatGPTとBing AI-Chatのどちらも間違いだらけでダメ!
自力でエラーとなった部分を直せるスキルのある人向けのChatGPTの使い方と言える。