व्यवस्थित रूप से तैनात बहुआयामी संतुलित अधिकार और हित रणनीतियों को लागू करना

लेखक:अच्छाई, बनाया गयाः 2019-08-24 10:05:53, अद्यतनः 2023-10-19 21:06:54

img

पिछले लेख में)))https://www.fmz.com/digest-topic/4187) में, हम एक जोड़ी व्यापार रणनीति पेश करते हैं और यह प्रदर्शित करते हैं कि डेटा और गणितीय विश्लेषण का उपयोग करके व्यापार रणनीतियों को कैसे बनाया और स्वचालित किया जा सकता है।

बहु-अवकाश संतुलन हित रणनीति एक टोकरी ट्रेडिंग सूचकांक के लिए उपयुक्त जोड़े की ट्रेडिंग रणनीति का एक प्राकृतिक विस्तार है। यह विशेष रूप से विभिन्न प्रकार के और परस्पर जुड़े ट्रेडिंग बाजारों जैसे कि डिजिटल मुद्रा बाजार और वस्तु वायदा बाजार के लिए उपयुक्त है।

मूल सिद्धांत

बहुआयामी संतुलन की रणनीति में एक बास्केट ट्रेड के लिए एक ही समय में बहुआयामी और खाली ट्रेड करना शामिल है। यह निर्धारित करता है कि कौन सा निवेशक सस्ता है और कौन सा निवेशक महंगा है। इसके विपरीत, बहुआयामी संतुलन की रणनीति में सभी निवेशकों को एक चयनित पूल में रखा जाता है ताकि यह निर्धारित किया जा सके कि कौन से निवेशक अपेक्षाकृत सस्ते या महंगे हैं। यह तब बहुआयामी अग्रिम n निवेशकों के लिए रैंकिंग के आधार पर होगा और समान राशि के लिए नीचें नीचें n निवेशकों के लिए खाली होगा।

क्या आपको याद है कि हमने पहले कहा था कि जोड़े का व्यापार एक बाजार-तटस्थ रणनीति है? बहु-अवकाश संतुलित हित-हित रणनीति भी ऐसा ही है, क्योंकि बहु-अवकाश और खाली पदों के बराबर की राशि सुनिश्चित करती है कि रणनीति बाजार-तटस्थ (बाजार में उतार-चढ़ाव से मुक्त) रहेगी। यह रणनीति सांख्यिकीय रूप से भी मजबूत है; निवेश के लिए रैंकिंग करके और कई पदों को पकड़कर, आप अपने रैंकिंग मॉडल पर कई बार जोखिम उठा सकते हैं, न कि केवल एक बार जोखिम उठा सकते हैं। आप केवल अपने रैंकिंग कार्यक्रम की गुणवत्ता पर ही दांव लगा रहे हैं।

रैंकिंग क्या है?

रैंकिंग स्कीम एक ऐसा मॉडल है जिसमें प्रत्येक निवेशक को अपेक्षित प्रदर्शन के आधार पर प्राथमिकता दी जा सकती है; इसमें कारक मूल्य कारक, तकनीकी संकेतकों, मूल्य निर्धारण मॉडल या उपरोक्त सभी के संयोजन हो सकते हैं। उदाहरण के लिए, आप गतिशीलता संकेतकों का उपयोग करके रुझानों को ट्रैक करने वाले निवेशकों की एक श्रृंखला को रैंक करने के लिए कर सकते हैंः उच्चतम गतिशीलता वाले निवेशकों को बेहतर प्रदर्शन करना जारी रखने और उच्चतम रैंकिंग प्राप्त करने की उम्मीद है; सबसे कम गतिशीलता वाले निवेशों का सबसे खराब प्रदर्शन और सबसे कम रिटर्न है।

इस रणनीति की सफलता लगभग पूरी तरह से आपके द्वारा उपयोग किए जाने वाले रैंकिंग स्कीम पर निर्भर करती है, यानी आपका रैंकिंग स्कीम उच्च प्रदर्शन वाले निवेशकों को निम्न प्रदर्शन वाले निवेशकों से अलग कर सकता है, ताकि बहु-अवकाश वाले निवेशकों की रणनीतियों के लिए बेहतर रिटर्न प्राप्त हो सके। इसलिए, रैंकिंग स्कीम बनाना महत्वपूर्ण है।

