Tài nguyên đang được tải lên... tải...

Thực hiện chiến lược cân bằng quyền lợi nhiều không gian được sắp xếp một cách có trật tự

Tác giả:Tốt, Tạo: 2019-08-24 10:05:53, Cập nhật: 2024-12-19 00:25:02

img

Trong bài viết trước,https://www.fmz.com/digest-topic/4187Trong bài viết này, chúng tôi giới thiệu các chiến lược giao dịch phối hợp và chứng minh cách sử dụng dữ liệu và phân tích toán học để tạo và tự động hóa các chiến lược giao dịch.

Chiến lược cân bằng đa không gian là sự mở rộng tự nhiên của chiến lược giao dịch ghép nối đối với các chỉ số giao dịch trong một giỏ; nó đặc biệt phù hợp với các thị trường giao dịch đa dạng và liên quan đến nhau, chẳng hạn như thị trường tiền kỹ thuật số và thị trường tương lai hàng hóa.

Nguyên tắc cơ bản

Một chiến lược cân bằng đa không gian là giao dịch nhiều và không gian một giỏ đồng thời. Giống như giao dịch ghép, xác định loại chứng khoán nào giá rẻ và loại chứng khoán nào giá đắt. Khác với đó, một chiến lược cân bằng đa không gian sẽ xếp tất cả các chứng khoán vào một nhóm lựa chọn để xác định loại chứng khoán nào tương đối rẻ hoặc đắt. Sau đó, nó sẽ dựa trên thứ hạng của n chứng khoán trước nhiều đầu tiên, và bằng số tiền tương tự làm trống đáy của n chứng khoán (tổng giá trị của nhiều vị trí = tổng giá trị của vị trí).

Hãy nhớ rằng chúng ta đã nói trước đây rằng giao dịch ghép nối là một chiến lược trung lập thị trường? Chiến lược cân bằng đa không gian cũng vậy, bởi vì tỷ lệ đa đầu và vị trí trống đảm bảo chiến lược sẽ giữ trung lập thị trường ("không bị ảnh hưởng bởi biến động thị trường"). Chiến lược này cũng rất vững chắc về mặt thống kê; bằng cách xếp hạng các chỉ số đầu tư và nắm giữ nhiều vị trí, bạn có thể mở nhiều lần trên mô hình xếp hạng của mình chứ không chỉ là một lần đầu tư rủi ro. Bạn chỉ đơn thuần đặt cược vào chất lượng của chương trình xếp hạng của bạn.

Định vị là gì?

Mô hình xếp hạng là mô hình mà theo đó các ưu tiên được phân bổ cho mỗi chỉ số dựa trên hiệu suất dự kiến. Các yếu tố có thể là các yếu tố giá trị, các chỉ số kỹ thuật, mô hình định giá hoặc sự kết hợp của tất cả các yếu tố trên. Ví dụ, bạn có thể sử dụng các chỉ số động lực để xếp hạng một loạt các chỉ số theo dõi xu hướng: các chỉ số có động lực cao nhất dự kiến sẽ tiếp tục hoạt động tốt và được xếp hạng cao nhất; các khoản đầu tư có động lực thấp nhất sẽ hoạt động tồi tệ nhất và có lợi nhuận thấp nhất.

Sự thành công của chiến lược này nằm gần như hoàn toàn trong các bảng xếp hạng được sử dụng, tức là bảng xếp hạng của bạn có thể tách biệt các chỉ số đầu tư hiệu suất cao và thấp để đạt được lợi nhuận tốt hơn so với các chiến lược của các chỉ số đầu tư nhiều không gian. Do đó, việc xây dựng bảng xếp hạng là rất quan trọng.

Làm thế nào để xây dựng một chương trình xếp hạng?

Một khi chúng ta xác định được các chương trình xếp hạng, chúng ta rõ ràng mong muốn được hưởng lợi từ đó. Chúng ta làm như vậy bằng cách đầu tư cùng một số tiền vào các mục đầu tư xếp hạng cao nhất và không xếp hạng thấp nhất. Điều này đảm bảo chiến lược chỉ kiếm tiền theo tỷ lệ theo chất lượng xếp hạng và sẽ là "thị trường trung lập".

