0
fokus pada
78
Pengikut

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Dicipta dalam: 2019-08-24 10:05:53, dikemas kini pada: 2024-12-19 00:25:02
comments   0
hits   2265

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Dalam artikel sebelumnya (https://www.fmz.com/digest-topic/4187), kami memperkenalkan strategi dagangan berpasangan dan menunjukkan cara menggunakan data dan analisis matematik untuk mencipta dan mengautomasikan strategi dagangan.

Strategi ekuiti seimbang jangka pendek ialah lanjutan semula jadi bagi strategi dagangan pasangan yang digunakan pada sekumpulan sasaran dagangan. Ia amat sesuai untuk pasaran dagangan dengan pelbagai jenis dan perkaitan, seperti pasaran mata wang digital dan pasaran hadapan komoditi.

Prinsip asas

Strategi ekuiti seimbang jangka pendek adalah untuk pergi panjang dan pendek pada sekumpulan sasaran dagangan pada masa yang sama. Sama seperti perdagangan pasangan, tentukan sasaran pelaburan mana yang murah dan yang mana yang mahal Perbezaannya ialah strategi ekuiti seimbang jangka pendek akan meletakkan semua sasaran pelaburan dalam kumpulan pemilihan saham untuk menentukan sasaran pelaburan yang agak murah. Ia kemudiannya akan pergi panjang pada pelaburan atas n berdasarkan kedudukan, dan pendek pada pelaburan n bawah dengan jumlah yang sama (jumlah nilai kedudukan panjang = jumlah nilai kedudukan pendek).

Ingat sebelum ini apabila kita berkata bahawa perdagangan pasangan adalah strategi neutral pasaran? Perkara yang sama berlaku untuk strategi ekuiti seimbang jangka pendek, kerana jumlah kedudukan panjang dan pendek yang sama memastikan bahawa strategi akan kekal neutral pasaran (tidak terjejas oleh turun naik pasaran). Strategi ini juga teguh dari segi statistik; dengan meletakkan kedudukan pelaburan dan mengambil berbilang kedudukan, anda boleh mendedahkan model kedudukan anda kepada berbilang pendedahan, dan bukannya pendedahan risiko sekali sahaja. Apa yang anda pertaruhkan ialah kualiti skim ranking anda.

Apakah skim kedudukan?

Skim ranking ialah model yang memberikan keutamaan kepada setiap sasaran pelaburan berdasarkan prestasi yang dijangkakan. Faktor tersebut boleh menjadi faktor nilai, penunjuk teknikal, model harga atau gabungan semua perkara di atas. Sebagai contoh, anda boleh menggunakan metrik momentum untuk meletakkan senarai pelaburan mengikut arah aliran: pelaburan dengan momentum tertinggi dijangka akan terus berprestasi baik dan menerima kedudukan tertinggi pelaburan dengan momentum paling rendah akan berprestasi paling teruk dan mempunyai pulangan yang paling rendah.

Kejayaan strategi ini bergantung hampir sepenuhnya pada skim ranking yang digunakan, iaitu skim ranking anda mampu memisahkan pelaburan berprestasi tinggi daripada pelaburan berprestasi rendah, lebih merealisasikan pulangan strategi sasaran pelaburan jangka pendek. Oleh itu, adalah sangat penting untuk membangunkan skim kedudukan.

Bagaimana untuk merangka pelan kedudukan?

Sebaik sahaja kami mempunyai skim kedudukan, kami jelas mahu mendapat keuntungan daripadanya. Kami melakukan ini dengan melabur jumlah wang yang sama untuk mendapatkan pelaburan peringkat atas dan pendek pelaburan peringkat bawah. Ini memastikan bahawa strategi hanya akan memperoleh wang mengikut kadar kualiti kedudukannya dan akan menjadi “neutral pasaran”.

Katakan anda meletakkan kedudukan semua pelaburan m, mempunyai n dolar untuk dilaburkan, dan ingin memegang sejumlah 2p (di mana m>2p) jawatan. Jika pelaburan dengan kedudukan 1 dijangka menunjukkan prestasi yang paling teruk, maka pelaburan dengan pangkat m dijangka menunjukkan prestasi terbaik:

  • Anda menyusun sasaran pelaburan seperti berikut: 1, …, p dan sasaran pelaburan USD 2/2p pendek

  • Anda menyusun sasaran pelaburan sebagai: m-p,……,m, dan pergi panjang pada n/2p dolar sasaran pelaburan

Notis:Memandangkan harga sasaran akibat lonjakan harga tidak akan sentiasa membahagikan n/2p sama rata, dan beberapa sasaran mesti dibeli dalam integer, akan terdapat beberapa algoritma yang tidak tepat dan algoritma harus sehampir mungkin dengan nombor ini. Untuk strategi yang dijalankan dengan n = 100000 dan p = 500, kita lihat:

n/2p = 1000001000 = 100

Ini boleh menyebabkan masalah besar untuk harga dengan pecahan lebih besar daripada 100 (seperti pasaran hadapan komoditi), kerana anda tidak boleh membuka kedudukan dengan harga pecahan (masalah ini tidak wujud dalam pasaran mata wang kripto). Kami mengurangkan ini dengan mengurangkan perdagangan harga pecahan atau meningkatkan modal.

Mari kita lihat contoh hipotesis.

  • Membina persekitaran penyelidikan kami pada Platform Kuantitatif Pencipta

Pertama sekali, untuk berfungsi dengan lancar, kami perlu membina persekitaran penyelidikan kami Dalam artikel ini, kami menggunakan Platform Kuantitatif Inventor (FMZ.COM) untuk membina persekitaran penyelidikan, terutamanya supaya kami boleh menggunakan API yang mudah dan pantas. antara muka dan enkapsulasi platform ini kemudiannya.

Atas nama rasmi Platform Kuantitatif Inventor, sistem Docker ini dipanggil sistem hos.

Untuk mendapatkan maklumat lanjut tentang cara menggunakan hos dan robot, sila rujuk artikel saya sebelum ini: https://www.fmz.com/bbs-topic/4140

Pembaca yang ingin membeli hos penggunaan pelayan pengkomputeran awan mereka sendiri boleh merujuk artikel ini: https://www.fmz.com/bbs-topic/2848

Selepas berjaya menggunakan perkhidmatan pengkomputeran awan dan sistem hos, kami akan memasang alat Python yang paling berkuasa: Anaconda

Untuk mencapai semua persekitaran program yang berkaitan yang diperlukan untuk artikel ini (pustaka bergantung, pengurusan versi, dll.), cara paling mudah ialah menggunakan Anaconda. Ia adalah ekosistem sains data Python yang dibungkus dan pengurus pergantungan.

Untuk kaedah pemasangan Anaconda, sila rujuk panduan rasmi Anaconda: https://www.anaconda.com/distribution/

Artikel ini juga akan menggunakan numpy dan panda, dua perpustakaan yang sangat popular dan penting dalam pengkomputeran saintifik Python.

Untuk kerja asas di atas, anda juga boleh merujuk artikel saya sebelum ini, yang memperkenalkan cara menyediakan persekitaran Anaconda dan dua perpustakaan numpy dan panda Untuk butiran, sila lihat: https://www.fmz.com/digest-. topik/4169

Kami menjana pelaburan rawak dan faktor rawak dan meletakkan kedudukannya. Mari kita anggap bahawa pulangan masa depan kita sebenarnya bergantung pada nilai faktor ini.

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)

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Sekarang kita mempunyai nilai faktor dan pulangan, kita boleh melihat apa yang berlaku jika kita meletakkan kedudukan pelaburan berdasarkan nilai faktor dan kemudian membuka kedudukan beli dan pendek.

