วิเคราะห์และเปรียบเทียบตลาดหุ้นด้วย Python

Pakpoom Poom
4 min readOct 30, 2023

--

Stock Market Comparison Analysis using Python เป็นการประเมินและเปรียบเทียบผลการดำเนินงานของหุ้นหลายๆ ตัวหรือเครื่องมือทางการเงินภายในตลาดหุ้น โดยมีเป้าหมายเพื่อให้รู้ว่าราคาหรือผลการดำเนินงานของหุ้นแต่ละตัวเป็นอย่างไร น่าสนใจที่จะลงทุนหรือไม่ เมื่อเทียบกับหุ้นตัวอื่นๆ และดัชนีรวมของตลาดหุ้น

ถ้าคุณพร้อมแล้ว เรามาร่วมหาคำตอบไปพร้อมกันในบทความนี้ …

Stock Market Comparison Analysis

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

ด้านล่างนี้คือขั้นตอนที่เราสามารถทำตามได้ โดยเฉพาะในฐานะผู้เชี่ยวชาญด้านวิทยาศาสตร์ข้อมูล(Data Science):

1.รวบรวมข้อมูลราคาหุ้นย้อนหลังสำหรับบริษัทหรือเครื่องมือทางการเงินที่เราต้องการเปรียบเทียบ

2.ทำความสะอาดข้อมูล เพื่อประมวลผลข้อมูลที่รวบรวมมา

3.สร้างตัวแปรที่เกี่ยวข้องเพื่อช่วยในการเปรียบเทียบ

4.ตรวจสอบให้แน่ใจว่าข้อมูลของหุ้นแต่ละตัวมีการจัดเรียงถูกต้องตามวันเวลา

5.ใช้เทคนิคการแสดงผลข้อมูลเพื่อนำเสนอการเปรียบเทียบ

6.ใช้วิธีการทางสถิติเพื่อระบุรูปแบบหรือความสัมพันธ์ระหว่างหุ้นที่กำลังเปรียบเทียบ

7.เปรียบเทียบผลการดำเนินงานของหุ้นกับดัชนีรวมของตลาดหุ้น เช่น ดัชนีตลาดหุ้น S&P 500

มาถึงตรงนี้ หวังว่าทุกคนน่าจะพอเริ่มเห็นภาพ เริ่มเข้าใจขั้นตอนการวิเคราะห์และเปรียบเทียบตลาดหุ้น สำหรับในส่วนถัดไปนั้น เราจะพาทุกคนไปลงมือวิเคราะห์และเปรียบเทียบตลาดหุ้น โดยการเปรียบเทียบราคาหุ้นของ Apple และ Google โดยใช้ Python

“การวิเคราะห์และเปรียบเทียบตลาดหุ้นด้วย Python”

ผมจะขอเริ่มต้นโดยการรวบรวมข้อมูลราคาหุ้นของ Apple และ Google ในไตรมาสล่าสุด ซึ่งในการรวบรวมข้อมูลนี้ เราจะใช้ API จาก Yahoo Finance ที่สามารถติดตั้ง API นี้ได้โดยการรันคำสั่ง pip ที่ระบุไว้ด้านล่างนี้ใน

  • pip install yfinance

ถัดมาให้เราเริ่มต้นด้วยการนำเข้าไลบรารีของ Python ที่จำเป็นสำหรับงานนี้กัน

import pandas as pd
import yfinance as yf
import plotly.io as pio
import plotly.graph_objects as go
pio.templates.default = "plotly_white"

ถัดมา เราจะมาดูวิธีการรวบรวมข้อมูลราคาหุ้นกัน

# Define the tickers for Apple and Google
apple_ticker = 'AAPL'
google_ticker = 'GOOGL'

# Define the date range for the last quarter
start_date = '2023-07-01'
end_date = '2023-09-30'

# Fetch historical stock price data using yfinance
apple_data = yf.download(apple_ticker, start=start_date, end=end_date)
google_data = yf.download(google_ticker, start=start_date, end=end_date)

code ข้างต้นที่เราเขียนนั้น คือ การวิเคราะห์โดยการกำหนดบริษัท, ช่วงเวลาที่สนใจ และดึงข้อมูลราคาหุ้นย้อนหลังสำหรับ Apple และ Google ในช่วงเวลานั้นๆ โดยข้อมูลที่ได้จะเป็นฐานสำหรับการวิเคราะห์และเปรียบเทียบทางการเงินต่างๆ เช่น การคำนวณผลตอบแทน ความผันผวน และเมตริกอื่นๆ เพื่อประเมินผลการดำเนินงานและความเสี่ยงที่เกี่ยวข้องกับหุ้นเหล่านี้

