ChatGPT analyzes tweets from Bloomberg and WSJ to generate buy and sell lists, processing an average of 795 tweets per day. Only 7% of the overall news contains company-specific information. The buy/sell lists are generated 30 times repeatedly. After adjusting for market factors, the strategy achieved a monthly return of 0.546%, and when the signals are combined, a monthly return of 3.717% was realized. These returns were primarily generated from short positions in stocks with limited arbitrage opportunities.
Opinion
This study is an intriguing example of applying ChatGPT's news analysis capabilities to the stock market. Notably, its ability to analyze macroeconomic news—beyond just company-specific news—to identify relevant stocks is remarkable. However, the need for repeated generation of signals suggests that a single signal may not be sufficiently reliable. Furthermore, the strategy's strong performance in stocks with limited arbitrage opportunities indicates that it may be more effective in inefficient markets than in efficient ones.
Core Sell Point
ChatGPT can generate profitable trading signals by analyzing Twitter news data, particularly in stocks with limited arbitrage opportunities.
This study uses ChatGPT to develop and evaluate a short-term trading strategy for the stock market. Twitter news data is fed into ChatGPT to generate lists of stocks to buy and sell, and the profitability of the resulting trading strategy is analyzed. The key finding is that ChatGPT can generate profitable short-term trading signals not only by processing company-specific news but also by incorporating macroeconomic news. Moreover, the strategy’s performance is especially pronounced in stocks where arbitrage opportunities are limited, suggesting that ChatGPT can extract pricing distortion signals from text data.
ChatGPT generates buy and sell lists using Twitter news data—specifically, tweets posted by Bloomberg and the Wall Street Journal (now on X).
Data Characteristics:
Twitter data is concise, with tweets limited to 280 characters, typically consisting of 40–70 words.
News Types:
ChatGPT uses a diverse range of news articles that include both company-specific information and macroeconomic news.
Data Volume:
ChatGPT processes an average of 795 tweets per day.
Timing of Information:
ChatGPT uses tweets posted during the 24 hours before the market opens to generate that day’s trading strategy. For example, for a particular day’s day trading strategy, tweets from market open the previous day up until just before the current market open are provided.
Company-Specific News:
Only about 7% of the Twitter news articles used by ChatGPT contain company-specific information. Nonetheless, ChatGPT successfully identifies relevant companies by analyzing news that is not company-specific.
Considerations in ChatGPT’s Sell List Creation:
Sector or Industry-Level Analysis: ChatGPT places greater emphasis on sector or industry-level information rather than on individual company characteristics when selecting stocks to sell. This suggests that ChatGPT tends to include stocks from sectors exhibiting a broad downturn or increased risk factors in its sell lists.
Retail Investor Nighttime Buying Pressure: The sell strategy based on ChatGPT’s sell lists is related to the nighttime buying pressure from retail investors. This buying pressure can lead to a reversal at night, implying that ChatGPT may select stocks that attract significant retail investor attention as sell candidates.
Extraction of Mispricing Signals: ChatGPT extracts mispricing signals from the news data to generate its sell lists. This tendency is particularly strong in stocks where arbitrage is difficult, suggesting that ChatGPT can identify stocks with a higher probability of short-term declines by leveraging market inefficiencies.
News Article Analysis: ChatGPT analyzes a variety of news articles, not limited to company-specific information, to select relevant stocks. This demonstrates that ChatGPT is capable of processing a wide range of text data and generating mispricing signals from news that is not directly related to individual companies. For example, it can analyze negative outlooks on certain industries or deteriorating macroeconomic indicators to include stocks from those sectors in the sell list.
Keyword Analysis: ChatGPT tends to focus on news articles that contain keywords related to regulation, uncertainty, poor performance, and economic concerns. This allows ChatGPT to detect changes in a company’s fundamentals or its external environment and incorporate stocks with negative factors into the sell list.
Specific Methodology for Creating ChatGPT’s Sell List:
Using Twitter News Data: ChatGPT uses news data posted on Twitter by Bloomberg and the Wall Street Journal. The conciseness of Twitter data makes it well-suited for analysis by ChatGPT.
News Article Analysis: ChatGPT analyzes a diverse range of news articles that include both company-specific and macroeconomic news.
Extraction of Mispricing Signals: ChatGPT extracts mispricing-related signals from the news data to generate the sell list, especially for stocks where arbitrage opportunities are limited.
Sector or Industry-Level Analysis: ChatGPT prioritizes sector or industry-level information over individual company characteristics when selecting stocks to sell.
Keyword Analysis: ChatGPT pays attention to news articles containing specific keywords, such as those related to regulatory issues, uncertainty, poor performance, or economic concerns, to build the sell list.
Retail Investor Nighttime Buying Pressure: ChatGPT selects stocks as sell candidates that are subject to nighttime buying pressure from retail investors, which can lead to a reversal in the strategy’s nighttime performance.
Prompt Engineering: Prompts are used to instruct ChatGPT to execute a "news trading" strategy by analyzing news and selecting stocks, as well as to direct it to choose stocks to buy or sell "for profit." This prompts ChatGPT to generate lists aimed at maximizing returns.
Batch Processing of Data: Due to the token limit that ChatGPT can process at one time, the news data is split into multiple batches. For tweets with high token counts, particularly nighttime news, the data is divided into several batches.
Repetitive Execution: ChatGPT is instructed to generate buy and sell stock lists 30 times to reinforce the signal and ensure that the portfolio contains a number of stocks comparable to the decile portfolios commonly discussed in asset pricing literature.
Comprehensive Signal Generation: ChatGPT generates a comprehensive signal by considering both company-specific and non-company-specific news. This means that ChatGPT is capable of processing a wide array of text data and generating mispricing signals even from non-company-specific news.
Process:
Collect Twitter data.
Write and input prompts into ChatGPT.
Divide the news data into batches that conform to the token limit.
Generate the buy and sell lists 30 times based on the data.
Generate sell signals based on the produced lists.
Execute a short-selling strategy.
Portfolio Construction Using ChatGPT Signals:
Generation of BUY and SELL Signals:
Using Twitter News: ChatGPT is instructed to select stocks to buy or sell based on tweets posted by Bloomberg and the Wall Street Journal.
Batch Processing of Data: Tweets are divided into multiple batches due to token limitations.
Strengthening Signal Intensity: Buy and sell lists are generated 30 times for each batch of tweets to strengthen the signals.
Construction of BUY and SELL Portfolios:
Basic Portfolio: Stocks with BUY signals are equally weighted in the BUY portfolio, and those with SELL signals are equally weighted in the SELL portfolio.
SUM_BUY and SUM_SELL Portfolios: These portfolios are constructed using SUM_BUY and SUM_SELL signals, which represent the total count of times a stock is included in the buy or sell lists, respectively.
NET_BUY and NET_SELL Portfolios: NET_BUY and NET_SELL portfolios are constructed by subtracting the SELL signal count from the BUY signal count, indicating the net buy or sell signals.
Long-Short Portfolio Construction:
BMS (BUY minus SELL): A long-short portfolio is created by subtracting the returns of the SELL portfolio from those of the BUY portfolio.
SUM_BMS: Calculated by subtracting the SUM_SELL portfolio’s returns from those of the SUM_BUY portfolio.
NET_BMS: Calculated by subtracting the NET_SELL portfolio’s returns from the NET_BUY portfolio’s returns.
Performance Measurement of the Portfolio:
Intraday (Open-to-Close) Returns: The portfolio is constructed at market open and held until market close to measure intraday returns.
CAPM Alpha: The risk-adjusted returns of the portfolio are measured by calculating the CAPM alpha.
Considerations:
Industry Concentration: Portfolios generated by ChatGPT tend to have low industry concentration.
Economic Interconnectedness: ChatGPT may select stocks that are economically connected through supply chains.
Limits to Arbitrage: ChatGPT signals tend to perform more strongly in stocks where arbitrage opportunities are limited.
The trading strategy based on ChatGPT-generated BUY and SELL lists achieved a monthly return of 0.546% after adjusting for market factors, while combining and reinforcing the buy and sell signals led to a monthly return of 3.717%. These returns were primarily generated from short positions in stocks where arbitrage is limited.
ChatGPT tends to select stocks for selling based on sector or industry-level information rather than individual company characteristics, which helps it identify mispricing in individual stocks.