रैंकिंग योजना कैसे बनाई जाती है?

एक बार जब हम रैंकिंग योजना का निर्धारण करते हैं, तो हम स्पष्ट रूप से इससे लाभान्वित होने की उम्मीद करते हैं। हम ऐसा एक ही राशि में निवेश करके करते हैं, जो कि सबसे ऊपर रैंकिंग वाले निवेशकों के लिए है और नीचे रैंकिंग वाले निवेशकों के लिए खाली है। यह सुनिश्चित करता है कि रणनीति केवल रैंकिंग की गुणवत्ता के अनुसार आनुपातिक रूप से पैसा कमाएगी और "बाजार तटस्थ" होगी।

मान लीजिए कि आप सभी निवेशकों के लिए m पर रैंकिंग कर रहे हैं, $n का निवेश कर रहे हैं, और कुल 2p (जिसमें m> 2p) की स्थिति रखना चाहते हैं। यदि रैंकिंग 1 वाले निवेशकों का प्रदर्शन सबसे खराब होने का अनुमान है, तो रैंकिंग m वाले निवेशकों का प्रदर्शन सबसे अच्छा होगाः

  • आप निवेश चिह्नों को क्रमबद्ध करते हैं, जैसे किः 1,..., p, और $ 2 / 2p के लिए एक खाली चिह्न बनाते हैं।

  • आप निवेश के संकेतकों को m-p,...,m जैसे स्थानों पर व्यवस्थित करते हैं, और $n/2p से अधिक के निवेश के संकेत बनाते हैं।

** ध्यान देंः ** चूंकि मूल्य वृद्धि के कारण निवेशकों की कीमतें हमेशा n/2p में समान रूप से विभाजित नहीं होती हैं, और कुछ निवेशकों को पूर्णांक में खरीदा जाना चाहिए, इसलिए कुछ अशुद्ध एल्गोरिदम होंगे, जो इस संख्या के जितना संभव हो उतना करीब होना चाहिए। n = 100000 और p = 500 चलाने की रणनीति के लिए, हम देखते हैंः

n/2p = 100000/1000 = 100

यह 100 से अधिक मूल्य स्कोर के लिए एक बड़ी समस्या है (जैसे कि कमोडिटी वायदा बाजार) क्योंकि आप स्कोर मूल्य के साथ स्थिति नहीं खोल सकते हैं (ऐसा कोई समस्या नहीं है डिजिटल मुद्रा बाजार) । हम स्कोर मूल्य व्यापार को कम करके या पूंजी में वृद्धि करके इस स्थिति को कम करते हैं।

तो चलिए एक उदाहरण देखते हैं।

  • हमारे शोध वातावरण को एक आविष्कारक क्वांटिफाइड प्लेटफॉर्म पर बनाएं

सबसे पहले, काम को सुचारू रूप से करने के लिए, हमें अपने अनुसंधान वातावरण का निर्माण करने की आवश्यकता है, और इस लेख में हम आविष्कारक क्वांटिफाइंग प्लेटफॉर्म का उपयोग करते हैं।FMZ.COM) अनुसंधान वातावरण के निर्माण के लिए, मुख्य रूप से एक सुविधाजनक और तेज़ एपीआई इंटरफ़ेस और एक पूर्ण Docker प्रणाली के बाद के उपयोग के लिए।

आविष्कारकों के लिए क्वांटिफाइड प्लेटफॉर्म के आधिकारिक नाम में, इस डॉकर सिस्टम को होस्टिंग सिस्टम कहा जाता है।

यह एक बहुत ही दिलचस्प और उपयोगी लेख है, लेकिन यह एक बहुत ही दिलचस्प लेख है, और यह एक बहुत ही उपयोगी लेख है।https://www.fmz.com/bbs-topic/4140

जो लोग अपने स्वयं के क्लाउड सर्वर परिनियोजन प्रबंधक खरीदना चाहते हैं, वे इस लेख को देख सकते हैंःhttps://www.fmz.com/bbs-topic/2848

