iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0

這邊文章跟上篇息息相關,算是衍伸的文章

情緒指標

最有名的應該就是VIX指數(又稱恐慌指數),是一個反映市場波動性和恐慌程度的指標,通常用於衡量股市風險和不確定性水平。雖然VIX指數本身不能直接用來預測股價,但可以將其與其他分析方法和指標結合使用來進行股價預測。
正所謂別人恐懼我貪婪,有時候市場過度的恐慌可能反而是彎腰撿鑽石的好時機

pip install pandas matplotlib scikit-learn yfinance
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

# 獲取股票數據(這裡以標普500指數為例)
stock_symbol = '^GSPC'
stock_data = yf.download(stock_symbol, start='2020-01-01', end='2023-01-01', progress=False)

# 獲取VIX指數數據
vix_symbol = '^VIX'
vix_data = yf.download(vix_symbol, start='2020-01-01', end='2023-01-01', progress=False)

# 合併股票和VIX數據
data = pd.merge(stock_data['Adj Close'], vix_data['Adj Close'], left_index=True, right_index=True)
data.columns = ['Stock_Price', 'VIX']

# 計算VIX指數的滾動平均
data['VIX_MA'] = data['VIX'].rolling(window=30).mean()

# 創建一個特徵矩陣X和目標向量y
X = data[['VIX_MA']]
y = data['Stock_Price']

# 拆分數據集為訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 創建並訓練線性回歸模型
model = LinearRegression()
model.fit(X_train, y_train)

# 預測股價
y_pred = model.predict(X_test)

# 繪製預測結果
plt.figure(figsize=(10, 6))
plt.scatter(X_test, y_test, color='blue', label='實際股價')
plt.plot(X_test, y_pred, color='red', linewidth=2, label='預測股價')
plt.xlabel('VIX 30日平均')
plt.ylabel('股價')
plt.legend()
plt.title('基於VIX的股價預測')
plt.show()

這段code會下載標普500指數和VIX指數的歷史數據,然後將它們合併在一起。接著,它計算了VIX指數的30日滾動平均,並使用這個平均值作為特徵來訓練一個簡單的線性回歸模型來預測股價。最後,它繪製了實際股價和預測股價之間的比較圖。

情感分析

是一種將自然語言處理技術應用於金融市場的方法,它的主要目標是分析市場參與者的情感和情緒,以了解市場受情感驅使的變化。這在金融市場中具有重要的應用價值,因為情感和情緒可以影響股票、債券、外匯和其他金融資產的價格和波動性。

新聞分析:應用於新聞文章以評估市場參與者對某一事件或消息的情感反應。例如,一篇正面的新聞文章可能會提高對相關股票的信心,而負面的消息可能會引發賣出壓力。

社交媒體監測:監測社交媒體平台上有關金融市場的討論。這可以幫助他們了解公眾對某一特定股票或市場趨勢的情感傾向,並相應調整他們的投資策略。

事件驅動投資:識別市場中的事件和消息,並評估它們對特定資產價格的潛在影響。例如,情感分析可以幫助投資者判斷某一公司的CEO是否發表了令人擔憂的評論,這可能對公司的股票價格產生影響。

風險管理:情感分析還可以用於風險管理,幫助投資者識別潛在的市場情緒變化,並相應調整其投資組合以減少潛在的損失。

示範如何使用情感指標來指導投資決策

選擇情感指標:首先,您需要選擇一個或多個情感指標,這些指標可以是基於新聞文章、社交媒體數據或其他來源的。一些常見的情感指標包括情感詞彙詞典、情感分類模型等。

數據收集:獲取相關數據,包括新聞文章、社交媒體帖子或其他可能包含市場情感信息的數據源。您可以使用Web爬蟲或API來自動收集數據。

情感分析:使用選擇的情感指標對數據進行情感分析。這可以是基於自然語言處理技術的機器學習模型,用於評估每個文本的情感傾向,例如正面、負面或中性。

建立情感指標時間序列:將每個時間點的情感分數記錄下來,以建立情感指標的時間序列。這將幫助您跟蹤情感變化。

分析和制定策略:分析情感指標的變化,並評估它們是否與資產價格的變化相關。根據情感指標的結果,您可以調整投資策略,例如增加或減少特定資產的持倉,或者調整風險管理策略。

from textblob import TextBlob

# 輸入文本
text = "股市今天表現得相當強勁,投資者感到非常樂觀。"

# 創建TextBlob對象
blob = TextBlob(text)

# 分析情感
sentiment_score = blob.sentiment.polarity

# 判斷情感
if sentiment_score > 0:
    sentiment = "正面"
elif sentiment_score < 0:
    sentiment = "負面"
else:
    sentiment = "中性"

# 輸出結果
print(f"情感分數: {sentiment_score}")
print(f"情感: {sentiment}")

這段程式碼將輸出文本的情感分數和情感。情感分數介於-1和1之間,正數表示正面情感,負數表示負面情感,0表示中性情感。

應用範例
社交媒體情感分析可以應用於各種投資決策情境。以下是一些範例:

市場情感監控:定期分析社交媒體以追蹤市場情感。當情感從樂觀轉向悲觀時,可能是出售股票的信號。

事件驅動交易:在重大新聞事件發生時,分析社交媒體情感,以判斷投資者的反應。這可以幫助您在市場波動期間做出更明智的決策。

品牌評估:如果您正在考慮投資某家公司,可以分析社交媒體上有關該公司的評論,以評估公眾對該公司的看法。

總結
社交媒體情感分析是一種有用的工具,可幫助投資者更好地理解市場情感和投資者情緒。Python提供了豐富的庫,使情感分析變得輕鬆且容易實現。

其實這些題材 都跟交易心理學 脫離不了關係,為什麼總是輸? 有時候散戶的心裡早就被大戶猜到了!!
下一篇我們來談談 交易心理學


上一篇
社交媒體分析
下一篇
交易心理學
系列文
嘗試使用Python與Open Data 打造自動化投資30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言