Предыдущие статьиhttps://www.fmz.com/digest-topic/10286иhttps://www.fmz.com/digest-topic/10292В статье обсуждалась корреляция между колебаниями цен криптовалют и биткойнов, а также влияние запуска вечных контрактов на цены. В этой статье будет продолжено изучение еще одного важного фактора, влияющего на цены монет - рыночной стоимости. Читатели, знакомые с количественной торговлей, должны знать, что на рынке акций А существует самый эффективный фактор - небольшая рыночная стоимость.
В данном разделе используются те же данные, что и в предыдущих статьях, поэтому мы не будем повторять их здесь.
Низкооцененные валюты обычно относятся к цифровым валютам с более низкими единичными ценами. Эти валюты более привлекательны для небольших инвесторов из-за их низких цен. Большинство людей видят только много нулей в цене, но не заботятся о рыночной стоимости. Каждое сокращение единицы (нуль) означает, что цена умножается на 10, что очень привлекательно для некоторых людей, но это также может сопровождаться более высокой волатильностью цен и риском.
Как обычно, давайте сначала посмотрим на динамику индекса, с двумя бычьими рынками в начале и конце года.Каждую неделю мы выбираем 20 самых низкоценных валют, и результаты очень близки к показателям, указывающим на то, что низкие цены не обеспечивают слишком большой дополнительной доходности.
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
Из-за постоянно меняющегося оборота, расчет рыночной стоимости здесь использует общий объем предложения, с данными, полученными из Coincapmarket. Те, кому это нужно, могут подать заявку на ключ. Было отобрано в общей сложности 1000 валют с самыми высокими рыночными значениями. Из-за методов именования и неизвестных общих поставок мы получили 205 валют, которые перекрываются с вечными контрактами 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 ]
Индекс составляется из 10 криптовалют с самой низкой рыночной стоимостью каждую неделю и сравнивается с общим индексом.
Криптовалюты с небольшой капитализацией часто считаются имеющими более высокий потенциал роста. Поскольку их рыночная стоимость низкая, даже относительно небольшой приток средств может вызвать значительные изменения цен. Этот потенциал высокой доходности привлекает внимание инвесторов и спекулянтов.
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);
Эта статья, посредством анализа данных, обнаружила, что низкооцененные валюты не обеспечивали дополнительной доходности, а их производительность была близка к рыночному индексу. Производительность валют с небольшой рыночной капитализацией значительно превысила общее увеличение индекса. Ниже приведен список контрактных валют с рыночной стоимостью менее 100 миллионов U для справки, хотя в настоящее время мы находимся на бычьем рынке.