# 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()

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Strategi kami adalah untuk pergi jauh pada pelaburan peringkat pertama dalam sekumpulan sasaran pelaburan dan pendek pada sasaran pelaburan peringkat kesepuluh. Ganjaran strategi ini ialah:

basket_returns[number_of_baskets-1] - basket_returns[0]

Hasilnya ialah: 4.172

Letakkan wang anda pada model kedudukan kami untuk memisahkan pelaburan berprestasi tinggi daripada pelaburan berprestasi rendah.

Dalam baki artikel ini, kita membincangkan cara menilai skim kedudukan. Manfaat menjana wang daripada arbitraj berasaskan kedudukan ialah ia tidak terjejas oleh gangguan pasaran, sebaliknya boleh memanfaatkannya.

Mari kita pertimbangkan contoh dunia sebenar.

Kami memuatkan data untuk 32 saham daripada sektor berbeza dalam S&P 500 dan cuba meletakkan kedudukannya.

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'

Mari gunakan penunjuk momentum ternormal dalam tempoh sebulan sebagai asas untuk kedudukan

## 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

Sekarang kami akan menganalisis tingkah laku saham kami dan melihat prestasi saham kami di pasaran dalam faktor kedudukan yang kami pilih.

Menganalisis data

Gelagat Saham

Mari kita lihat prestasi bakul saham pilihan kami dalam model kedudukan kami. Untuk melakukan ini, mari kita mengira pulangan hadapan satu minggu untuk semua saham. Kami kemudiannya boleh melihat korelasi setiap pulangan hadapan 1 minggu saham dengan momentum 30 hari sebelumnya. Saham yang menunjukkan korelasi positif adalah mengikut arah aliran, dan saham yang menunjukkan korelasi negatif adalah berbalik semula.

