สร้าง Normal Distribution ผลตอบแทน S&P500 ด้วย Python

Investic
investic
Published in
Jul 18, 2022

ก่อนอื่นต้องรู้ว่า Normal Distribution คือการกระจายโอกาสความน่าจะเป็นแบบสมมาตร โดยมีกึ่งกลางคือค่าเฉลี่ย ยิ่งข้อมูลใกล้ค่าเฉลี่ย ยิ่งมีจำนวนมาก และค่อยๆลดลง เมื่อออกห่างจากค่าเฉลี่ย

ซึ่งการสร้าง Normal Distribution จะมีส่วนประกอบสำคัญคือ mean และ std

mean คือค่าเฉลี่ยของข้อมูลที่เราต้องการจะนำเสนอเช่น return ส่วน

std คือตัววัดข้อมูลการกระจายตัวรอบค่าเฉลี่ยที่เกิดขึ้นของข้อมูลชุดนั้นๆ

สำหรับใครที่อยากรู้รายละเอียดเรื่อง Normal Distribution อย่างละเอียดตามอ่านได้ที่โพสนี้

https://medium.com/investic/normal-distribution-กับ-ตลาดหุ้น-392e43a8c623

เรามาลองสร้าง Normal Distribution ของ Return ใน S&P500 กันดีกว่า การสร้างนั้นไม่ยากเพราะเราจะใช้ matplotlib ที่เราคุ้นเคย

import yfinanceimport matplotlib.pyplot as pltimport pandas as pd

Part ต่อมาคือการดึงข้อมูล โดยเราจะใช้ข้อมูลจาก Yahoo Finance ซึ่งในส่วนนี้เราสามารถใช้แหล่งข้อมูลจากที่อื่นได้

spy = yf.download(‘SPY’, start=’2019–01–01', end=’2022–01–01')

หลังจากที่ได้ข้อมูลมาแล้ว ลองเช็คข้อมูลกันหน่อยว่ามีข้อมูลอะไรบ้าง

ข้อมูลที่มีก็ open, high, low, close, adj close และ volume

ต่อมาจะเป็นการสร้างคำนวณ Return เพื่อนำไปต่อยอดการทำ Normal Distribution กัน

การคำนวณ Return ก็ไม่ยุ่งยาก แค่ .pct_change()

spy['Return'] = spy.Close.pct_change()

ส่วนสุดท้ายคือการ Plot Normal Distribution เราจะใช้คำสั่ง .plot.hist() โดยตัวแปรที่จะใส่ก็คือแกน Y (Return) ที่เหลือก็จะเป็น bins (ขนาดของแท่ง Histogram) และ alpha (ความโปร่ง-ทึบของแท่ง Histogram) และ Figsize เพื่อกำหนดขนาดจของรูป

spy.plot.hist(y=[‘Return’], figsize=(15,10) ,bins=50, alpha=0.5)

เท่านี้เราก็จะได้ Distribution มาแล้ว ซึ่งจะเห็นว่าบนโลกการลงทุนหรือโลกของข้อมูลจริงๆมัน Normal Distribution แบบกลางเป๊ะๆหรอก เพราะข้อมูลยังไงมันก็จะต้องเบนไปทางใดสักทางนึงขึ้นอยู่กับจำนวนข้อมูลและเหตุการณ์ช่วงนั้น

และการที่จะนำข้อมูลเหล่านี้ไปใช้งานได้อย่างถูกต้องจำเป็นต้องใช้ การเรียนรู้ที่ถูกต้องด้วย

Quantitative for Investing 101 เรียนรู้การเป็น Quant ที่ถูกต้อง พร้อมการนำข้อมูลไปหากำไรในตลาดได้อย่างถูกวิธี โดยเนื้อหานี้ไม่จำเป็นต้องเขียน Python ก็เรียนได้ สนใจอ่านรายละเอียดเพิ่มเติมได้ที่ : https://bottomliner.co/investic-quantitative-investing/

Investic

--

--