เมธอด .history() คือ "หัวใจสำคัญ" ของไลบรารี yfinance



 เมธอด .history() คือ "หัวใจสำคัญ" ของไลบรารี yfinance 

หน้าที่หลักของมันคือ

การดึง ข้อมูลราคาหุ้นย้อนหลัง จาก Yahoo Finance เก็บไว้ในรูปแบบของ 

Pandas DataFrame เพื่อให้เรานำไปวิเคราะห์ต่อ

1. เลือกช่วงเวลาที่ต้องการ (Period & Dates)

คุณสามารถกำหนดได้ว่าอยากได้ข้อมูลย้อนหลังนานแค่ไหน โดยเลือกได้ 2 แบบ:

Period: ใช้คำสั่งง่ายๆ เช่น 1d, 5d, 1mo, 1y, max (ข้อมูลทั้งหมดเท่าที่มี)

Start/End: ระบุวันที่เจาะจง เช่น start="2023-01-01", end="2023-12-31"


2. ปรับความละเอียดของข้อมูล (Interval)

ไม่ได้มีแค่ราคารายวันนะครับ คุณสามารถเลือกความถี่ของข้อมูลได้หลากหลาย:

ระหว่างวัน (Intraday): 1m, 2m, 5m, 15m, 30m, 60m, 90m

ระยะยาว: 1d, 5d, 1wk, 1mo, 3mo

Interval,Open หมายถึง...,Close หมายถึง...

1d,ราคาเปิดของ วันนั้น,ราคาปิดของ วันนั้น

1wk,ราคาเปิดของ เช้าวันจันทร์,ราคาปิดของ เย็นวันศุกร์

1mo,ราคาเปิดของ วันที่ 1 ของเดือน,ราคาปิดของ วันสิ้นเดือน



3. ข้อมูลที่ได้รับ (Columns)

เมื่อเรียกใช้เมธอดนี้ คุณจะได้ตารางที่มีคอลัมน์มาตรฐานครบถ้วน:

Open / High / Low / Close: ราคาเปิด, สูงสุด, ต่ำสุด และราคาปิด

Volume: ปริมาณการซื้อขาย

Dividends: เงินปันผลที่จ่ายในวันนั้น

Stock Splits: การแตกหุ้น


4. การปรับแต่งค่าอัตโนมัติ (Adjustments)

ฟีเจอร์นี้มีประโยชน์มากสำหรับการทำ Backtesting:

Actions: เลือกว่าจะให้แสดงข้อมูลการจ่ายปันผลและการแตกหุ้นด้วยหรือไม่ (actions=True)

Auto Adjust: ปรับราคา Open, High, Low, Close ให้สะท้อนการแตกหุ้นและปันผลโดยอัตโนมัติ (auto_adjust=True)

เริ่มเขียนโค้ด 

1)python -m venv venv,สร้างสภาพแวดล้อมจำลอง

2) .\venv\Scripts\activate,กระโดดเข้าไปใช้งาน

3)pip install yfinance,ติดตั้ง Library ใน venv

4)pip install pandas

##  Python code ##

import yfinance as ticker

import pandas as pd  # ต้องมีตัวนี้หลังจากติดตั้งเสร็จ


# 1. กำหนดการแสดงผล (มีคอมมา และทศนิยม 2 ตำแหน่ง)

pd.options.display.float_format = '{:,.2f}'.format


# 2. ดึงข้อมูล

msft = ticker.Ticker("BDMS.BK")

hist = msft.history(start="2022-01-01", end="2022-01-15", interval="1d")


# 3. ตัดเวลา Timezone ออกให้เหลือแต่วันที่ (YYYY-MM-DD)

hist.index = hist.index.date


# 4. แสดงผล

print(hist)

ความคิดเห็น