Giả sử bạn đang xếp hạng m trên tất cả các chỉ số đầu tư, có n đô la đầu tư, và muốn nắm giữ tổng số 2p (trong đó m> 2p). Nếu chỉ số xếp hạng 1 được dự đoán sẽ hoạt động tồi tệ nhất, thì chỉ số xếp hạng m được dự đoán sẽ hoạt động tốt nhất:

  • Bạn sắp xếp các chỉ số đầu tư ở các vị trí như: 1,..., p, làm trống 2 / 2p của chỉ số đầu tư

  • Bạn sắp xếp các chỉ số như: m-p,..., m ở vị trí như thế này, làm cho các chỉ số n/2p đô la

** Lưu ý: ** Vì giá của các chỉ số đầu tư gây ra bởi sự nhảy vọt giá sẽ không phải lúc nào cũng phân chia đồng đều n/2p và phải mua một số chỉ số đầu tư nhất định bằng số nguyên, do đó sẽ có một số thuật toán không chính xác, nên thuật toán nên càng gần với con số này càng tốt. Đối với chiến lược chạy n = 100000 và p = 500, chúng ta thấy:

n/2p = 100000/1000 = 100

Điều này gây ra một vấn đề lớn với tỷ lệ giá lớn hơn 100 (ví dụ như thị trường tương lai hàng hóa) vì bạn không thể mở một vị trí với tỷ lệ giá (thị trường tiền kỹ thuật số không có vấn đề). Chúng tôi giảm bớt tình trạng này bằng cách giảm tỷ lệ giá giao dịch hoặc tăng vốn.

Chúng ta hãy xem xét một ví dụ giả định.

  • Xây dựng môi trường nghiên cứu của chúng tôi trên nền tảng định lượng của nhà phát minh

Trước tiên, để công việc diễn ra suôn sẻ, chúng tôi cần xây dựng môi trường nghiên cứu của mình, trong bài viết này chúng tôi sử dụng nền tảng định lượng của nhà phát minh.FMZ.COMCác nhà nghiên cứu đã xây dựng một môi trường nghiên cứu, chủ yếu là để sử dụng nền tảng này một giao diện API dễ dàng và nhanh chóng và gói một hệ thống Docker hoàn hảo.

Trong cái tên chính thức của nền tảng định lượng của nhà phát minh, hệ thống Docker này được gọi là hệ thống quản lý.

Để biết cách triển khai người quản lý và robot, hãy tham khảo bài viết trước của tôi:https://www.fmz.com/bbs-topic/4140

Người đọc muốn mua một nhà quản lý triển khai máy chủ điện toán đám mây của riêng họ có thể tham khảo bài viết này:https://www.fmz.com/bbs-topic/2848

Sau khi triển khai thành công các dịch vụ và hệ thống quản trị đám mây tốt, tiếp theo chúng tôi sẽ cài đặt Python lớn nhất hiện nay: Anaconda.

Để thực hiện tất cả các môi trường ứng dụng liên quan cần thiết cho bài viết này (tài liệu phụ thuộc, quản lý phiên bản, v.v.), cách đơn giản nhất là sử dụng Anaconda. Nó là một hệ sinh thái khoa học dữ liệu Python được đóng gói và quản lý thư viện phụ thuộc.

Để biết cách cài đặt Anaconda, hãy xem hướng dẫn chính thức của Anaconda:https://www.anaconda.com/distribution/

本文还将用到numpy和pandas这两个目前在Python科学计算方面十分流行且重要的库.

Các công việc cơ bản trên cũng có thể tham khảo bài viết trước của tôi về cách thiết lập môi trường Anaconda và hai thư viện numpy và pandas.https://www.fmz.com/digest-topic/4169

Chúng ta tạo ra các chỉ số đầu tư ngẫu nhiên và các yếu tố ngẫu nhiên và xếp hạng chúng. Hãy giả sử rằng lợi nhuận tương lai của chúng ta thực sự phụ thuộc vào các giá trị của các yếu tố này.