एक बार जब हम एक अच्छी क्लाउड सेवा और व्यवस्थापक प्रणाली को सफलतापूर्वक तैनात कर लेते हैं, तो अब हम पायथन के सबसे बड़े मंदिर को स्थापित करते हैं: एनाकोंडा।

सभी संबंधित प्रोग्रामिंग वातावरणों (निर्भरता पुस्तकालय, संस्करण प्रबंधन, आदि) को लागू करने के लिए सबसे आसान तरीका Anaconda का उपयोग करना है; यह एक पैक किया गया पायथन डेटा विज्ञान पारिस्थितिकी तंत्र और निर्भरता पुस्तकालय प्रबंधक है।

Anaconda को स्थापित करने के तरीके के लिए, कृपया Anaconda के आधिकारिक गाइड देखेंःhttps://www.anaconda.com/distribution/

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

इन मूलभूत कार्यों का संदर्भ मेरे पिछले लेख से लिया जा सकता है, जिसमें मैं Anaconda वातावरण और दो पुस्तकालयों, numpy और pandas को स्थापित करने के बारे में बताया गया था।https://www.fmz.com/digest-topic/4169

हम एक यादृच्छिक निवेश सूचकांक और एक यादृच्छिक कारक उत्पन्न करते हैं और उन्हें क्रमबद्ध करते हैं. चलो मान लें कि हमारे भविष्य के रिटर्न वास्तव में इन कारक मानों पर निर्भर करते हैं.

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

अब जब हमारे पास कारक मूल्य और लाभ है, तो हम देख सकते हैं कि क्या होता है यदि हम निवेशकों को कारक मूल्य के आधार पर रैंक करते हैं, तो ओवरहेड और रिक्त पदों को खोलें।

# 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

हमारी रणनीति एक टोकरी के निवेश के पूल में शीर्ष स्थान पर अधिक करना है; 10 वें स्थान पर शून्य करना है। इस रणनीति का प्रतिफल हैः

basket_returns[number_of_baskets-1] - basket_returns[0]

इसका परिणाम है: 4.172

हमारे रैंकिंग मॉडल पर पैसा डालें ताकि यह कम प्रदर्शन करने वाले निवेशकों से उच्च प्रदर्शन करने वाले निवेशकों को अलग कर सके।

इस लेख के बाद में, हम रैंकिंग योजनाओं का मूल्यांकन करने के तरीके पर चर्चा करेंगे। रैंकिंग पर आधारित लाभ-निर्धारण का लाभ यह है कि यह बाजार की अराजकता से प्रभावित नहीं है, बल्कि इसका उपयोग किया जा सकता है।

हम एक वास्तविक दुनिया के उदाहरण पर विचार करते हैं।

हमने स्टैंडर्ड 500 में विभिन्न उद्योगों के 32 शेयरों के लिए डेटा लोड किया और उन्हें रैंक करने का प्रयास किया।

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'

चलिए एक महीने के समय चक्र के लिए एक मानक गतिशीलता सूचकांक के आधार पर रैंकिंग करते हैं।

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

अब हम अपने शेयरों के व्यवहार का विश्लेषण करेंगे और देखेंगे कि हमारे शेयर बाजार में हमारे चुने हुए रैंकिंग कारकों में कैसे काम करते हैं।

डेटा का विश्लेषण

शेयरों का व्यवहार

हम देखते हैं कि हमारे द्वारा चुने गए बास्केट स्टॉक हमारे रैंकिंग मॉडल में कैसे प्रदर्शन करते हैं. इसके लिए, हम सभी स्टॉक के एक सप्ताह के दीर्घकालिक रिटर्न की गणना करते हैं. और फिर हम प्रत्येक स्टॉक के 1 सप्ताह पहले रिटर्न के साथ पिछले 30 दिनों की गतिशीलता के संबंध को देख सकते हैं. सकारात्मक संबंधित स्टॉक ट्रेंड का पालन करते हैं, नकारात्मक संबंधित स्टॉक औसत रिटर्न करते हैं.

# 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

