เมธอด .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)

ความคิดเห็น
แสดงความคิดเห็น