import numpy as np
import statsmodels.api as sm
import scipy.stats as stats
import scipy
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
## PROBLEM SETUP ##
# Generate stocks and a random factor value for them
stock_names = ['stock ' + str(x) for x in range(10000)]
current_factor_values = np.random.normal(0, 1, 10000)
# Generate future returns for these are dependent on our factor values
future_returns = current_factor_values + np.random.normal(0, 1, 10000)
# Put both the factor values and returns into one dataframe
data = pd.DataFrame(index = stock_names, columns=['Factor Value','Returns'])
data['Factor Value'] = current_factor_values
data['Returns'] = future_returns
# Take a look
data.head(10)

img

Bây giờ chúng ta đã có giá trị và lợi nhuận yếu tố, chúng ta có thể thấy điều gì sẽ xảy ra nếu chúng ta xếp hạng các chỉ số theo giá trị yếu tố, sau đó mở nhiều và không đầu tư.

# Rank stocks
ranked_data = data.sort_values('Factor Value')
# Compute the returns of each basket with a basket size 500, so total (10000/500) baskets
number_of_baskets = int(10000/500)
basket_returns = np.zeros(number_of_baskets)
for i in range(number_of_baskets):
    start = i * 500
    end = i * 500 + 500 
    basket_returns[i] = ranked_data[start:end]['Returns'].mean()
# Plot the returns of each basket
plt.figure(figsize=(15,7))
plt.bar(range(number_of_baskets), basket_returns)
plt.ylabel('Returns')
plt.xlabel('Basket')
plt.legend(['Returns of Each Basket'])
plt.show()

img

Chiến lược của chúng tôi là làm nhiều thứ nhất trong một bể đầu tư; làm không thứ 10.

basket_returns[number_of_baskets-1] - basket_returns[0]

Kết quả là: 4.172.

Đặt tiền vào mô hình xếp hạng của chúng tôi để phân biệt các nhà đầu tư có hiệu suất cao với các nhà đầu tư có hiệu suất thấp.

Trong phần tiếp theo của bài viết này, chúng ta sẽ thảo luận về cách đánh giá các phương pháp xếp hạng. Lợi ích của việc kiếm tiền dựa trên xếp hạng là nó không bị ảnh hưởng bởi sự hỗn loạn của thị trường mà thay vào đó có thể được sử dụng.

Hãy xem xét một ví dụ trong thế giới thực.

Chúng tôi đã tải dữ liệu cho 32 cổ phiếu trong các ngành khác nhau trong chỉ số S&P 500 và cố gắng xếp hạng chúng.

from backtester.dataSource.yahoo_data_source import YahooStockDataSource
from datetime import datetime
startDateStr = '2010/01/01'
endDateStr = '2017/12/31'
cachedFolderName = '/Users/chandinijain/Auquan/yahooData/'
dataSetId = 'testLongShortTrading'
instrumentIds = ['ABT','AKS','AMGN','AMD','AXP','BK','BSX',
                'CMCSA','CVS','DIS','EA','EOG','GLW','HAL',
                'HD','LOW','KO','LLY','MCD','MET','NEM',
                'PEP','PG','M','SWN','T','TGT',
                'TWX','TXN','USB','VZ','WFC']
ds = YahooStockDataSource(cachedFolderName=cachedFolderName,
                            dataSetId=dataSetId,
                            instrumentIds=instrumentIds,
                            startDateStr=startDateStr,
                            endDateStr=endDateStr,
                            event='history')
price = 'adjClose'

Chúng ta hãy sử dụng các chỉ số động lực tiêu chuẩn trên một chu kỳ thời gian một tháng để xếp hạng.

## Define normalized momentum
def momentum(dataDf, period):
    return dataDf.sub(dataDf.shift(period), fill_value=0) / dataDf.iloc[-1]
## Load relevant prices in a dataframe
data = ds.getBookDataByFeature()[‘Adj Close’]
#Let's load momentum score and returns into separate dataframes
index = data.index
mscores = pd.DataFrame(index=index,columns=assetList)
mscores = momentum(data, 30)
returns = pd.DataFrame(index=index,columns=assetList)
day = 30

Bây giờ chúng ta sẽ phân tích hành vi của cổ phiếu của chúng tôi để xem cổ phiếu của chúng tôi hoạt động như thế nào trên thị trường trong các yếu tố xếp hạng mà chúng tôi chọn.

Phân tích dữ liệu

Hành vi của cổ phiếu