# 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()

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Semua stok kami bermakna kembali ke tahap tertentu! (Nampaknya alam semesta pilihan kita berfungsi dengan cara ini) Ini memberitahu kita bahawa jika saham mempunyai kedudukan tinggi pada analisis momentum, kita harus menjangkakan ia akan berprestasi rendah minggu depan.

Korelasi antara Kedudukan Skor Momentum dan Pulangan

Seterusnya, kita perlu melihat korelasi antara skor kedudukan kami dan pulangan hadapan keseluruhan pasaran, iaitu, hubungan antara ramalan pulangan yang dijangka dan faktor kedudukan kami Bolehkah tahap korelasi yang lebih tinggi meramalkan pulangan Relatif yang lebih lemah, atau sebaliknya?

Untuk melakukan ini, kami mengira korelasi harian antara momentum 30 hari dan pulangan hadapan 1 minggu untuk semua saham.

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()

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Korelasi harian agak bising, tetapi sangat sedikit (yang dijangka kerana kami berkata semua saham akan bermakna kembali). Kami juga melihat pada korelasi purata bulanan pulangan hadapan 1 bulan.

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()

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Kita dapat melihat bahawa korelasi purata sekali lagi sedikit negatif, tetapi juga berbeza dari bulan ke bulan.

Purata pulangan bakul stok

Kami telah mengira pulangan untuk sekumpulan saham yang diambil dari ranking kami. Jika kita meletakkan kedudukan semua saham dan kemudian membahagikannya kepada n kumpulan, berapakah purata pulangan setiap kumpulan?

Langkah pertama adalah untuk mencipta fungsi yang akan memberikan pulangan purata dan faktor kedudukan untuk setiap bakul yang diberikan setiap bulan.

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

Kami mengira pulangan purata untuk setiap bakul apabila meletakkan kedudukan saham berdasarkan skor ini. Ini sepatutnya memberi kita gambaran yang baik tentang hubungan mereka dalam jangka masa yang panjang.

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()

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Nampaknya kita mampu memisahkan yang berprestasi tinggi dengan yang berprestasi rendah.

Sebarkan (asas) konsistensi

Sudah tentu, ini hanyalah perhubungan biasa. Untuk memahami sejauh mana perhubungan itu konsisten dan sama ada kita bersedia untuk membuat perjanjian, kita harus mengubah pendekatan dan sikap kita terhadapnya dari semasa ke semasa. Seterusnya, kita akan melihat spread (asas) bulanan mereka untuk dua tahun sebelumnya. Kita boleh melihat lebih banyak perubahan dan melakukan analisis lanjut untuk menentukan sama ada skor momentum ini boleh didagangkan.

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()

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

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()

Mencapai susunan strategi ekuiti seimbang panjang dan pendek yang teratur

Akhir sekali, mari kita lihat pulangan jika kita panjang bakul terakhir dan pendek bakul pertama setiap bulan (dengan mengandaikan peruntukan modal yang sama untuk setiap sekuriti)

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)

Pulangan tahunan: 5.03%

Kami melihat bahawa kami mempunyai skim kedudukan yang sangat lemah yang hanya membezakan saham berprestasi tinggi daripada saham berprestasi rendah. Tambahan pula, tiada ketekalan dalam skim penarafan ini dan ia berbeza secara meluas dari bulan ke bulan.

Mencari skim kedudukan yang betul

Untuk melaksanakan strategi ekuiti seimbang jangka pendek, anda hanya perlu menentukan skema kedudukan. Segala-galanya selepas itu adalah mekanikal. Sebaik sahaja anda mempunyai strategi ekuiti seimbang jangka pendek, anda boleh menukar faktor kedudukan yang berbeza tanpa mengubah banyak perkara lain. Ini adalah cara yang sangat mudah untuk mengulang idea anda dengan cepat tanpa perlu risau tentang mengubah keseluruhan kod setiap kali.

Skim ranking juga boleh datang dari hampir mana-mana model. Ia tidak semestinya model faktor berasaskan nilai, ia boleh menjadi teknik pembelajaran mesin yang meramalkan pulangan sebulan lebih awal dan menyusunnya berdasarkan itu.

Pemilihan dan penilaian skim kedudukan

Skim kedudukan adalah kelebihan strategi ekuiti seimbang jangka pendek dan juga merupakan komponen yang paling penting. Memilih skema kedudukan yang baik adalah projek yang sistematik dan tidak ada jawapan yang mudah.