हमारे सभी शेयरों का कुछ हद तक एक समान रिटर्न होता है! (जाहिर है कि हमारे द्वारा चुने गए ब्रह्मांड का काम करना इस तरह है) यह हमें बताता है कि यदि स्टॉक गतिशीलता विश्लेषण में उच्च रैंक प्राप्त करता है, तो हमें अगले सप्ताह इसके खराब प्रदर्शन की उम्मीद करनी चाहिए।

गतिशीलता विश्लेषण स्कोर रैंकिंग और लाभ के बीच संबंध

अगला, हमें हमारे रैंकिंग स्कोर और समग्र बाजार के आगे की वापसी के बीच संबंध को देखना होगा, यानी क्या अपेक्षित रिटर्न का अनुमान हमारे रैंकिंग कारकों के संबंध में है, क्या उच्च प्रासंगिकता स्तर खराब सापेक्ष रिटर्न का अनुमान लगाते हैं, या इसके विपरीत?

इसके लिए, हमने सभी शेयरों के 30 दिनों के गतिशीलता और एक सप्ताह के दूरस्थ रिटर्न के बीच दैनिक संबंध की गणना की।

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

दैनिक प्रासंगिकता का प्रदर्शन बहुत शोर है, लेकिन बहुत मामूली है (यह अपेक्षित है, क्योंकि हमने कहा कि सभी शेयरों में समान रिटर्न होगा) । हम एक महीने पहले औसत मासिक रिटर्न के लिए प्रासंगिकता को भी देखते हैं ।

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

हम देख सकते हैं कि औसत प्रासंगिकता फिर से थोड़ा नकारात्मक है, लेकिन हर महीने बहुत बदलती है।

एक टोकरी के शेयरों का औसत रिटर्न

हमने अपने रैंकिंग से निकाले गए एक बास्केट स्टॉक के रिटर्न की गणना की है. यदि हम सभी शेयरों को रैंकिंग करते हैं और उन्हें एनएन समूहों में विभाजित करते हैं, तो प्रत्येक समूह का औसत रिटर्न क्या है?

पहला कदम एक फ़ंक्शन बनाना है जो हर महीने दिए गए प्रत्येक टोकरी के लिए औसत रिटर्न और रैंकिंग कारक देगा।

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

जब हम इस स्कोर के आधार पर स्टॉक को रैंक करते हैं, तो हम प्रत्येक टोकरी के औसत रिटर्न की गणना करते हैं। यह हमें लंबे समय तक उनके संबंधों को समझने में मदद करेगा।

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

ऐसा लगता है कि हम उच्च प्रदर्शन करने वालों और निम्न प्रदर्शन करने वालों को अलग कर सकते हैं।

लाभ अंतर (कीफायत)

बेशक, ये केवल औसत संबंध हैं. यह समझने के लिए कि यह संबंध कितना सुसंगत है, और क्या हम व्यापार करने के इच्छुक हैं, हमें समय के साथ इसे देखने के तरीके और दृष्टिकोण को बदलना चाहिए. इसके बाद, हम उनके पहले दो वर्षों के मासिक ब्याज दरों (कीफीन) को देखेंगे. हम अधिक परिवर्तन देख सकते हैं और आगे का विश्लेषण कर सकते हैं कि क्या यह गतिशीलता कारक व्यापार करने योग्य है।

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

अंत में, अगर हम अंतिम टोकरी को जोड़ते हैं और हर महीने पहली टोकरी को खाली करते हैं, तो आइए रिटर्न देखें (यह मान लें कि प्रत्येक प्रति के लिए पूंजी का वितरण समान है)

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)

वार्षिक रिटर्नः 5.03%

हम देखते हैं कि हमारे पास एक बहुत ही कमजोर रैंकिंग स्कीम है जो केवल उच्च प्रदर्शन वाले शेयरों और निम्न प्रदर्शन वाले शेयरों के बीच मामूली अंतर करती है। इसके अलावा, रैंकिंग स्कीम असंगत है और महीने-दर-महीने बहुत बदलती है।

सही रैंकिंग का पता लगाएं