ถึงตรงนี้แล้ว เรามาเริ่มมาคำนวณหาผลตอบแทนรายวันของ Apple และ Google ในตลาดหุ้นกันต่อเถอะครับ

# Calculate daily returns
apple_data['Daily_Return'] = apple_data['Adj Close'].pct_change()
google_data['Daily_Return'] = google_data['Adj Close'].pct_change()

ถัดมา เราจะมาแสดงผลผลตอบแทนของหุ้นแบบรายวันในรูปแบบกราฟ:

# Create a figure to visualize the daily returns
fig = go.Figure()

fig.add_trace(go.Scatter(x=apple_data.index, y=apple_data['Daily_Return'],
mode='lines', name='Apple', line=dict(color='blue')))
fig.add_trace(go.Scatter(x=google_data.index, y=google_data['Daily_Return'],
mode='lines', name='Google', line=dict(color='green')))

fig.update_layout(title='Daily Returns for Apple and Google (Last Quarter)',
xaxis_title='Date', yaxis_title='Daily Return',
legend=dict(x=0.02, y=0.95))

fig.show()

และเราจะมาวิเคราะห์ผลตอบแทนสะสมของ Apple และ Google ในช่วงไตรมาสล่าสุด:

# Calculate cumulative returns for the last quarter
apple_cumulative_return = (1 + apple_data['Daily_Return']).cumprod() - 1
google_cumulative_return = (1 + google_data['Daily_Return']).cumprod() - 1

# Create a figure to visualize the cumulative returns
fig = go.Figure()

fig.add_trace(go.Scatter(x=apple_cumulative_return.index, y=apple_cumulative_return,
mode='lines', name='Apple', line=dict(color='blue')))
fig.add_trace(go.Scatter(x=google_cumulative_return.index, y=google_cumulative_return,
mode='lines', name='Google', line=dict(color='green')))

fig.update_layout(title='Cumulative Returns for Apple and Google (Last Quarter)',
xaxis_title='Date', yaxis_title='Cumulative Return',
legend=dict(x=0.02, y=0.95))

fig.show()

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

ถัดมาเราจะมาดูเรื่องความผันผวน ของ Apple และ Google กัน:

# Calculate historical volatility (standard deviation of daily returns)
apple_volatility = apple_data['Daily_Return'].std()
google_volatility = google_data['Daily_Return'].std()

# Create a figure to compare volatility
fig1 = go.Figure()
fig1.add_bar(x=['Apple', 'Google'], y=[apple_volatility, google_volatility],
text=[f'{apple_volatility:.4f}', f'{google_volatility:.4f}'],
textposition='auto', marker=dict(color=['blue', 'green']))

fig1.update_layout(title='Volatility Comparison (Last Quarter)',
xaxis_title='Stock', yaxis_title='Volatility (Standard Deviation)',
bargap=0.5)
fig1.show()

เราได้ทำการหาค่าความผันผวนของหุ้น Apple และ Google โดยค่าความผันผวนเป็นการวัดว่าราคาหุ้นมีการเปลี่ยนแปลงมากน้อยเพียงใดในช่วงเวลาหนึ่ง ในกรณีนี้ เราคำนวณส่วนเบี่ยงเบนมาตรฐานของผลตอบแทนรายวันเพื่อวัดความผันผวน จากนั้นเราได้ทำการแสดงผลความผันผวนที่คำนวณได้เพื่อประเมินและเปรียบเทียบความผันผวนหรือความเสี่ยงที่เกี่ยวข้องกับหุ้น Apple และ Google ในช่วงเวลาที่กำหนด จากการวิเคราะห์เราสามารถเห็นได้ว่าความผันผวนของ Google สูงกว่า Apple

แหละนี่ก็หมายความว่าราคาหุ้นของ Google มีการเปลี่ยนแปลงราคาที่มากขึ้นหรือมีความผันผวนราคาที่สูงกว่าในช่วงไตรมาสล่าสุด โดยค่าความผันผวนอาจกำลังบอกเราว่า:

1.หุ้นของ Google ถือว่ามีความเสี่ยงสูงกว่าเมื่อเทียบกับ Apple นักลงทุนโดยทั่วไปมักจะเชื่อมโยงความผันผวนที่สูงกับความเสี่ยงที่สูง เพราะมันบ่งบอกว่าราคาหุ้นสามารถเปลี่ยนแปลงได้อย่างมากในระยะเวลาอันสั้น