Titik permulaan yang baik ialah memilih teknologi sedia ada yang diketahui dan lihat jika anda boleh mengubah suainya sedikit untuk mendapatkan pulangan yang lebih tinggi. Kami akan membincangkan beberapa titik permulaan di sini:

  • Klon dan laraskan: Pilih sesuatu yang sering dibincangkan dan lihat jika anda boleh mengubah suainya sedikit untuk kelebihan anda. Biasanya, faktor awam tidak lagi mempunyai isyarat dagangan kerana ia telah ditimbangtarakan sepenuhnya daripada pasaran. Walau bagaimanapun, kadangkala mereka boleh mengarahkan anda ke arah yang betul.

  • Model Harga: Mana-mana model yang meramalkan pulangan masa hadapan mungkin menjadi faktor dan berpotensi untuk digunakan untuk meletakkan kedudukan bakul sasaran dagangan anda. Anda boleh mengambil mana-mana model penentuan harga yang kompleks dan menukarnya kepada skim kedudukan.

  • Faktor berasaskan harga (penunjuk teknikal): Faktor berasaskan harga, seperti yang telah kita bincangkan hari ini, ambil maklumat tentang harga sejarah setiap ekuiti dan gunakannya untuk menjana nilai faktor. Contohnya mungkin penunjuk purata bergerak, penunjuk momentum atau petunjuk turun naik.

  • Regresi dan Momentum: Perlu diingat bahawa beberapa faktor percaya bahawa apabila harga bergerak ke satu arah, mereka akan terus berbuat demikian. Beberapa faktor adalah sebaliknya. Kedua-duanya adalah model yang sah pada rangka masa dan aset yang berbeza, dan adalah penting untuk mengkaji sama ada gelagat asas adalah berdasarkan momentum atau regresi.

  • Faktor Asas (Berasaskan Nilai): Ini menggunakan gabungan nilai asas seperti PE, dividen dll. Nilai asas mengandungi maklumat yang berkaitan dengan fakta dunia sebenar tentang syarikat dan oleh itu boleh menjadi lebih berkuasa daripada harga dalam banyak cara.

Akhirnya, membangunkan peramal ialah perlumbaan senjata di mana anda cuba untuk kekal selangkah ke hadapan. Faktor ditimbangtarakan di luar pasaran dan mempunyai jangka hayat, jadi anda mesti terus melakukan kerja untuk menentukan berapa banyak kerosakan yang dialami oleh faktor anda dan apakah faktor baharu yang boleh digunakan untuk menggantikannya.

Pertimbangan lain

  • Mengimbangi kekerapan

Setiap sistem ranking meramalkan pulangan dalam tempoh masa yang sedikit berbeza. Purata pulangan berdasarkan harga mungkin bersifat ramalan selama beberapa hari, manakala model faktor berasaskan nilai mungkin ramalan selama beberapa bulan. Adalah sangat penting untuk menentukan ufuk masa yang model harus meramal dan mengesahkannya secara statistik sebelum melaksanakan strategi. Anda pastinya tidak mahu terlalu cergas dengan cuba mengoptimumkan kekerapan pengimbangan semula anda, anda pasti akan menemui satu yang secara rawak mengatasi prestasi yang lain Sebaik sahaja anda telah menentukan ufuk masa yang diramalkan oleh skim kedudukan anda, cuba mengimbangi semula pada kira-kira kekerapan itu untuk mendapatkannya. manfaatkan model Anda sepenuhnya.

  • Kapasiti Modal dan Kos Transaksi

Setiap strategi mempunyai keperluan modal minimum dan maksimum, dengan ambang minimum biasanya ditentukan oleh kos transaksi.

Berdagang terlalu banyak saham akan mengakibatkan kos transaksi yang tinggi. Dengan mengandaikan anda ingin membeli 1,000 saham, setiap pengimbangan semula akan menanggung kos beberapa ribu dolar. Asas modal anda mestilah cukup tinggi sehingga kos transaksi menyumbang sebahagian kecil daripada pulangan yang dijana oleh strategi anda. Contohnya, jika modal anda ialah \(100,000 dan strategi anda memperoleh 1% (\)1000) sebulan, semua pulangan itu akan dimakan oleh kos transaksi. Anda memerlukan modal berjuta-juta dolar untuk menjalankan strategi ini untuk mendapat keuntungan lebih daripada 1,000 saham.

Ambang aset minimum bergantung terutamanya pada bilangan saham yang didagangkan. Walau bagaimanapun, kapasiti maksimum juga sangat tinggi, dan strategi ekuiti seimbang jangka pendek mampu berdagang ratusan juta dolar tanpa kehilangan kelebihannya. Ini adalah benar kerana strategi diimbangi semula agak jarang Jumlah jumlah aset dibahagikan dengan bilangan saham yang didagangkan akan memberikan nilai dolar yang sangat rendah sesaham, dan anda tidak perlu risau tentang volum dagangan anda yang menggerakkan pasaran. Katakan anda berdagang 1,000 saham, itu \(100,000,000. Jika anda mengimbangi semula keseluruhan portfolio anda setiap bulan, anda hanya akan berdagang \)100,000 sebulan setiap saham, yang tidak mencukupi untuk menjadi bahagian pasaran yang ketara bagi kebanyakan sekuriti.