Chúng ta sẽ xem các cổ phiếu trong một giỏ chúng ta chọn hoạt động như thế nào trong mô hình xếp hạng của chúng ta. Để làm điều này, chúng ta hãy tính toán lợi nhuận dài hạn trong một tuần của tất cả các cổ phiếu. Sau đó chúng ta có thể xem mối quan hệ giữa lợi nhuận của mỗi cổ phiếu trong tuần trước với động lực 30 ngày trước đó.

# Calculate Forward returns
forward_return_day = 5
returns = data.shift(-forward_return_day)/data -1
returns.dropna(inplace = True)
# Calculate correlations between momentum and returns
correlations = pd.DataFrame(index = returns.columns, columns = [‘Scores’, ‘pvalues’])
mscores = mscores[mscores.index.isin(returns.index)]
for i in correlations.index:
    score, pvalue = stats.spearmanr(mscores[i], returns[i])
    correlations[‘pvalues’].loc[i] = pvalue
    correlations[‘Scores’].loc[i] = score
correlations.dropna(inplace = True)
correlations.sort_values(‘Scores’, inplace=True)
l = correlations.index.size
plt.figure(figsize=(15,7))
plt.bar(range(1,1+l),correlations[‘Scores’])
plt.xlabel(‘Stocks’)
plt.xlim((1, l+1))
plt.xticks(range(1,1+l), correlations.index)
plt.legend([‘Correlation over All Data’])
plt.ylabel(‘Correlation between %s day Momentum Scores and %s-day forward returns by Stock’%(day,forward_return_day));
plt.show()

img

Tất cả các cổ phiếu của chúng ta đều có một mức độ đồng giá! ((Rõ ràng đó là cách vũ trụ mà chúng ta chọn hoạt động)) Điều này cho chúng ta biết rằng nếu một cổ phiếu xếp hạng cao trong phân tích động lực, chúng ta nên dự đoán nó sẽ không hoạt động tốt vào tuần tới.

Sự tương quan giữa xếp hạng điểm và lợi nhuận trong phân tích động lực

Tiếp theo, chúng ta cần xem mối liên hệ giữa điểm xếp hạng của chúng ta và lợi nhuận về phía trước của thị trường nói chung, đó là, liệu dự đoán về lợi nhuận dự kiến có liên quan đến các yếu tố xếp hạng của chúng ta, liệu mức độ liên quan cao hơn có thể dự đoán lợi nhuận tương đối kém hay không, hoặc ngược lại?

Để làm điều này, chúng tôi tính toán mối tương quan hàng ngày giữa động lực 30 ngày của tất cả các cổ phiếu và lợi nhuận dài hạn 1 tuần.

correl_scores = pd.DataFrame(index = returns.index.intersection(mscores.index), columns = [‘Scores’, ‘pvalues’])
for i in correl_scores.index:
    score, pvalue = stats.spearmanr(mscores.loc[i], returns.loc[i])
    correl_scores[‘pvalues’].loc[i] = pvalue
    correl_scores[‘Scores’].loc[i] = score
correl_scores.dropna(inplace = True)
l = correl_scores.index.size
plt.figure(figsize=(15,7))
plt.bar(range(1,1+l),correl_scores[‘Scores’])
plt.hlines(np.mean(correl_scores[‘Scores’]), 1,l+1, colors=’r’, linestyles=’dashed’)
plt.xlabel(‘Day’)
plt.xlim((1, l+1))
plt.legend([‘Mean Correlation over All Data’, ‘Daily Rank Correlation’])
plt.ylabel(‘Rank correlation between %s day Momentum Scores and %s-day forward returns’%(day,forward_return_day));
plt.show()

img

Sự tương quan hàng ngày diễn ra rất lớn nhưng rất nhẹ (đó là mong đợi, vì chúng tôi đã nói rằng tất cả các cổ phiếu đều có lợi nhuận bằng nhau).