बहुभुज संतुलन नीति को लागू करने के लिए, आपको वास्तव में केवल रैंकिंग योजना निर्धारित करने की आवश्यकता है. इसके बाद सब कुछ यांत्रिक है. एक बार जब आपके पास एक बहुभुज संतुलन नीति है, तो आप विभिन्न रैंकिंग कारकों को बदल सकते हैं, बाकी के लिए बहुत अधिक बदलाव नहीं करते हैं. यह एक बहुत ही सुविधाजनक तरीका है कि आप अपने विचारों को जल्दी से बदल सकते हैं, बिना हर बार सभी कोड को समायोजित करने की चिंता किए बिना।

रैंकिंग स्कीम भी लगभग किसी भी मॉडल से आ सकती है। यह जरूरी नहीं कि मूल्य-आधारित कारक मॉडल हो, यह एक मशीन सीखने की तकनीक हो सकती है जो एक महीने पहले रिटर्न का अनुमान लगा सकती है और उस रैंकिंग के आधार पर रैंक कर सकती है।

रैंकिंग का चयन और मूल्यांकन

रैंकिंग एक बहुआयामी संतुलित हितों की रणनीति का लाभ और सबसे महत्वपूर्ण घटक है। एक अच्छा रैंकिंग चुनना एक प्रणालीगत कार्य है, और कोई सरल उत्तर नहीं है।

एक अच्छा प्रारंभिक बिंदु यह है कि मौजूदा ज्ञात प्रौद्योगिकियों का चयन करें और देखें कि क्या आप उन्हें थोड़ा संशोधित कर सकते हैं ताकि उच्च रिटर्न प्राप्त हो सके। हम यहां कुछ प्रारंभिक बिंदुओं पर चर्चा करेंगेः

  • क्लोन और समायोजन: अक्सर चर्चा की जाने वाली सामग्री चुनें और देखें कि क्या इसे थोड़ा सा संशोधित किया जा सकता है ताकि लाभ प्राप्त हो सके। आमतौर पर, खुले कारकों में कोई ट्रेडिंग सिग्नल नहीं होगा क्योंकि वे पूरी तरह से बाजार से बाहर हो गए हैं। लेकिन कभी-कभी वे आपको सही दिशा में ले जाते हैं।

  • मूल्य निर्धारण मॉडल: कोई भी मॉडल जो भविष्य के रिटर्न का अनुमान लगाता है वह एक कारक हो सकता है और आपके एक टोकरी के व्यापार संकेतकों के लिए रैंकिंग के लिए संभावित रूप से उपयोग किया जा सकता है। आप किसी भी जटिल मूल्य निर्धारण मॉडल को ले सकते हैं और इसे रैंकिंग योजना में बदल सकते हैं।

  • मूल्य आधारित कारक (तकनीकी संकेतक): मूल्य आधारित कारक, जैसे कि हम आज चर्चा कर रहे हैं, प्रत्येक हित के ऐतिहासिक मूल्य के बारे में जानकारी प्राप्त करते हैं और इसका उपयोग कारक मूल्य उत्पन्न करने के लिए करते हैं। उदाहरण चलती औसत, गतिशीलता या अस्थिरता सूचकांक हो सकते हैं।

  • वापसी और गतिशीलतायह ध्यान देने योग्य है कि कुछ कारक मानते हैं कि कीमतें एक बार एक दिशा में चलती हैं और ऐसा करना जारी रखती हैं; कुछ कारक बिल्कुल विपरीत हैं; दोनों अलग-अलग समय सीमाओं और परिसंपत्तियों के बारे में प्रभावी मॉडल हैं, और यह महत्वपूर्ण है कि मौलिक व्यवहार को गति या प्रतिगमन पर आधारित किया जाए।

  • मूलभूत कारक (मूल्य आधारित): यह मूल मूल्य के संयोजन का उपयोग करता है, जैसे कि पीई, लाभांश आदि. मूल मूल्य में कंपनी के वास्तविक दुनिया के तथ्यों से संबंधित जानकारी होती है और इसलिए कई मायनों में कीमत से अधिक शक्तिशाली हो सकती है.

