Les articles précédentshttps://www.fmz.com/digest-topic/10286ethttps://www.fmz.com/digest-topic/10292L'article a discuté de la corrélation entre les fluctuations des prix des crypto-monnaies et du Bitcoin, ainsi que de l'impact du lancement de contrats perpétuels sur les prix. Cet article continuera à explorer un autre facteur important affectant les prix des pièces - la valeur marchande. Les lecteurs familiarisés avec le trading quantitatif devraient savoir qu'il existe un facteur le plus efficace sur le marché des actions A - la petite valeur marchande.
Cette section utilise les mêmes données que les quelques articles précédents, elle ne sera donc pas répétée ici.
Les devises à bas prix sont généralement des devises numériques à prix unitaires plus bas. Ces devises sont plus attrayantes pour les petits investisseurs en raison de leurs prix bas. La plupart des gens ne voient que de nombreux zéros dans le prix mais ne se soucient pas beaucoup de la valeur marchande.
Comme à l'accoutumée, examinons d'abord la performance de l'indice, avec deux marchés haussiers au début et à la fin de l'année.
h = 1
lower_index = 1
lower_index_list = [1]
lower_symbols = df_close.iloc[0].dropna().sort_values()[:20].index
lower_prices = df_close.iloc[0][lower_symbols]
date_list = [df_close.index[0]]
for row in df_close.iterrows():
if h % 42 == 0:
date_list.append(row[0])
lower_index = lower_index * (row[1][lower_symbols] / lower_prices).mean()
lower_index_list.append(lower_index)
lower_symbols = row[1].dropna().sort_values()[:20].index
lower_prices = row[1][lower_symbols]
h += 1
pd.DataFrame(data=lower_index_list,index=date_list).plot(figsize=(12,5),grid=True);
total_index.plot(figsize=(12,5),grid=True); #overall index
En raison de la circulation en constante évolution, le calcul de la valeur marchande ici utilise le volume total de l'offre, avec des données provenant de Coincapmarket. Ceux qui en ont besoin peuvent demander une clé. Un total de 1000 devises avec les valeurs de marché les plus élevées ont été sélectionnées. En raison des méthodes de dénomination et des approvisionnements totaux inconnus, nous avons obtenu 205 devises qui se chevauchent avec les contrats perpétuels Binance.
import requests
def get_latest_crypto_listings(api_key):
url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?limit=1000"
headers = {
'Accepts': 'application/json',
'X-CMC_PRO_API_KEY': api_key,
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}"
# Use your API key
api_key = "xxx"
coin_data = get_latest_crypto_listings(api_key)
supplys = {d['symbol']: d['total_supply'] for d in coin_data['data']}
include_symbols = [s for s in list(df_close.columns) if s in supplys and supplys[s] > 0 ]
Un indice est tiré des 10 crypto-monnaies dont la valeur de marché est la plus basse chaque semaine, et comparé à l'indice global. On peut voir que les crypto-monnaies à petite capitalisation se sont comportées légèrement mieux que l'indice global sur le marché haussier au début de l'année. Cependant, elles ont commencé à augmenter plus tôt pendant le mouvement latéral de septembre-octobre, et leur augmentation finale a largement dépassé celle de l'indice total.
Les crypto-monnaies à petite capitalisation sont souvent considérées comme ayant un potentiel de croissance plus élevé. Parce que leurs valeurs de marché sont faibles, même des entrées de fonds relativement faibles peuvent provoquer des changements de prix importants. Ce potentiel de rendement élevé attire l'attention des investisseurs et des spéculateurs.
df_close_include = df_close[include_symbols]
df_norm = df_close_include/df_close_include.fillna(method='bfill').iloc[0] #Normalization
total_index = df_norm.mean(axis=1)
h = 1
N = 10
lower_index = 1
lower_index_list = [1]
lower_symbols = df_close_include.iloc[0].dropna().multiply(pd.Series(supplys)[include_symbols], fill_value=np.nan).sort_values()[:N].index
lower_prices = df_close_include.iloc[0][lower_symbols]
date_list = [df_close_include.index[0]]
for row in df_close_include.iterrows():
if h % 42 == 0:
date_list.append(row[0])
lower_index = lower_index * (row[1][lower_symbols] / lower_prices).mean()
lower_index_list.append(lower_index)
lower_symbols = row[1].dropna().multiply(pd.Series(supplys)[include_symbols], fill_value=np.nan).sort_values()[:N].index
lower_prices = row[1][lower_symbols]
h += 1
pd.DataFrame(data=lower_index_list,index=date_list).plot(figsize=(12,5),grid=True);
total_index.plot(figsize=(12,5),grid=True);
Cet article, par l'analyse des données, a révélé que les devises à bas prix n'offraient pas de rendements supplémentaires et que leur performance était proche de l'indice de marché.