LLMによる株価取得プログラムの作成
AIの勉強会のなかで、GPT-4を使える機会があったので、前々から作りたいと思っていた株価を取得してエクセルに保存するプログラムの作成をAIにやらせてみたら、すぐに出来た。
これからのプログラミングはAIが作成し、人間が仕様をチェックすることになるのだろう。
import yfinance as yf
import pandas as pd
from datetime import datetime
from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter
def get_stock_price(ticker):
stock_info = yf.Ticker(ticker)
stock_data = stock_info.history(period="1d")
return stock_data.loc[:, "Close"].values[0]
def write_to_excel(ticker, price, file_name="stock_prices.xlsx"):
try:
wb = load_workbook(file_name)
except FileNotFoundError:
wb = Workbook()
ws = wb.active
ws.append(["Date", "Ticker", "Price"])
wb.save(file_name)
ws = wb.active
new_row = [datetime.today().strftime("%Y-%m-%d"), ticker, price]
ws.append(new_row)
wb.save(file_name)
if __name__ == "__main__":
tickers = input("Enter the ticker symbols separated by commas: ").split(",")
for ticker in tickers:
ticker = ticker.strip() # Remove any leading/trailing spaces
stock_price = get_stock_price(ticker)
print(f"{ticker} stock price today: ${stock_price:.2f}")
write_to_excel(ticker, stock_price)
ちなみに、同じことをchatGPTにやらせたら出来なかった。
上記のプログラムを一度、chatGPTに読ませて、東京市場の株価を読み込めるように修正して、と言ったら修正だけは出来た。
import yfinance as yf
import pandas as pd
from datetime import datetime
from openpyxl import Workbook, load_workbook
from openpyxl.utils import get_column_letter
def get_stock_price(ticker):
ticker = str(ticker) + ".T" # .Tを追加
stock_info = yf.Ticker(ticker)
stock_data = stock_info.history(period="1d")
return stock_data.loc[:, "Close"].values[0]
def write_to_excel(ticker, price, file_name="stock_prices.xlsx"):
try:
wb = load_workbook(file_name)
except FileNotFoundError:
wb = Workbook()
ws = wb.active
ws.append(["Date", "Ticker", "Price"])
wb.save(file_name)
ws = wb.active
new_row = [datetime.today().strftime("%Y-%m-%d"), ticker, price]
ws.append(new_row)
wb.save(file_name)
if __name__ == "__main__":
tickers = input("Enter the ticker symbols separated by commas: ").split(",")
for ticker in tickers:
ticker = ticker.strip() # Remove any leading/trailing spaces
stock_price = get_stock_price(ticker)
print(f"{ticker} stock price today: ¥{stock_price:.2f}")
write_to_excel(ticker, stock_price)