2.หุ้นของ Google อาจมีความไวต่อสภาพตลาด ปัจจัยเศรษฐกิจ หรือข่าวและเหตุการณ์ที่เฉพาะเจาะจงต่อบริษัทมากกว่า ความไวที่เพิ่มขึ้นนี้สามารถนำไปสู่การเปลี่ยนแปลงราคาที่มากขึ้น

3.ผู้ค้าและนักลงทุนที่มีความอดทนต่อความเสี่ยงสูงอาจพบว่าหุ้นของ Google น่าสนใจหากพวกเขากำลังมองหาโอกาสในการทำกำไรจากการเคลื่อนไหวราคาในระยะสั้น

ยังไม่หมดเพียงเท่านี้ เราต้องมาเปรียบเทียบราคาหุ้น Google และ Apple กับดัชนีรวมของตลาดหุ้นกัน:

market_data = yf.download('^GSPC', start=start_date, end=end_date)  # S&P 500 index as the market benchmark

# Calculate daily returns for both stocks and the market
apple_data['Daily_Return'] = apple_data['Adj Close'].pct_change()
google_data['Daily_Return'] = google_data['Adj Close'].pct_change()
market_data['Daily_Return'] = market_data['Adj Close'].pct_change()

# Calculate Beta for Apple and Google
cov_apple = apple_data['Daily_Return'].cov(market_data['Daily_Return'])
var_market = market_data['Daily_Return'].var()

beta_apple = cov_apple / var_market

cov_google = google_data['Daily_Return'].cov(market_data['Daily_Return'])
beta_google = cov_google / var_market

# Compare Beta values
if beta_apple > beta_google:
conclusion = "Apple is more volatile (higher Beta) compared to Google."
else:
conclusion = "Google is more volatile (higher Beta) compared to Apple."

# Print the conclusion
print("Beta for Apple:", beta_apple)
print("Beta for Google:", beta_google)
print(conclusion)

ในการวิเคราะห์นี้ เราใช้ค่า Beta เพื่อประเมินความผันผวนของหุ้น Apple และ Google เมื่อเทียบกับตลาดหุ้นโดยรวม โดยใช้ดัชนี S&P 500 เป็นมาตรฐานการเปรียบเทียบ ค่า Beta ที่ได้จะบ่งบอกถึงระดับความไวของหุ้นเมื่อมีการเปลี่ยนแปลงในตลาด

ค่า Beta ของ Apple อยู่ที่ประมาณ 1.2257 ซึ่งหมายความว่าหุ้น Apple มีความผันผวนมากกว่าตลาดโดยรวมประมาณ 22.57% ในทางกลับกัน ค่า Beta ของ Google อยู่ที่ประมาณ 1.5303 ซึ่งสูงกว่า Apple และบ่งบอกว่าหุ้น Google มีความผันผวนมากกว่าตลาดโดยรวมประมาณ 53.03% นั่นหมายความว่า Google มีความเสี่ยงและความไวต่อการเปลี่ยนแปลงของตลาดมากกว่า Apple

ต้องบอกว่า การทราบถึงค่า Beta นี้มีความสำคัญ โดยเฉพาะสำหรับนักลงทุนเนื่องจากมันช่วยให้พวกเขาเข้าใจถึงความเสี่ยงที่อาจเกิดขึ้นกับการลงทุนในหุ้นเหล่านี้ หุ้นที่มีค่า Beta สูงกว่า 1 มีความผันผวนสูงกว่าตลาดโดยรวม ซึ่งอาจนำมาซึ่งโอกาสในการทำกำไรสูง แต่ก็มีความเสี่ยงที่สูงตามไปด้วย

ดังนั้น นักลงทุนจึงควรพิจารณาค่า Beta นี้ร่วมกับปัจจัยอื่นๆ และระดับความเสี่ยงที่สามารถยอมรับได้ก่อนทำการลงทุน เสมือนประโยคที่เรามักได้ยินอยู่บ่อยครั้งว่า “การลงทุนมีความเสี่ยง ผู้ลงทุนควรศึกษาข้อมูลก่อนการตัดสินใจลงทุน”

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

สุดท้ายหวังว่าคุณจะชอบบทความเกี่ยวกับการวิเคราะห์และเปรียบเทียบตลาดหุ้นโดยใช้ Python นี้ หากคุณมีคำถามหรือต้องการข้อมูลเพิ่มเติม อย่าลังเลที่จะถามในส่วนความคิดเห็นด้านล่างนี้ //ขอบคุณครับ

--

--

Pakpoom Poom
Pakpoom Poom

Written by Pakpoom Poom

My journey | Lifelong Learning : Learn – Unlearn – Relearn

No responses yet