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)