monthly_mean_correl =correl_scores['Scores'].astype(float).resample('M').mean()
plt.figure(figsize=(15,7))
plt.bar(range(1,len(monthly_mean_correl)+1), monthly_mean_correl)
plt.hlines(np.mean(monthly_mean_correl), 1,len(monthly_mean_correl)+1, colors='r', linestyles='dashed')
plt.xlabel('Month')
plt.xlim((1, len(monthly_mean_correl)+1))
plt.legend(['Mean Correlation over All Data', 'Monthly Rank Correlation'])
plt.ylabel('Rank correlation between %s day Momentum Scores and %s-day forward returns'%(day,forward_return_day));
plt.show()

img

Chúng ta có thể thấy sự tương quan trung bình lại là âm một chút, nhưng cũng thay đổi rất nhiều mỗi tháng.

Tỷ lệ lợi nhuận trung bình của một giỏ cổ phiếu

Chúng ta đã tính toán được lợi nhuận của một bể cổ phiếu được loại bỏ khỏi bảng xếp hạng của chúng ta. Nếu chúng ta xếp hạng tất cả các cổ phiếu và chia chúng thành các nhóm n, thì lợi nhuận trung bình của mỗi nhóm là bao nhiêu?

Bước đầu tiên là tạo ra một hàm sẽ cung cấp cho mỗi giỏ một mức trả trung bình và một yếu tố xếp hạng trong một tháng.

def compute_basket_returns(factor, forward_returns, number_of_baskets, index):
data = pd.concat([factor.loc[index],forward_returns.loc[index]], axis=1)
    # Rank the equities on the factor values
    data.columns = ['Factor Value', 'Forward Returns']
    data.sort_values('Factor Value', inplace=True)
    # How many equities per basket
    equities_per_basket = np.floor(len(data.index) / number_of_baskets)
basket_returns = np.zeros(number_of_baskets)
# Compute the returns of each basket
    for i in range(number_of_baskets):
        start = i * equities_per_basket
        if i == number_of_baskets - 1:
            # Handle having a few extra in the last basket when our number of equities doesn't divide well
            end = len(data.index) - 1
        else:
            end = i * equities_per_basket + equities_per_basket
        # Actually compute the mean returns for each basket
        #s = data.index.iloc[start]
        #e = data.index.iloc[end]
        basket_returns[i] = data.iloc[int(start):int(end)]['Forward Returns'].mean()
        
    return basket_returns

Khi xếp hạng cổ phiếu dựa trên điểm số này, chúng ta tính toán lợi nhuận trung bình của mỗi giỏ. Điều này sẽ giúp chúng ta hiểu mối quan hệ của chúng trong một khoảng thời gian dài.

number_of_baskets = 8
mean_basket_returns = np.zeros(number_of_baskets)
resampled_scores = mscores.astype(float).resample('2D').last()
resampled_prices = data.astype(float).resample('2D').last()
resampled_scores.dropna(inplace=True)
resampled_prices.dropna(inplace=True)
forward_returns = resampled_prices.shift(-1)/resampled_prices -1
forward_returns.dropna(inplace = True)
for m in forward_returns.index.intersection(resampled_scores.index):
    basket_returns = compute_basket_returns(resampled_scores, forward_returns, number_of_baskets, m)
    mean_basket_returns += basket_returns
mean_basket_returns /= l    
print(mean_basket_returns)
# Plot the returns of each basket
plt.figure(figsize=(15,7))
plt.bar(range(number_of_baskets), mean_basket_returns)
plt.ylabel('Returns')
plt.xlabel('Basket')
plt.legend(['Returns of Each Basket'])
plt.show()

img

Có vẻ như chúng ta có thể phân biệt những người đạt hiệu suất cao và những người đạt hiệu suất thấp.

Sự nhất quán chênh lệch lợi nhuận

Dĩ nhiên, đây chỉ là những mối quan hệ trung bình. Để hiểu mối quan hệ này phù hợp như thế nào và liệu chúng ta có sẵn sàng giao dịch hay không, chúng ta nên thay đổi cách nhìn và thái độ của mình về nó theo thời gian. Tiếp theo, chúng ta sẽ xem các tỷ lệ lãi suất hàng tháng trong hai năm trước đó. Chúng ta có thể thấy nhiều thay đổi hơn và phân tích thêm để xác định liệu điểm động lực này có thể giao dịch hay không.