अंत में, विकास के पूर्वानुमान कारक एक हथियारों की दौड़ है, और आप एक कदम आगे रहने की कोशिश कर रहे हैं। कारक बाजार से बाहर हो जाते हैं और जीवनकाल के साथ आते हैं, इसलिए आपको यह निर्धारित करने के लिए लगातार काम करना होगा कि आपके कारक ने कितना गिरावट देखी है और कौन से नए कारक उन्हें बदलने के लिए उपयोग किए जा सकते हैं।

अन्य विचार

  • आवृत्ति को फिर से संतुलित करें

प्रत्येक रैंकिंग सिस्टम थोड़ा अलग समय सीमा पर रिटर्न का अनुमान लगाता है; मूल्य-आधारित औसत मूल्य प्रतिफल कुछ दिनों में अनुमानित हो सकता है, जबकि मूल्य-आधारित कारक मॉडल कुछ महीनों में अनुमानित हो सकते हैं; यह निर्धारित करना महत्वपूर्ण है कि मॉडल को किस समय सीमा पर भविष्यवाणी करनी चाहिए, और रणनीति निष्पादित करने से पहले सांख्यिकीय सत्यापन करना। आप निश्चित रूप से पुनः संतुलन की आवृत्ति को अनुकूलित करने का प्रयास करके अत्यधिक फिट नहीं होना चाहते हैं, और आप अनिवार्य रूप से अन्य आवृत्तियों पर एक बेतरतीब विकल्प पाएंगे। एक बार रैंकिंग कार्यक्रम के भविष्यवाणियों का समय सीमा निर्धारित हो जाने के बाद, अपने मॉडल का अधिकतम लाभ उठाने के लिए लगभग उस आवृत्ति पर पुनः संतुलन करने का प्रयास करें।

  • पूंजी क्षमता और लेनदेन लागत

प्रत्येक रणनीति में न्यूनतम और अधिकतम पूंजी मात्रा होती है, और न्यूनतम सीमा आमतौर पर लेनदेन लागत द्वारा निर्धारित की जाती है।

बहुत अधिक शेयरों का लेन-देन करने से उच्च लेन-देन की लागत होती है। मान लीजिए कि आप 1000 शेयर खरीदना चाहते हैं, तो प्रत्येक पुनर्वित्त के लिए कुछ हज़ार डॉलर की लागत होगी। आपका पूंजीगत आधार इतना ऊंचा होना चाहिए कि लेन-देन की लागत आपकी रणनीति द्वारा उत्पन्न रिटर्न का एक छोटा सा हिस्सा हो। उदाहरण के लिए, यदि आपकी पूंजी $100,000 है और आपकी रणनीति प्रति माह 1% कमा रही है ((1000 डॉलर), तो ये सभी रिटर्न लेन-देन की लागत में शामिल होंगे। आपको लाखों डॉलर की पूंजी के साथ उस रणनीति को चलाने की आवश्यकता है जो 1000 से अधिक शेयरों का लाभ उठाती है।

सबसे कम परिसंपत्ति सीमा, जो मुख्य रूप से कारोबार किए जाने वाले शेयरों की संख्या पर निर्भर करती है। हालांकि, अधिकतम क्षमता भी बहुत अधिक है, और बहु-अवकाश संतुलन हित रणनीति सौ करोड़ डॉलर का व्यापार करने में सक्षम है और बिना नुकसान के लाभ खो देती है। यह सच है, क्योंकि यह रणनीति अपेक्षाकृत बार-बार rebalance करती है। कुल परिसंपत्ति की संख्या, व्यापार किए जाने वाले शेयरों की संख्या के अलावा, प्रति शेयर का डॉलर मूल्य बहुत कम होगा, और आपको चिंता करने की ज़रूरत नहीं है कि आपकी ट्रेडिंग मात्रा बाजार को प्रभावित करेगी। मान लीजिए कि आप 1000 शेयरों का व्यापार करते हैं, जो कि $ 100,000,000 है। यदि आप प्रति माह पूरे पोर्टफोलियो को rebalance करते हैं, तो प्रति शेयर प्रति माह केवल $ 100,000 होगा, जो अधिकांश ट्रेडों के लिए महत्वपूर्ण बाजार हिस्सेदारी के लिए पर्याप्त नहीं है।


संबंधित

अधिक