بٹ کوائن کی قیمت کے بارے میں کیا خیال ہے؟ ڈیجیٹل کرنسی کی قیمت میں اضافے اور کمی کی وجوہات کیا ہیں؟ کیا مختلف الٹکوئنز کی مارکیٹ کی قیمتیں آپس میں جڑی ہوئی ہیں یا بڑی حد تک آزاد ہیں؟ ہم آگے کیا ہوگا اس کی پیش گوئی کیسے کرسکتے ہیں؟
بٹ کوائن اور ایتھریم جیسی ڈیجیٹل کرنسیوں کے بارے میں مضامین اب قیاس آرائیوں سے بھرے ہوئے ہیں۔ سینکڑوں خود ساختہ ماہرین اس رجحان کی وکالت کر رہے ہیں جس کی وہ توقع کرتے ہیں۔ ان میں سے بہت سے تجزیوں میں بنیادی اعداد و شمار اور شماریاتی ماڈلز کی ٹھوس بنیاد کا فقدان ہے۔
اس مضمون کا مقصد پیتھون کا استعمال کرتے ہوئے ڈیجیٹل کرنسی تجزیہ کا ایک مختصر تعارف فراہم کرنا ہے۔ ہم مختلف ڈیجیٹل کرنسیوں کے ڈیٹا کو بازیافت ، تجزیہ اور تصور کرنے کے لئے ایک سادہ پیتھون اسکرپٹ کا استعمال کریں گے۔ اس عمل میں ، ہمیں ان اتار چڑھاؤ کے مارکیٹ کے رویے اور ان کے ترقی کے بارے میں دلچسپ رجحانات ملیں گے۔
یہ ڈیجیٹل کرنسی کی وضاحت کرنے والا مضمون نہیں ہے ، اور نہ ہی یہ اس بارے میں کوئی رائے ہے کہ کون سی مخصوص کرنسیاں بڑھیں گی اور کون سی کم ہوں گی۔ اس کے برعکس ، اس ٹیوٹوریل میں ہم جس چیز پر توجہ مرکوز کرتے ہیں وہ اصل اعداد و شمار حاصل کرنا اور اعداد و شمار میں چھپی ہوئی کہانی تلاش کرنا ہے۔
یہ ٹیوٹوریل تمام مہارت کی سطح پر شائقین ، انجینئرز اور ڈیٹا سائنسدانوں کے لئے ہے۔ چاہے آپ صنعت کے رہنما ہوں یا پروگرامنگ کے ابتدائی ، آپ کو صرف ایک ہی مہارت کی ضرورت ہے جو پائیتھون پروگرامنگ زبان کی بنیادی تفہیم اور کمانڈ لائن آپریشنز کا کافی علم ہے (ڈیٹا سائنس پروجیکٹ ترتیب دینے کے قابل ہونا کافی ہے) ۔
مذکورہ بالا تمام خصوصیات کو ڈوکر جیسے نظام میں شامل کیا گیا ہے۔ ہمیں اپنی کلاؤڈ کمپیوٹنگ خدمات خریدنے یا لیز پر لینے اور ڈوکر سسٹم کو تعینات کرنے کی ضرورت ہے۔
ایف ایم زیڈ کوانٹ پلیٹ فارم کے سرکاری نام میں ، اس ڈوکر سسٹم کو ڈوکر سسٹم کہا جاتا ہے۔
براہ کرم میرے پچھلے مضمون کا حوالہ دیں کہ ڈوکر اور روبوٹ کو کیسے تعینات کیا جائے:https://www.fmz.com/bbs-topic/9864.
قارئین جو اپنے ڈاکرز کو تعینات کرنے کے لئے اپنا کلاؤڈ کمپیوٹنگ سرور خریدنا چاہتے ہیں وہ اس مضمون کا حوالہ دے سکتے ہیں:https://www.fmz.com/digest-topic/5711.
کلاؤڈ کمپیوٹنگ سرور اور ڈوکر سسٹم کو کامیابی کے ساتھ تعینات کرنے کے بعد، اگلا ہم پائیتھون کے موجودہ سب سے بڑے آرٹیفیکٹ انسٹال کریں گے: اناکونڈا
اس مضمون میں درکار تمام متعلقہ پروگرام ماحول (تبعیت لائبریریاں ، ورژن مینجمنٹ ، وغیرہ) کو سمجھنے کے ل the ، آسان ترین طریقہ ایناکونڈا کا استعمال کرنا ہے۔ یہ پیتھون ڈیٹا سائنس ماحولیاتی نظام اور انحصار لائبریری مینیجر ہے۔
چونکہ ہم Anaconda کو کلاؤڈ سروس پر انسٹال کرتے ہیں، لہذا ہم تجویز کرتے ہیں کہ کلاؤڈ سرور میں لینکس سسٹم اور Anaconda کا کمانڈ لائن ورژن انسٹال کریں۔
Anaconda کی تنصیب کے طریقہ کار کے لئے، برائے مہربانی Anaconda کے سرکاری گائیڈ سے رجوع کریں:https://www.anaconda.com/distribution/.
اگر آپ تجربہ کار پائتھون پروگرامر ہیں اور اگر آپ کو لگتا ہے کہ آپ کو اناکونڈا استعمال کرنے کی ضرورت نہیں ہے تو ، یہ بالکل کوئی مسئلہ نہیں ہے۔ میں فرض کروں گا کہ آپ کو ضروری منحصر ماحول کی تنصیب کے دوران مدد کی ضرورت نہیں ہے۔ آپ براہ راست اس حصے کو چھوڑ سکتے ہیں۔
ایک بار جب اناکونڈا انسٹال ہوجائے تو ، ہمیں اپنے منحصر پیکجوں کا انتظام کرنے کے لئے ایک نیا ماحول بنانے کی ضرورت ہے۔ لینکس کمانڈ لائن انٹرفیس میں ، ہم ان پٹ کرتے ہیں:
conda create --name cryptocurrency-analysis python=3
ہمارے منصوبے کے لیے ایک نیا اناکونڈا ماحول پیدا کرنے کے لیے۔
اگلا، ان پٹ:
source activate cryptocurrency-analysis (linux/MacOS operating system)
or
activate cryptocurrency-analysis (windows operating system)
ماحول کو چالو کرنے کے لئے.
اگلا، ان پٹ:
conda install numpy pandas nb_conda jupyter plotly
اس منصوبے کے لئے ضروری مختلف منحصر پیکجوں کو انسٹال کرنے کے لئے.
نوٹ: اناکونڈا ماحول کا استعمال کیوں کریں؟ اگر آپ اپنے کمپیوٹر پر بہت سارے پائتھون پروجیکٹس چلانے کا ارادہ رکھتے ہیں تو ، تنازعات سے بچنے کے ل different مختلف منصوبوں کے منحصر پیکجوں (سافٹ ویئر لائبریریوں اور پیکجوں) کو الگ کرنا مددگار ہے۔ اناکونڈا ہر منصوبے کے منحصر پیکجوں کے لئے ایک خصوصی ماحول کی ڈائرکٹری بنائے گا ، تاکہ تمام پیکجوں کو مناسب طریقے سے منظم اور ممتاز کیا جاسکے۔
ماحول اور منحصر پیکجوں کو نصب کرنے کے بعد، چلائیں:
jupyter notebook
iPython کیرنل شروع کرنے کے لئے، پھر ملاحظہ کریںhttp://localhost:8888/آپ کے براؤزر کے ساتھ، ایک نیا پائیتھون نوٹ بک بنائیں، اس بات کو یقینی بنانا کہ یہ استعمال کرتا ہے:
Python [conda env:cryptocurrency-analysis]
کلرل
ایک خالی Jupyter نوٹ بک بنائیں، اور سب سے پہلے ہمیں کرنے کی ضرورت ضروری منحصر پیکجوں کی درآمد ہے.
import os
import numpy as np
import pandas as pd
import pickle
from datetime import datetime
ہم نے بھی درآمد کرنے کی ضرورت ہے Plotly اور آف لائن موڈ کو چالو:
import plotly.offline as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
py.init_notebook_mode(connected=True)
تیاری مکمل ہوگئی ہے ، اور اب ہم تجزیہ کرنے کے لئے اعداد و شمار حاصل کرنا شروع کرسکتے ہیں۔ سب سے پہلے ، ہم بٹ کوائن کی قیمت کے اعداد و شمار حاصل کرنے کے لئے ایف ایم زیڈ کوانٹ پلیٹ فارم کے API انٹرفیس کا استعمال کریں گے۔
یہ GetTicker فنکشن استعمال کرے گا۔ ان دونوں افعال کے استعمال کے لئے ، براہ کرم ملاحظہ کریں:https://www.fmz.com/api.
اعداد و شمار کے حصول کو آسان بنانے کے لئے، ہمیں Quandl سے اعداد و شمار کو ڈاؤن لوڈ اور ہم آہنگ کرنے کے لئے ایک فنکشن لکھنے کی ضرورت ہے (quandl.comیہ ایک مفت مالیاتی ڈیٹا انٹرفیس ہے ، جو بیرون ملک اعلی ساکھ رکھتا ہے۔ ایف ایم زیڈ کوانٹ پلیٹ فارم بھی اسی طرح کا ڈیٹا انٹرفیس مہیا کرتا ہے ، جو بنیادی طور پر اصلی بوٹ لین دین کے لئے استعمال ہوتا ہے۔ چونکہ مضمون بنیادی طور پر ڈیٹا تجزیہ پر مرکوز ہے ، لہذا ہم اب بھی یہاں کوانڈل ڈیٹا استعمال کرتے ہیں۔
اصلی بوٹ ٹرانزیکشن کے دوران ، آپ قیمت کے اعداد و شمار حاصل کرنے کے لئے براہ راست پائیتھون میں گیٹ ٹکر اور گیٹ ریکارڈز افعال کو کال کرسکتے ہیں۔ ان کے استعمال کے ل please ، براہ کرم ملاحظہ کریں:https://www.fmz.com/api.
def get_quandl_data(quandl_id):
# Download and cache data columns from Quandl
cache_path = '{}.pkl'.format(quandl_id).replace('/','-')
try:
f = open(cache_path, 'rb')
df = pickle.load(f)
print('Loaded {} from cache'.format(quandl_id))
except (OSError, IOError) as e:
print('Downloading {} from Quandl'.format(quandl_id))
df = quandl.get(quandl_id, returns="pandas")
df.to_pickle(cache_path)
print('Cached {} at {}'.format(quandl_id, cache_path))
return df
یہاں ، سرکل لائبریری کا استعمال ڈیٹا کو سیریل کرنے اور ڈاؤن لوڈ کردہ ڈیٹا کو فائل کے طور پر محفوظ کرنے کے لئے کیا جاتا ہے ، تاکہ پروگرام ہر بار چلنے پر ایک ہی ڈیٹا ڈاؤن لوڈ نہ کرے۔ یہ فنکشن پانڈا ڈیٹا فریم فارمیٹ میں ڈیٹا واپس کرے گا۔ اگر آپ ڈیٹا فریم کے تصور سے واقف نہیں ہیں تو ، آپ اسے ایک طاقتور ایکسل کی طرح تصور کرسکتے ہیں۔
آئیے کرکن بٹ کوائن ایکسچینج کو ایک مثال کے طور پر لیتے ہیں، اس کی بٹ کوائن قیمت حاصل کرنے سے شروع کرتے ہیں۔
# Get prices on the Kraken Bitcoin exchange
btc_usd_price_kraken = get_quandl_data('BCHARTS/KRAKENUSD')
اعداد و شمار باکس کی پہلی پانچ صفوں کو دیکھنے کے لئے head ((() طریقہ استعمال کریں۔
btc_usd_price_kraken.head()
نتیجہ یہ ہے:
اگلا، ہم ایک سادہ ٹیبل بنانے کے لئے جا رہے ہیں تاکہ اعداد و شمار کی درستگی کی توثیق کی جا سکے.
# Make a table of BTC prices
btc_trace = go.Scatter(x=btc_usd_price_kraken.index, y=btc_usd_price_kraken['Weighted Price'])
py.iplot([btc_trace])
یہاں ، ہم نقطہ نظر کے حصے کو مکمل کرنے کے لئے پلاٹلی کا استعمال کرتے ہیں۔ کچھ زیادہ پختہ پائتھون ڈیٹا نقطہ نظر لائبریریوں ، جیسے میٹ پلٹلب کے استعمال کے مقابلے میں ، پلاٹلی ایک کم عام انتخاب ہے ، لیکن یہ واقعی ایک اچھا انتخاب ہے ، کیونکہ یہ D3.js
تجاویز: جنریٹ کردہ چارٹ کا موازنہ مین اسٹریم ایکسچینجز کے بٹ کوائن قیمت چارٹ (جیسے او کے ایکس ، بائننس یا ہووبی پر چارٹ) کے ساتھ کیا جاسکتا ہے تاکہ یہ یقینی بنایا جاسکے کہ ڈاؤن لوڈ کردہ ڈیٹا عام طور پر مستقل ہے یا نہیں۔
محتاط قارئین نے محسوس کیا ہوگا کہ مذکورہ بالا اعداد و شمار میں اعداد و شمار کی کمی ہے ، خاص طور پر 2014 کے آخر اور 2016 کے آغاز میں۔ خاص طور پر کرکن ایکسچینج میں ، اس طرح کے ڈیٹا کا نقصان خاص طور پر واضح ہے۔ ہمیں یقینی طور پر امید نہیں ہے کہ یہ لاپتہ اعداد و شمار قیمت کے تجزیے کو متاثر کریں گے۔
ڈیجیٹل کرنسی تبادلے کی خصوصیت یہ ہے کہ طلب اور رسد کا رشتہ کرنسی کی قیمت کا تعین کرتا ہے۔ لہذا ، کوئی ٹرانزیکشن قیمت مارکیٹ کی
آئیے ہر تبادلے کے اعداد و شمار کو ڈکشنری کی اقسام پر مشتمل ڈیٹا فریم میں ڈاؤن لوڈ کرکے شروع کریں۔
# Download price data from COINBASE, BITSTAMP and ITBIT
exchanges = ['COINBASE','BITSTAMP','ITBIT']
exchange_data = {}
exchange_data['KRAKEN'] = btc_usd_price_kraken
for exchange in exchanges:
exchange_code = 'BCHARTS/{}USD'.format(exchange)
btc_exchange_df = get_quandl_data(exchange_code)
exchange_data[exchange] = btc_exchange_df
اگلا ، ہم ایک خصوصی فنکشن کی وضاحت کریں گے جس میں ہر ڈیٹا فریم میں مشترکہ کالموں کو ایک نئے ڈیٹا فریم میں ضم کیا جائے۔ آئیے اسے merge_dfs_on_column فنکشن کہتے ہیں۔
def merge_dfs_on_column(dataframes, labels, col):
'''Merge a single column of each dataframe into a new combined dataframe'''
series_dict = {}
for index in range(len(dataframes)):
series_dict[labels[index]] = dataframes[index][col]
return pd.DataFrame(series_dict)
اب، تمام اعداد و شمار کے فریم ہر ڈیٹا سیٹ کے
# Integrate all data frames
btc_usd_datasets = merge_dfs_on_column(list(exchange_data.values()), list(exchange_data.keys()), 'Weighted Price')
آخر میں، ہم
btc_usd_datasets.tail()
نتائج اس طرح دکھائے گئے ہیں:
مندرجہ بالا ٹیبل سے ہم دیکھ سکتے ہیں کہ یہ اعداد و شمار ہماری توقعات کے مطابق ہیں، تقریبا ایک ہی ڈیٹا رینج کے ساتھ، لیکن ہر تبادلے کی تاخیر یا خصوصیات کی بنیاد پر تھوڑا سا مختلف ہے.
تجزیہ منطق کے نقطہ نظر سے ، اگلا مرحلہ ان اعداد و شمار کا موازنہ کرنا ہے۔ ایسا کرنے کے لئے ، ہمیں پہلے ایک معاون فنکشن کی وضاحت کرنے کی ضرورت ہے۔ چارٹ بنانے کے لئے ڈیٹا کو استعمال کرنے کے لئے ایک لائن کمانڈ فراہم کرکے ، ہم اسے df_scatter فنکشن کہتے ہیں۔
def df_scatter(df, title, seperate_y_axis=False, y_axis_label='', scale='linear', initial_hide=False):
'''Generate a scatter plot of the entire dataframe'''
label_arr = list(df)
series_arr = list(map(lambda col: df[col], label_arr))
layout = go.Layout(
title=title,
legend=dict(orientation="h"),
xaxis=dict(type='date'),
yaxis=dict(
title=y_axis_label,
showticklabels= not seperate_y_axis,
type=scale
)
)
y_axis_config = dict(
overlaying='y',
showticklabels=False,
type=scale )
visibility = 'visible'
if initial_hide:
visibility = 'legendonly'
# Table tracking for each series
trace_arr = []
for index, series in enumerate(series_arr):
trace = go.Scatter(
x=series.index,
y=series,
name=label_arr[index],
visible=visibility
)
# Add a separate axis to the series
if seperate_y_axis:
trace['yaxis'] = 'y{}'.format(index + 1)
layout['yaxis{}'.format(index + 1)] = y_axis_config
trace_arr.append(trace)
fig = go.Figure(data=trace_arr, layout=layout)
py.iplot(fig)
آپ کی آسان تفہیم کے ل this ، یہ مضمون اس معاون فنکشن کے منطقی اصول پر زیادہ بحث نہیں کرے گا۔ اگر آپ مزید جاننا چاہتے ہیں تو ، براہ کرم پانڈاس اور پلاٹلی کی سرکاری دستاویزات کو چیک کریں۔
اب، ہم بٹ کوائن قیمت کے اعداد و شمار چارٹ آسانی سے تشکیل دے سکتے ہیں!
# Plot all BTC transaction prices
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')
جیسا کہ اوپر دیئے گئے چارٹ سے دیکھا جا سکتا ہے، اگرچہ چار اعداد و شمار کی سیریز تقریباً ایک ہی راستے پر چلتی ہیں، لیکن پھر بھی کچھ غیر معمولی تبدیلیاں ہیں۔ ہم ان غیر معمولی تبدیلیوں کو ختم کرنے کی کوشش کریں گے۔
2012-2017 کی مدت میں، ہم جانتے ہیں کہ بٹ کوائن کی قیمت کبھی صفر کے برابر نہیں رہی، لہذا ہم پہلے اعداد و شمار کے فریم میں تمام صفر اقدار کو ہٹا دیتے ہیں۔
# Clear the "0" value
btc_usd_datasets.replace(0, np.nan, inplace=True)
اعداد و شمار کے فریموں کی تعمیر نو کے بعد، ہم ایک واضح چارٹ دیکھ سکتے ہیں جس میں اب کوئی گمشدہ ڈیٹا نہیں ہے۔
# Plot the revised data frame
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')
اب ہم ایک نئے کالم کا حساب لگا سکتے ہیں: تمام تبادلے کی روزانہ اوسط بٹ کوائن کی قیمت۔
# Calculate the average BTC price as a new column
btc_usd_datasets['avg_btc_price_usd'] = btc_usd_datasets.mean(axis=1)
نیا کالم بٹ کوائن کی قیمت کا انڈیکس ہے! آئیے اسے دوبارہ ڈرائنگ کریں تاکہ چیک کریں کہ آیا اعداد و شمار غلط نظر آتے ہیں۔
# Plot the average BTC price
btc_trace = go.Scatter(x=btc_usd_datasets.index, y=btc_usd_datasets['avg_btc_price_usd'])
py.iplot([btc_trace])
ایسا لگتا ہے کہ کوئی مسئلہ نہیں ہے۔ بعد میں ، ہم دیگر ڈیجیٹل کرنسیوں اور امریکی ڈالر کے مابین زر مبادلہ کی شرح کا تعین کرنے کے لئے اس مجموعی قیمت سیریز کے اعداد و شمار کا استعمال جاری رکھیں گے۔
اب تک ، ہمارے پاس بٹ کوائن کی قیمت کے ٹائم سیریز کے اعداد و شمار موجود ہیں۔ اگلا ، آئیے بٹ کوائن غیر ڈیجیٹل کرنسیوں ، یعنی ، الٹکوئنز کے کچھ اعداد و شمار پر ایک نظر ڈالیں۔ یقینا ، اصطلاح
سب سے پہلے ، ہم ڈیجیٹل کرنسی کے لین دین کی ڈیٹا کی معلومات حاصل کرنے کے لئے پولونیکس ایکسچینج کے API کا استعمال کرتے ہیں۔ ہم Altcoins سے متعلق ڈیٹا حاصل کرنے کے لئے دو معاون افعال کی وضاحت کرتے ہیں۔ یہ دونوں افعال بنیادی طور پر API کے ذریعہ JSON ڈیٹا ڈاؤن لوڈ اور کیش کرتے ہیں۔
سب سے پہلے، ہم فنکشن get_json_data کی وضاحت کرتے ہیں، جو دیئے گئے URL سے JSON ڈیٹا ڈاؤن لوڈ اور کیش کرے گا.
def get_json_data(json_url, cache_path):
'''Download and cache JSON data, return as a dataframe.'''
try:
f = open(cache_path, 'rb')
df = pickle.load(f)
print('Loaded {} from cache'.format(json_url))
except (OSError, IOError) as e:
print('Downloading {}'.format(json_url))
df = pd.read_json(json_url)
df.to_pickle(cache_path)
print('Cached {} at {}'.format(json_url, cache_path))
return df
اگلا، ہم ایک نیا فنکشن کی وضاحت کریں گے جو پولونیکس API کی HTTP درخواست پیدا کرے گا اور کال کے ڈیٹا کے نتائج کو بچانے کے لئے صرف بیان کردہ get_ json_data فنکشن کو کال کریں گے.
base_polo_url = 'https://poloniex.com/public?command=returnChartData¤cyPair={}&start={}&end={}&period={}'
start_date = datetime.strptime('2015-01-01', '%Y-%m-%d') # Data acquisition since 2015
end_date = datetime.now() # Until today
pediod = 86400 # pull daily data (86,400 seconds per day)
def get_crypto_data(poloniex_pair):
'''Retrieve cryptocurrency data from poloniex'''
json_url = base_polo_url.format(poloniex_pair, start_date.timestamp(), end_date.timestamp(), pediod)
data_df = get_json_data(json_url, poloniex_pair)
data_df = data_df.set_index('date')
return data_df
مندرجہ بالا فنکشن ڈیجیٹل کرنسی کا مماثل کردار کوڈ نکالے گا (جیسے
الٹکوئنز کی اکثریت کو براہ راست امریکی ڈالر میں نہیں خریدا جاسکتا ہے۔ ان ڈیجیٹل کرنسیوں کو حاصل کرنے کے ل individuals ، افراد کو عام طور پر پہلے بٹ کوائنز خریدنا پڑتا ہے ، اور پھر ان کی قیمت کے تناسب کے مطابق انہیں الٹکوئنز میں تبدیل کرنا پڑتا ہے۔ لہذا ، ہمیں ہر ڈیجیٹل کرنسی کی زر مبادلہ کی شرح کو بٹ کوائن میں ڈاؤن لوڈ کرنا پڑتا ہے ، اور پھر اسے امریکی ڈالر میں تبدیل کرنے کے لئے موجودہ بٹ کوائن کی قیمت کے اعداد و شمار کا استعمال کرنا پڑتا ہے۔ ہم سب سے اوپر 9 ڈیجیٹل کرنسیوں کے لئے زر مبادلہ کی شرح کے اعداد و شمار ڈاؤن لوڈ کریں گے: ایتھریم ، لائیٹکوئن ، ریپل ، ایتھریم کلاسیکی ، اسٹیلر ، ڈیش ، سییاکوئن ، مونرو ، اور این ای ایم۔
altcoins = ['ETH','LTC','XRP','ETC','STR','DASH','SC','XMR','XEM']
altcoin_data = {}
for altcoin in altcoins:
coinpair = 'BTC_{}'.format(altcoin)
crypto_price_df = get_crypto_data(coinpair)
altcoin_data[altcoin] = crypto_price_df
اب، ہمارے پاس ایک لغت ہے جس میں 9 ڈیٹا فریم ہیں، جن میں سے ہر ایک میں Altcoins اور Bitcoin کے درمیان تاریخی روزانہ اوسط قیمت کے اعداد و شمار شامل ہیں.
ہم ایتھرئم قیمت ٹیبل کی آخری چند قطاروں کے ذریعے اس بات کا تعین کر سکتے ہیں کہ اعداد و شمار درست ہیں یا نہیں۔
altcoin_data['ETH'].tail()
اب، ہم بی ٹی سی اور الٹکوئنز کی شرح تبادلہ کے اعداد و شمار کو اپنے بٹ کوائن کی قیمت انڈیکس کے ساتھ جوڑ سکتے ہیں تاکہ ہر الٹکوئن کی تاریخی قیمت (امریکی ڈالر میں) کا براہ راست حساب لگایا جا سکے۔
# Calculate USD Price as a new column in each altcoin data frame
for altcoin in altcoin_data.keys():
altcoin_data[altcoin]['price_usd'] = altcoin_data[altcoin]['weightedAverage'] * btc_usd_datasets['avg_btc_price_usd']
یہاں، ہم ہر Altcoin ڈیٹا فریم کے لئے ایک نیا کالم شامل کرتے ہیں تاکہ اس کی متعلقہ امریکی ڈالر کی قیمت کو ذخیرہ کیا جاسکے۔
اگلا، ہم ایک مشترکہ ڈیٹا فریم تخلیق کرنے اور ہر ڈیجیٹل کرنسی کی USD قیمت کو ضم کرنے کے لئے پہلے سے بیان کردہ merge_dfs_on_column فنکشن کو دوبارہ استعمال کرسکتے ہیں.
# Combine the USD price of each Altcoin into a single data frame
combined_df = merge_dfs_on_column(list(altcoin_data.values()), list(altcoin_data.keys()), 'price_usd')
کیا!
اب آئیے بٹ کوائن کی قیمت کو ضم شدہ ڈیٹا فریم میں آخری کالم کے طور پر شامل کریں۔
# Add BTC price to data frame
combined_df['BTC'] = btc_usd_datasets['avg_btc_price_usd']
اب ہمارے پاس ایک منفرد ڈیٹا فریم ہے، جس میں دس ڈیجیٹل کرنسیوں کی روزانہ امریکی ڈالر کی قیمتیں ہیں جن کی ہم تصدیق کر رہے ہیں۔
ہم پچھلے فنکشن کو دوبارہ df_scatter کہتے ہیں، جو چارٹ کی شکل میں تمام Altcoins کی متعلقہ قیمتوں کو ظاہر کرتا ہے۔
ایسا لگتا ہے کہ چارٹ میں کوئی مسئلہ نہیں ہے۔ یہ چارٹ ہمیں پچھلے کچھ سالوں میں ہر ڈیجیٹل کرنسی کے تبادلے کی قیمت میں ہونے والی تبدیلی کی مکمل تصویر دکھاتا ہے۔
نوٹ: یہاں ہم ایک ہی چارٹ پر تمام ڈیجیٹل کرنسیوں کا موازنہ کرنے کے لئے لوگرتھمک تفصیلات کے وائی محور کا استعمال کرتے ہیں۔ آپ ڈیٹا کو مختلف نقطہ نظر سے سمجھنے کے لئے مختلف پیرامیٹرز (جیسے پیمانہ =
محتاط قارئین نے شاید محسوس کیا ہوگا کہ ڈیجیٹل کرنسیوں کی قیمتیں متعلقہ معلوم ہوتی ہیں ، حالانکہ ان کی کرنسی کی قیمتیں وسیع پیمانے پر مختلف ہوتی ہیں اور انتہائی اتار چڑھاؤ والی ہوتی ہیں۔ خاص طور پر اپریل 2017 میں تیزی سے اضافے کے بعد سے ، یہاں تک کہ بہت ساری چھوٹی اتار چڑھاؤ پوری مارکیٹ کے اتار چڑھاؤ کے ساتھ بیک وقت ہونے لگتی ہیں۔
ظاہر ہے، اعداد و شمار کی بنیاد پر کئے گئے نتائج تصاویر پر مبنی بصیرتوں سے زیادہ قائل ہیں۔
ہم مندرجہ بالا ارتباط مفروضے کی تصدیق کے لئے پانڈاس کور () فنکشن کا استعمال کرسکتے ہیں۔ یہ ٹیسٹ کا طریقہ دوسرے کالم سے متعلق ڈیٹا فریم کے ہر کالم کا پیرسن ارتباط گتانک کا حساب لگاتا ہے۔
نظر ثانی کا نوٹ 22.8.2017: اس سیکشن میں ترمیم کی گئی ہے تاکہ ہم آہنگی کے ضریب کا حساب لگاتے وقت قیمت کی مطلق قیمت کے بجائے روزانہ کی شرح منافع کا استعمال کیا جاسکے۔
غیر ٹھوس وقت کی سیریز (جیسے خام قیمت کے اعداد و شمار) پر مبنی براہ راست حساب کتاب سے وابستگی کے ضریب کا انحراف ہوسکتا ہے۔ اس مسئلے کو حل کرنے کے ل our ، ہمارا حل pct_change (() طریقہ استعمال کرنا ہے تاکہ اعداد و شمار کے فریم میں ہر قیمت کی مطلق قیمت کو اسی روزانہ کی شرح واپسی میں تبدیل کیا جاسکے۔
مثال کے طور پر، 2016 میں ہم آہنگی ضارب کا حساب لگائیں.
# Calculating the Pearson correlation coefficient for digital currencies in 2016
combined_df_2016 = combined_df[combined_df.index.year == 2016]
combined_df_2016.pct_change().corr(method='pearson')
مندرجہ بالا چارٹ میں ارتباط ضارب دکھایا گیا ہے۔ جب ضارب 1 یا -1 کے قریب ہوتا ہے تو ، اس کا مطلب یہ ہے کہ یہ سلسلہ بالترتیب مثبت یا منفی طور پر وابستہ ہے۔ جب ارتباط ضارب 0 کے قریب ہوتا ہے تو ، اس کا مطلب یہ ہے کہ متعلقہ اشیاء وابستہ نہیں ہیں اور ان کے اتار چڑھاؤ ایک دوسرے سے آزاد ہیں۔
نتائج کو بہتر طور پر دیکھنے کے لیے، ہم ایک نئی بصری امدادی تقریب بناتے ہیں۔
def correlation_heatmap(df, title, absolute_bounds=True):
'''Plot a correlation heatmap for the entire dataframe'''
heatmap = go.Heatmap(
z=df.corr(method='pearson').as_matrix(),
x=df.columns,
y=df.columns,
colorbar=dict(title='Pearson Coefficient'),
)
layout = go.Layout(title=title)
if absolute_bounds:
heatmap['zmax'] = 1.0
heatmap['zmin'] = -1.0
fig = go.Figure(data=[heatmap], layout=layout)
py.iplot(fig)
correlation_heatmap(combined_df_2016.pct_change(), "Cryptocurrency Correlations in 2016")
یہاں ، سیاہ سرخ قدر مضبوط ارتباط کی نمائندگی کرتی ہے (ہر کرنسی ظاہر ہے کہ خود کے ساتھ انتہائی وابستہ ہے) ، اور سیاہ نیلے رنگ کی قدر الٹا ارتباط کی نمائندگی کرتی ہے۔ وسط میں تمام رنگ - ہلکے نیلے / نارنجی / سرمئی / ٹونی - کی قدر ہوتی ہے جو کمزور ارتباط یا عدم ارتباط کی مختلف ڈگری کی نمائندگی کرتی ہے۔
یہ چارٹ ہمیں کیا بتاتا ہے؟ بنیادی طور پر، یہ 2016 میں مختلف ڈیجیٹل کرنسیوں کی قیمتوں میں اتار چڑھاؤ دکھاتا ہے، جس میں اعداد و شمار کے لحاظ سے کوئی اہم تعلق نہیں ہے۔
اب، ہمارے مفروضے کی تصدیق کرنے کے لیے کہ
combined_df_2017 = combined_df[combined_df.index.year == 2017]
combined_df_2017.pct_change().corr(method='pearson')
کیا مذکورہ بالا اعداد و شمار زیادہ متعلقہ ہیں؟ کیا وہ سرمایہ کاری کے فیصلے کے معیار کے طور پر استعمال کرنے کے لئے کافی ہیں؟ جواب نہیں ہے۔
تاہم، یہ نوٹ کرنے کے قابل ہے کہ تقریبا تمام ڈیجیٹل کرنسیوں کو تیزی سے منسلک کیا گیا ہے.
correlation_heatmap(combined_df_2017.pct_change(), "Cryptocurrency Correlations in 2017")
جیسا کہ ہم مندرجہ بالا چارٹ سے دیکھ سکتے ہیں، چیزیں زیادہ سے زیادہ دلچسپ ہو رہی ہیں.
اچھا سوال! لیکن سچ تو یہ ہے، مجھے یقین نہیں ہے...
میرا پہلا رد عمل یہ ہے کہ ہیج فنڈز نے حال ہی میں ڈیجیٹل کرنسی مارکیٹ میں عوامی طور پر تجارت شروع کی ہے۔ یہ فنڈز عام تاجروں کے مقابلے میں بہت زیادہ سرمایہ رکھتے ہیں۔ جب کوئی فنڈ متعدد ڈیجیٹل کرنسیوں کے مابین اپنے سرمایہ کاری شدہ سرمائے کو ہیج کرتا ہے تو ، وہ ہر کرنسی کے لئے آزاد متغیرات (جیسے اسٹاک مارکیٹ) کے مطابق اسی طرح کی تجارتی حکمت عملی استعمال کرتا ہے۔ اس نقطہ نظر سے ، یہ سمجھ میں آتا ہے کہ بڑھتی ہوئی وابستگی کا یہ رجحان واقع ہوگا۔
XRP اور STR کی گہری تفہیم
مثال کے طور پر ، مندرجہ بالا چارٹ سے یہ ظاہر ہوتا ہے کہ ایکس آر پی (ریپل
دلچسپ بات یہ ہے کہ اسٹیلر اور ریپل بہت ہی ملتے جلتے مالیاتی ٹکنالوجی پلیٹ فارم ہیں ، جن کا مقصد دونوں بینکوں کے مابین سرحد پار منتقلی کے سست مراحل کو کم کرنا ہے۔ یہ تصور کیا جاسکتا ہے کہ کچھ بڑے کھلاڑی اور ہیج فنڈز اسٹیلر اور ریپل میں اپنی سرمایہ کاری کے لئے اسی طرح کی تجارتی حکمت عملی استعمال کرسکتے ہیں ، بلاکچین خدمات کے ذریعہ استعمال ہونے والے ٹوکن کی مماثلت پر غور کرتے ہوئے۔ اس کی وجہ یہ ہوسکتی ہے کہ ایکس آر پی دیگر ڈیجیٹل کرنسیوں کے مقابلے میں ایس ٹی آر کے لئے زیادہ متعلقہ ہے۔
مذکورہ بالا وضاحتیں زیادہ تر قیاس آرائیاں ہیں ، اور آپ بہتر کر سکتے ہیں۔ ہماری بنیادوں کی بنیاد پر ، آپ کے پاس اعداد و شمار میں موجود کہانیوں کی کھوج جاری رکھنے کے سینکڑوں مختلف طریقے ہیں۔
ذیل میں میری کچھ تجاویز ہیں۔ قارئین تحقیق کو مندرجہ ذیل سمتوں میں دیکھ سکتے ہیں:
عام طور پر بٹ کوائن اور ڈیجیٹل کرنسی کے بارے میں سب سے اچھی بات ان کی غیر مرکزی نوعیت ہے ، جو اسے کسی بھی دوسرے اثاثے سے زیادہ آزاد اور جمہوری بنا دیتی ہے۔ آپ اپنے تجزیے کو اوپن سورس شیئر کرسکتے ہیں ، کمیونٹی میں حصہ لے سکتے ہیں ، یا بلاگ لکھ سکتے ہیں۔ مجھے امید ہے کہ آپ نے خود تجزیہ کے لئے درکار مہارتوں پر عبور حاصل کرلیا ہے اور مستقبل میں کسی بھی قیاس آرائی کی ڈیجیٹل کرنسی کے مضامین کو پڑھنے کے دوران ڈائیلیکٹک سوچنے کی صلاحیت حاصل کرلی ہے ، خاص طور پر ان پیش گوئیوں کو بغیر اعداد و شمار کی حمایت کے۔ پڑھنے کے لئے شکریہ۔ اگر آپ کے پاس اس سبق کے بارے میں کوئی تبصرے ، تجاویز یا تنقید ہیں تو ، براہ کرم ایک پیغام چھوڑیں۔https://www.fmz.com/bbs.