total_months = mscores.resample('M').last().index
months_to_plot = 24
monthly_index = total_months[:months_to_plot+1]
mean_basket_returns = np.zeros(number_of_baskets)
strategy_returns = pd.Series(index = monthly_index)
f, axarr = plt.subplots(1+int(monthly_index.size/6), 6,figsize=(18, 15))
for month in range(1, monthly_index.size):
    temp_returns = forward_returns.loc[monthly_index[month-1]:monthly_index[month]]
    temp_scores = resampled_scores.loc[monthly_index[month-1]:monthly_index[month]]
    for m in temp_returns.index.intersection(temp_scores.index):
        basket_returns = compute_basket_returns(temp_scores, temp_returns, number_of_baskets, m)
        mean_basket_returns += basket_returns
    
    strategy_returns[monthly_index[month-1]] = mean_basket_returns[ number_of_baskets-1] - mean_basket_returns[0]
    
    mean_basket_returns /= temp_returns.index.intersection(temp_scores.index).size
    
    r = int(np.floor((month-1) / 6))
    c = (month-1) % 6
    axarr[r, c].bar(range(number_of_baskets), mean_basket_returns)
    axarr[r, c].xaxis.set_visible(False)
    axarr[r, c].set_title('Month ' + str(month))
plt.show()

img

plt.figure(figsize=(15,7))
plt.plot(strategy_returns)
plt.ylabel(‘Returns’)
plt.xlabel(‘Month’)
plt.plot(strategy_returns.cumsum())
plt.legend([‘Monthly Strategy Returns’,’Cumulative Strategy Returns’])
plt.show()

img

Cuối cùng, nếu chúng ta làm thêm giỏ cuối cùng và làm trống giỏ đầu tiên mỗi tháng, thì hãy xem lợi nhuận (giả sử vốn phân phối cho mỗi chứng khoán là bằng nhau)

total_return = strategy_returns.sum()
ann_return = 100*((1 + total_return)**(12.0 /float(strategy_returns.index.size))-1)
print('Annual Returns: %.2f%%'%ann_return)

Tỷ lệ lợi nhuận hàng năm: 5.03%

Chúng tôi thấy rằng chúng tôi có một bảng xếp hạng rất yếu, chỉ phân biệt một cách ôn hòa giữa các cổ phiếu hiệu suất cao và thấp.

Tìm ra bảng xếp hạng chính xác

Để thực hiện chiến lược cân bằng đa không gian, bạn thực sự chỉ cần xác định các giải pháp xếp hạng. Sau đó, mọi thứ đều được làm bằng máy. Một khi bạn có một chiến lược cân bằng đa không gian, bạn có thể trao đổi các yếu tố xếp hạng khác nhau, không cần thay đổi nhiều. Đây là một cách rất tiện lợi để nhanh chóng lặp lại ý tưởng của bạn mà không cần phải lo lắng về việc điều chỉnh toàn bộ mã mỗi lần.

Các chương trình xếp hạng cũng có thể đến từ hầu hết các mô hình. Nó không nhất thiết phải là mô hình nhân tố dựa trên giá trị, nó có thể là một kỹ thuật học máy, có thể dự đoán lợi nhuận một tháng trước và xếp hạng theo thứ hạng đó.

Lựa chọn và đánh giá chương trình xếp hạng

Các bảng xếp hạng là một trong những lợi thế và là một phần quan trọng nhất của chiến lược cân bằng quyền lợi đa không gian. Chọn một bảng xếp hạng tốt là một công việc có hệ thống và không có câu trả lời đơn giản.

Một điểm khởi đầu tốt là chọn các công nghệ hiện có và xem liệu bạn có thể sửa đổi chúng một chút để có lợi nhuận cao hơn.

  • Tự nhân bản và điều chỉnh: Chọn một nội dung thường được thảo luận và xem liệu bạn có thể sửa đổi nó một chút để có được lợi thế. Thông thường, các yếu tố công khai sẽ không còn tín hiệu giao dịch vì chúng đã hoàn toàn được sử dụng trên thị trường. Tuy nhiên, đôi khi chúng sẽ hướng bạn đi đúng hướng.

  • Mô hình định giá: Bất kỳ mô hình nào dự đoán lợi nhuận tương lai có thể là một yếu tố và có tiềm năng được sử dụng để xếp hạng các chỉ số giao dịch trong giỏ của bạn. Bạn có thể sử dụng bất kỳ mô hình định giá phức tạp nào và chuyển đổi nó thành một chương trình xếp hạng.

  • Các yếu tố dựa trên giá cả (đặc biệt là các chỉ số kỹ thuật)Các yếu tố dựa trên giá, như chúng ta đã thảo luận hôm nay, thu thập thông tin về giá lịch sử của mỗi quyền lợi và sử dụng nó để tạo ra giá trị của các yếu tố. Ví dụ có thể là chỉ số trung bình chuyển động, chỉ số động lực hoặc chỉ số tỷ lệ biến động.

  • Quay trở lại và động lựcĐiều đáng chú ý là: một số yếu tố cho rằng giá sẽ tiếp tục tiến về một hướng một khi nó đã tiến về một hướng; một số yếu tố là ngược lại. Cả hai đều là các mô hình hiệu quả về các khoảng thời gian và tài sản khác nhau, và nghiên cứu hành vi cơ bản dựa trên động lực hoặc dựa trên hồi quy là rất quan trọng.

  • Các yếu tố cơ bản (dựa trên giá trị): Đây là sự kết hợp của các giá trị cơ bản, như PE, cổ tức, v.v. Các giá trị cơ bản chứa thông tin liên quan đến các thực tế thực tế của công ty và do đó có thể mạnh hơn giá cả trong nhiều khía cạnh.

Cuối cùng, các yếu tố dự đoán tăng trưởng là một cuộc đua vũ khí, bạn đang cố gắng để giữ một bước đi trước. Các yếu tố sẽ được thu lợi từ thị trường và có tuổi thọ, vì vậy bạn phải làm việc liên tục để xác định các yếu tố của bạn đã trải qua suy thoái bao nhiêu và những yếu tố mới có thể được sử dụng để thay thế chúng.

Các yếu tố khác

  • Tái cân bằng tần số

Mỗi hệ thống xếp hạng sẽ dự đoán lợi nhuận trong một khoảng thời gian khác nhau một chút. Phản hồi trung bình dựa trên giá có thể dự đoán trong vài ngày, trong khi mô hình nhân tố dựa trên giá trị có thể dự đoán trong vài tháng. Xác định khoảng thời gian mô hình nên dự đoán là rất quan trọng, và kiểm chứng thống kê trước khi thực hiện chiến lược. Bạn chắc chắn không muốn quá phù hợp bằng cách cố gắng tối ưu hóa tần suất tái cân bằng, bạn chắc chắn sẽ tìm thấy một tần suất ngẫu nhiên tối ưu hơn tần suất khác.

  • Khả năng vốn và chi phí giao dịch

Mỗi chiến lược đều có khối lượng vốn tối thiểu và tối đa, và ngưỡng tối thiểu thường được quyết định bởi chi phí giao dịch.

Giao dịch quá nhiều cổ phiếu sẽ dẫn đến chi phí giao dịch cao. Giả sử bạn muốn mua 1000 cổ phiếu, thì mỗi lần rebalance sẽ mang lại chi phí vài ngàn đô la. Cơ sở vốn của bạn phải đủ cao để chi phí giao dịch chiếm một phần nhỏ lợi nhuận của chiến lược của bạn. Ví dụ, nếu bạn có vốn 100.000 đô la và chiến lược của bạn kiếm được 1% mỗi tháng (tương đương 1.000 đô la), tất cả những lợi nhuận đó sẽ được chiếm bởi chi phí giao dịch.

Mức thềm tài sản thấp nhất phụ thuộc chủ yếu vào số lượng cổ phiếu được giao dịch. Tuy nhiên, dung lượng tối đa cũng rất cao, và chiến lược cân bằng quyền lợi đa không gian có thể giao dịch hàng trăm triệu đô la mà không mất lợi thế. Điều này là đúng vì chiến lược này tương đối không thường xuyên cân bằng lại. Tổng số tài sản ngoài số lượng cổ phiếu được giao dịch, giá trị đô la của mỗi cổ phiếu sẽ rất thấp, bạn không phải lo lắng khối lượng giao dịch của bạn sẽ ảnh hưởng đến thị trường.


Có liên quan

Thêm nữa