وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ڈیجیٹل کرنسی مارکیٹ کا مقداری تجزیہ

مصنف:FMZ~Lydia, تخلیق: 2023-01-06 10:28:01, تازہ کاری: 2023-09-20 10:27:27

img

ڈیجیٹل کرنسی مارکیٹ کا مقداری تجزیہ

ڈیجیٹل کرنسیوں کے قیاس آرائی کے تجزیے کے لئے ڈیٹا پر مبنی نقطہ نظر

بٹ کوائن کی قیمت کے بارے میں کیا خیال ہے؟ ڈیجیٹل کرنسی کی قیمت میں اضافے اور کمی کی وجوہات کیا ہیں؟ کیا مختلف الٹکوئنز کی مارکیٹ کی قیمتیں آپس میں جڑی ہوئی ہیں یا بڑی حد تک آزاد ہیں؟ ہم آگے کیا ہوگا اس کی پیش گوئی کیسے کرسکتے ہیں؟

بٹ کوائن اور ایتھریم جیسی ڈیجیٹل کرنسیوں کے بارے میں مضامین اب قیاس آرائیوں سے بھرے ہوئے ہیں۔ سینکڑوں خود ساختہ ماہرین اس رجحان کی وکالت کر رہے ہیں جس کی وہ توقع کرتے ہیں۔ ان میں سے بہت سے تجزیوں میں بنیادی اعداد و شمار اور شماریاتی ماڈلز کی ٹھوس بنیاد کا فقدان ہے۔

اس مضمون کا مقصد پیتھون کا استعمال کرتے ہوئے ڈیجیٹل کرنسی تجزیہ کا ایک مختصر تعارف فراہم کرنا ہے۔ ہم مختلف ڈیجیٹل کرنسیوں کے ڈیٹا کو بازیافت ، تجزیہ اور تصور کرنے کے لئے ایک سادہ پیتھون اسکرپٹ کا استعمال کریں گے۔ اس عمل میں ، ہمیں ان اتار چڑھاؤ کے مارکیٹ کے رویے اور ان کے ترقی کے بارے میں دلچسپ رجحانات ملیں گے۔

img

یہ ڈیجیٹل کرنسی کی وضاحت کرنے والا مضمون نہیں ہے ، اور نہ ہی یہ اس بارے میں کوئی رائے ہے کہ کون سی مخصوص کرنسیاں بڑھیں گی اور کون سی کم ہوں گی۔ اس کے برعکس ، اس ٹیوٹوریل میں ہم جس چیز پر توجہ مرکوز کرتے ہیں وہ اصل اعداد و شمار حاصل کرنا اور اعداد و شمار میں چھپی ہوئی کہانی تلاش کرنا ہے۔

مرحلہ 1: ہمارے ڈیٹا ورکنگ ماحول کو ترتیب دیں

یہ ٹیوٹوریل تمام مہارت کی سطح پر شائقین ، انجینئرز اور ڈیٹا سائنسدانوں کے لئے ہے۔ چاہے آپ صنعت کے رہنما ہوں یا پروگرامنگ کے ابتدائی ، آپ کو صرف ایک ہی مہارت کی ضرورت ہے جو پائیتھون پروگرامنگ زبان کی بنیادی تفہیم اور کمانڈ لائن آپریشنز کا کافی علم ہے (ڈیٹا سائنس پروجیکٹ ترتیب دینے کے قابل ہونا کافی ہے) ۔

1.1 FMZ کوانٹ ڈوکر انسٹال کریں اور Anaconda ترتیب دیں

  • FMZ کوانٹ پلیٹ فارم کا ڈوکر سسٹم FMZ کوانٹ پلیٹ فارمFMZ.COMیہ نہ صرف اہم مرکزی دھارے کے تبادلے کے لئے اعلی معیار کے ڈیٹا ذرائع فراہم کرتا ہے ، بلکہ ڈیٹا تجزیہ مکمل کرنے کے بعد خودکار لین دین کرنے میں ہماری مدد کرنے کے لئے بھرپور API انٹرفیس کا ایک سیٹ بھی فراہم کرتا ہے۔ انٹرفیس کے اس سیٹ میں عملی ٹولز شامل ہیں ، جیسے اکاؤنٹ کی معلومات کی استفسار کرنا ، اعلی ، کھلی ، کم ، رسید کی قیمت ، تجارتی حجم ، اور مختلف عام طور پر استعمال ہونے والے تکنیکی تجزیہ اشارے مختلف مرکزی دھارے کے تبادلے۔ خاص طور پر ، یہ اصل تجارتی عمل میں بڑے مرکزی دھارے کے تبادلے کو مربوط کرنے والے عوامی API انٹرفیس کے لئے مضبوط تکنیکی مدد فراہم کرتا ہے۔

مذکورہ بالا تمام خصوصیات کو ڈوکر جیسے نظام میں شامل کیا گیا ہے۔ ہمیں اپنی کلاؤڈ کمپیوٹنگ خدمات خریدنے یا لیز پر لینے اور ڈوکر سسٹم کو تعینات کرنے کی ضرورت ہے۔

ایف ایم زیڈ کوانٹ پلیٹ فارم کے سرکاری نام میں ، اس ڈوکر سسٹم کو ڈوکر سسٹم کہا جاتا ہے۔

براہ کرم میرے پچھلے مضمون کا حوالہ دیں کہ ڈوکر اور روبوٹ کو کیسے تعینات کیا جائے:https://www.fmz.com/bbs-topic/9864.

قارئین جو اپنے ڈاکرز کو تعینات کرنے کے لئے اپنا کلاؤڈ کمپیوٹنگ سرور خریدنا چاہتے ہیں وہ اس مضمون کا حوالہ دے سکتے ہیں:https://www.fmz.com/digest-topic/5711.

کلاؤڈ کمپیوٹنگ سرور اور ڈوکر سسٹم کو کامیابی کے ساتھ تعینات کرنے کے بعد، اگلا ہم پائیتھون کے موجودہ سب سے بڑے آرٹیفیکٹ انسٹال کریں گے: اناکونڈا

اس مضمون میں درکار تمام متعلقہ پروگرام ماحول (تبعیت لائبریریاں ، ورژن مینجمنٹ ، وغیرہ) کو سمجھنے کے ل the ، آسان ترین طریقہ ایناکونڈا کا استعمال کرنا ہے۔ یہ پیتھون ڈیٹا سائنس ماحولیاتی نظام اور انحصار لائبریری مینیجر ہے۔

چونکہ ہم Anaconda کو کلاؤڈ سروس پر انسٹال کرتے ہیں، لہذا ہم تجویز کرتے ہیں کہ کلاؤڈ سرور میں لینکس سسٹم اور Anaconda کا کمانڈ لائن ورژن انسٹال کریں۔

Anaconda کی تنصیب کے طریقہ کار کے لئے، برائے مہربانی Anaconda کے سرکاری گائیڈ سے رجوع کریں:https://www.anaconda.com/distribution/.

اگر آپ تجربہ کار پائتھون پروگرامر ہیں اور اگر آپ کو لگتا ہے کہ آپ کو اناکونڈا استعمال کرنے کی ضرورت نہیں ہے تو ، یہ بالکل کوئی مسئلہ نہیں ہے۔ میں فرض کروں گا کہ آپ کو ضروری منحصر ماحول کی تنصیب کے دوران مدد کی ضرورت نہیں ہے۔ آپ براہ راست اس حصے کو چھوڑ سکتے ہیں۔

1.2 Anaconda کے لئے ایک ڈیٹا تجزیہ کے منصوبے کے ماحول تخلیق کریں

ایک بار جب اناکونڈا انسٹال ہوجائے تو ، ہمیں اپنے منحصر پیکجوں کا انتظام کرنے کے لئے ایک نیا ماحول بنانے کی ضرورت ہے۔ لینکس کمانڈ لائن انٹرفیس میں ، ہم ان پٹ کرتے ہیں:

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 مختلف منصوبوں کے منحصر پیکجوں (سافٹ ویئر لائبریریوں اور پیکجوں) کو الگ کرنا مددگار ہے۔ اناکونڈا ہر منصوبے کے منحصر پیکجوں کے لئے ایک خصوصی ماحول کی ڈائرکٹری بنائے گا ، تاکہ تمام پیکجوں کو مناسب طریقے سے منظم اور ممتاز کیا جاسکے۔

1.3 ایک جوپیٹر نوٹ بک بنائیں

ماحول اور منحصر پیکجوں کو نصب کرنے کے بعد، چلائیں:

jupyter notebook

iPython کیرنل شروع کرنے کے لئے، پھر ملاحظہ کریںhttp://localhost:8888/آپ کے براؤزر کے ساتھ، ایک نیا پائیتھون نوٹ بک بنائیں، اس بات کو یقینی بنانا کہ یہ استعمال کرتا ہے:

Python [conda env:cryptocurrency-analysis]

کلرل

img

1.4 درآمد سے وابستہ پیکیجز

ایک خالی 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)

مرحلہ 2: ڈیجیٹل کرنسی کی قیمت کی معلومات حاصل کریں

تیاری مکمل ہوگئی ہے ، اور اب ہم تجزیہ کرنے کے لئے اعداد و شمار حاصل کرنا شروع کرسکتے ہیں۔ سب سے پہلے ، ہم بٹ کوائن کی قیمت کے اعداد و شمار حاصل کرنے کے لئے ایف ایم زیڈ کوانٹ پلیٹ فارم کے API انٹرفیس کا استعمال کریں گے۔

یہ GetTicker فنکشن استعمال کرے گا۔ ان دونوں افعال کے استعمال کے لئے ، براہ کرم ملاحظہ کریں:https://www.fmz.com/api.

2.1 جبل ڈیٹا کلیکشن فنکشن لکھیں

اعداد و شمار کے حصول کو آسان بنانے کے لئے، ہمیں 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

یہاں ، سرکل لائبریری کا استعمال ڈیٹا کو سیریل کرنے اور ڈاؤن لوڈ کردہ ڈیٹا کو فائل کے طور پر محفوظ کرنے کے لئے کیا جاتا ہے ، تاکہ پروگرام ہر بار چلنے پر ایک ہی ڈیٹا ڈاؤن لوڈ نہ کرے۔ یہ فنکشن پانڈا ڈیٹا فریم فارمیٹ میں ڈیٹا واپس کرے گا۔ اگر آپ ڈیٹا فریم کے تصور سے واقف نہیں ہیں تو ، آپ اسے ایک طاقتور ایکسل کی طرح تصور کرسکتے ہیں۔

2.2 کرکن ایکسچینج کے ڈیجیٹل کرنسی قیمت کے اعداد و شمار تک رسائی

آئیے کرکن بٹ کوائن ایکسچینج کو ایک مثال کے طور پر لیتے ہیں، اس کی بٹ کوائن قیمت حاصل کرنے سے شروع کرتے ہیں۔

# Get prices on the Kraken Bitcoin exchange
btc_usd_price_kraken = get_quandl_data('BCHARTS/KRAKENUSD')

اعداد و شمار باکس کی پہلی پانچ صفوں کو دیکھنے کے لئے head ((() طریقہ استعمال کریں۔

btc_usd_price_kraken.head()

نتیجہ یہ ہے:

img

اگلا، ہم ایک سادہ ٹیبل بنانے کے لئے جا رہے ہیں تاکہ اعداد و شمار کی درستگی کی توثیق کی جا سکے.

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

img

یہاں ، ہم نقطہ نظر کے حصے کو مکمل کرنے کے لئے پلاٹلی کا استعمال کرتے ہیں۔ کچھ زیادہ پختہ پائتھون ڈیٹا نقطہ نظر لائبریریوں ، جیسے میٹ پلٹلب کے استعمال کے مقابلے میں ، پلاٹلی ایک کم عام انتخاب ہے ، لیکن یہ واقعی ایک اچھا انتخاب ہے ، کیونکہ یہ D3.js مکمل طور پر انٹرایکٹو چارٹس کو کال کرسکتا ہے۔ ان چارٹوں میں خوبصورت ڈیفالٹ ترتیبات ہیں ، جن کی کھوج کرنا آسان ہے اور ویب پیج میں سرایت کرنا بہت آسان ہے۔

تجاویز: جنریٹ کردہ چارٹ کا موازنہ مین اسٹریم ایکسچینجز کے بٹ کوائن قیمت چارٹ (جیسے او کے ایکس ، بائننس یا ہووبی پر چارٹ) کے ساتھ کیا جاسکتا ہے تاکہ یہ یقینی بنایا جاسکے کہ ڈاؤن لوڈ کردہ ڈیٹا عام طور پر مستقل ہے یا نہیں۔

2.3 مین اسٹریم بٹ کوائن ایکسچینجز سے قیمت کے اعداد و شمار حاصل کریں

محتاط قارئین نے محسوس کیا ہوگا کہ مذکورہ بالا اعداد و شمار میں اعداد و شمار کی کمی ہے ، خاص طور پر 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

2.4 تمام اعداد و شمار کو ایک ڈیٹا فریم میں ضم کریں

اگلا ، ہم ایک خصوصی فنکشن کی وضاحت کریں گے جس میں ہر ڈیٹا فریم میں مشترکہ کالموں کو ایک نئے ڈیٹا فریم میں ضم کیا جائے۔ آئیے اسے 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)

اب، تمام اعداد و شمار کے فریم ہر ڈیٹا سیٹ کے weighted قیمت کالم کی بنیاد پر مربوط ہیں.

# Integrate all data frames
btc_usd_datasets = merge_dfs_on_column(list(exchange_data.values()), list(exchange_data.keys()), 'Weighted Price')

آخر میں، ہم tail () طریقہ کار استعمال کرتے ہیں کہ اعداد و شمار درست اور مکمل ہیں اس بات کو یقینی بنانے کے لئے ضم شدہ اعداد و شمار کی آخری پانچ قطاریں دیکھنے کے لئے.

btc_usd_datasets.tail()

نتائج اس طرح دکھائے گئے ہیں:

img

مندرجہ بالا ٹیبل سے ہم دیکھ سکتے ہیں کہ یہ اعداد و شمار ہماری توقعات کے مطابق ہیں، تقریبا ایک ہی ڈیٹا رینج کے ساتھ، لیکن ہر تبادلے کی تاخیر یا خصوصیات کی بنیاد پر تھوڑا سا مختلف ہے.

2.5 قیمت کے اعداد و شمار کی نمائش کا عمل

تجزیہ منطق کے نقطہ نظر سے ، اگلا مرحلہ ان اعداد و شمار کا موازنہ کرنا ہے۔ ایسا کرنے کے لئے ، ہمیں پہلے ایک معاون فنکشن کی وضاحت کرنے کی ضرورت ہے۔ چارٹ بنانے کے لئے ڈیٹا کو استعمال کرنے کے لئے ایک لائن کمانڈ فراہم کرکے ، ہم اسے 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')

img

2.6 قیمتوں کے واضح اور مجموعی اعداد و شمار

جیسا کہ اوپر دیئے گئے چارٹ سے دیکھا جا سکتا ہے، اگرچہ چار اعداد و شمار کی سیریز تقریباً ایک ہی راستے پر چلتی ہیں، لیکن پھر بھی کچھ غیر معمولی تبدیلیاں ہیں۔ ہم ان غیر معمولی تبدیلیوں کو ختم کرنے کی کوشش کریں گے۔

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

img

اب ہم ایک نئے کالم کا حساب لگا سکتے ہیں: تمام تبادلے کی روزانہ اوسط بٹ کوائن کی قیمت۔

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

img

ایسا لگتا ہے کہ کوئی مسئلہ نہیں ہے۔ بعد میں ، ہم دیگر ڈیجیٹل کرنسیوں اور امریکی ڈالر کے مابین زر مبادلہ کی شرح کا تعین کرنے کے لئے اس مجموعی قیمت سیریز کے اعداد و شمار کا استعمال جاری رکھیں گے۔

مرحلہ 3: Altcoins کی قیمت جمع کریں

اب تک ، ہمارے پاس بٹ کوائن کی قیمت کے ٹائم سیریز کے اعداد و شمار موجود ہیں۔ اگلا ، آئیے بٹ کوائن غیر ڈیجیٹل کرنسیوں ، یعنی ، الٹکوئنز کے کچھ اعداد و شمار پر ایک نظر ڈالیں۔ یقینا ، اصطلاح الٹکوئنز تھوڑا سا مبالغہ آرائی ہوسکتی ہے ، لیکن جہاں تک ڈیجیٹل کرنسیوں کی موجودہ ترقی کا تعلق ہے ، مارکیٹ ویلیو میں سب سے اوپر دس (جیسے بٹ کوائن ، ایتھریم ، ای او ایس ، یو ایس ڈی ٹی ، وغیرہ) کے علاوہ ، ان میں سے بیشتر کو الٹکوئن کہا جاسکتا ہے۔ ہمیں تجارت کرتے وقت ان کرنسیوں سے دور رہنے کی کوشش کرنی چاہئے ، کیونکہ وہ بہت الجھن اور دھوکہ دہی کا باعث ہیں۔

3.1 پولونیکس ایکسچینج کے API کے ذریعے معاون افعال کی وضاحت کریں

سب سے پہلے ، ہم ڈیجیٹل کرنسی کے لین دین کی ڈیٹا کی معلومات حاصل کرنے کے لئے پولونیکس ایکسچینج کے 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&currencyPair={}&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

مندرجہ بالا فنکشن ڈیجیٹل کرنسی کا مماثل کردار کوڈ نکالے گا (جیسے BTC_ETH) اور دو کرنسیوں کی تاریخی قیمتوں پر مشتمل ڈیٹا فریم واپس کرے گا۔

3.2 پولونیکس سے لین دین کی قیمت کے اعداد و شمار ڈاؤن لوڈ کریں

الٹکوئنز کی اکثریت کو براہ راست امریکی ڈالر میں نہیں خریدا جاسکتا ہے۔ ان ڈیجیٹل کرنسیوں کو حاصل کرنے کے ل 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()

img

3.3 تمام قیمتوں کے اعداد و شمار کی کرنسی یونٹ کو امریکی ڈالر میں متحد کریں

اب، ہم بی ٹی سی اور الٹکوئنز کی شرح تبادلہ کے اعداد و شمار کو اپنے بٹ کوائن کی قیمت انڈیکس کے ساتھ جوڑ سکتے ہیں تاکہ ہر الٹکوئن کی تاریخی قیمت (امریکی ڈالر میں) کا براہ راست حساب لگایا جا سکے۔

# 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 کی متعلقہ قیمتوں کو ظاہر کرتا ہے۔

img

ایسا لگتا ہے کہ چارٹ میں کوئی مسئلہ نہیں ہے۔ یہ چارٹ ہمیں پچھلے کچھ سالوں میں ہر ڈیجیٹل کرنسی کے تبادلے کی قیمت میں ہونے والی تبدیلی کی مکمل تصویر دکھاتا ہے۔

نوٹ: یہاں ہم ایک ہی چارٹ پر تمام ڈیجیٹل کرنسیوں کا موازنہ کرنے کے لئے لوگرتھمک تفصیلات کے وائی محور کا استعمال کرتے ہیں۔ آپ ڈیٹا کو مختلف نقطہ نظر سے سمجھنے کے لئے مختلف پیرامیٹرز (جیسے پیمانہ = لکیری ) بھی آزما سکتے ہیں۔

3.4 رابطے کا تجزیہ شروع کریں

محتاط قارئین نے شاید محسوس کیا ہوگا کہ ڈیجیٹل کرنسیوں کی قیمتیں متعلقہ معلوم ہوتی ہیں ، حالانکہ ان کی کرنسی کی قیمتیں وسیع پیمانے پر مختلف ہوتی ہیں اور انتہائی اتار چڑھاؤ والی ہوتی ہیں۔ خاص طور پر اپریل 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')

img

مندرجہ بالا چارٹ میں ارتباط ضارب دکھایا گیا ہے۔ جب ضارب 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")

img

یہاں ، سیاہ سرخ قدر مضبوط ارتباط کی نمائندگی کرتی ہے (ہر کرنسی ظاہر ہے کہ خود کے ساتھ انتہائی وابستہ ہے) ، اور سیاہ نیلے رنگ کی قدر الٹا ارتباط کی نمائندگی کرتی ہے۔ وسط میں تمام رنگ - ہلکے نیلے / نارنجی / سرمئی / ٹونی - کی قدر ہوتی ہے جو کمزور ارتباط یا عدم ارتباط کی مختلف ڈگری کی نمائندگی کرتی ہے۔

یہ چارٹ ہمیں کیا بتاتا ہے؟ بنیادی طور پر، یہ 2016 میں مختلف ڈیجیٹل کرنسیوں کی قیمتوں میں اتار چڑھاؤ دکھاتا ہے، جس میں اعداد و شمار کے لحاظ سے کوئی اہم تعلق نہیں ہے۔

اب، ہمارے مفروضے کی تصدیق کرنے کے لیے کہ ڈیجیٹل کرنسی کا تعلق حالیہ مہینوں میں بڑھ گیا ہے، ہم 2017 کے اعداد و شمار کو استعمال کریں گے تاکہ ایک ہی ٹیسٹ کو دہرائیں۔

combined_df_2017 = combined_df[combined_df.index.year == 2017]
combined_df_2017.pct_change().corr(method='pearson')

img

کیا مذکورہ بالا اعداد و شمار زیادہ متعلقہ ہیں؟ کیا وہ سرمایہ کاری کے فیصلے کے معیار کے طور پر استعمال کرنے کے لئے کافی ہیں؟ جواب نہیں ہے۔

تاہم، یہ نوٹ کرنے کے قابل ہے کہ تقریبا تمام ڈیجیٹل کرنسیوں کو تیزی سے منسلک کیا گیا ہے.

correlation_heatmap(combined_df_2017.pct_change(), "Cryptocurrency Correlations in 2017")

img

جیسا کہ ہم مندرجہ بالا چارٹ سے دیکھ سکتے ہیں، چیزیں زیادہ سے زیادہ دلچسپ ہو رہی ہیں.

ایسا کیوں ہوتا ہے؟

اچھا سوال! لیکن سچ تو یہ ہے، مجھے یقین نہیں ہے...

میرا پہلا رد عمل یہ ہے کہ ہیج فنڈز نے حال ہی میں ڈیجیٹل کرنسی مارکیٹ میں عوامی طور پر تجارت شروع کی ہے۔ یہ فنڈز عام تاجروں کے مقابلے میں بہت زیادہ سرمایہ رکھتے ہیں۔ جب کوئی فنڈ متعدد ڈیجیٹل کرنسیوں کے مابین اپنے سرمایہ کاری شدہ سرمائے کو ہیج کرتا ہے تو ، وہ ہر کرنسی کے لئے آزاد متغیرات (جیسے اسٹاک مارکیٹ) کے مطابق اسی طرح کی تجارتی حکمت عملی استعمال کرتا ہے۔ اس نقطہ نظر سے ، یہ سمجھ میں آتا ہے کہ بڑھتی ہوئی وابستگی کا یہ رجحان واقع ہوگا۔

XRP اور STR کی گہری تفہیم

مثال کے طور پر ، مندرجہ بالا چارٹ سے یہ ظاہر ہوتا ہے کہ ایکس آر پی (ریپل ٹوکن) کا دیگر ڈیجیٹل کرنسیوں کے ساتھ کم سے کم تعلق ہے۔ تاہم ، ایک قابل ذکر استثنا ایس ٹی آر (سٹلر ٹوکن ، جسے سرکاری طور پر لیمنز کے نام سے جانا جاتا ہے) ہے ، جس کا ایکس آر پی (معاونیت کا گتانک: 0.62) کے ساتھ مضبوط تعلق ہے۔

دلچسپ بات یہ ہے کہ اسٹیلر اور ریپل بہت ہی ملتے جلتے مالیاتی ٹکنالوجی پلیٹ فارم ہیں ، جن کا مقصد دونوں بینکوں کے مابین سرحد پار منتقلی کے سست مراحل کو کم کرنا ہے۔ یہ تصور کیا جاسکتا ہے کہ کچھ بڑے کھلاڑی اور ہیج فنڈز اسٹیلر اور ریپل میں اپنی سرمایہ کاری کے لئے اسی طرح کی تجارتی حکمت عملی استعمال کرسکتے ہیں ، بلاکچین خدمات کے ذریعہ استعمال ہونے والے ٹوکن کی مماثلت پر غور کرتے ہوئے۔ اس کی وجہ یہ ہوسکتی ہے کہ ایکس آر پی دیگر ڈیجیٹل کرنسیوں کے مقابلے میں ایس ٹی آر کے لئے زیادہ متعلقہ ہے۔

ٹھیک ہے، یہ آپ کی باری ہے!

مذکورہ بالا وضاحتیں زیادہ تر قیاس آرائیاں ہیں ، اور آپ بہتر کر سکتے ہیں۔ ہماری بنیادوں کی بنیاد پر ، آپ کے پاس اعداد و شمار میں موجود کہانیوں کی کھوج جاری رکھنے کے سینکڑوں مختلف طریقے ہیں۔

ذیل میں میری کچھ تجاویز ہیں۔ قارئین تحقیق کو مندرجہ ذیل سمتوں میں دیکھ سکتے ہیں:

  • مزید ڈیجیٹل کرنسی کے اعداد و شمار کو پورے تجزیہ میں شامل کریں.
  • ہم آہنگی کے تجزیہ کی وقت کی حد اور granularity کو ایڈجسٹ کریں تاکہ ایک بہتر یا بڑے دانے دار رجحان کا نظارہ حاصل کیا جاسکے۔
  • تجارتی مقدار یا بلاکچین ڈیٹا مائننگ سے رجحانات تلاش کریں۔ اصل قیمت کے اعداد و شمار کے مقابلے میں ، اگر آپ مستقبل کی قیمتوں میں اتار چڑھاؤ کی پیش گوئی کرنا چاہتے ہیں تو ، آپ کو خرید / فروخت کی مقدار کے تناسب کے اعداد و شمار کی ضرورت ہوسکتی ہے۔
  • اسٹاک ، اجناس اور فئیےٹ کرنسیوں میں قیمت کے اعداد و شمار کو شامل کریں تاکہ یہ معلوم کیا جاسکے کہ ان میں سے کون ڈیجیٹل کرنسیوں کے لئے متعلقہ ہے (لیکن پرانی کہاوت کو مت بھولنا تعلقات کا مطلب اسباب کا مطلب نہیں ہے) ۔
  • ایونٹ رجسٹری، جی ڈی ای ایل ٹی اور گوگل ٹرینڈز کا استعمال کسی مخصوص ڈیجیٹل کرنسی کے ارد گرد hot words کی تعداد کو مقداری بنانے کے لئے کریں۔
  • اعداد و شمار کا استعمال کل کی قیمتوں کی پیش گوئی کے لئے پیش گوئی کرنے والے مشین لرننگ ماڈل کو تربیت دینے کے لئے کریں۔ اگر آپ زیادہ پرجوش ہیں تو ، آپ مذکورہ بالا تربیت کے لئے بار بار چلنے والے اعصابی نیٹ ورک (آر این این) کا استعمال کرنے پر بھی غور کرسکتے ہیں۔
  • اپنے تجزیہ کا استعمال کرتے ہوئے ایک خودکار تجارتی روبوٹ بنائیں ، جسے متعلقہ ایپلی کیشن پروگرامنگ انٹرفیس (API) کے ذریعے Poloniex یا Coinbase کی تبادلے کی ویب سائٹ پر لاگو کیا جاسکتا ہے۔ براہ کرم محتاط رہیں: ناقص کارکردگی کا مظاہرہ کرنے والا روبوٹ آپ کے اثاثوں کو فوری طور پر آسانی سے تباہ کرسکتا ہے۔ FMZ Quant پلیٹ فارم (FMZ.COM) کی سفارش کی جاتی ہے.

عام طور پر بٹ کوائن اور ڈیجیٹل کرنسی کے بارے میں سب سے اچھی بات ان کی غیر مرکزی نوعیت ہے ، جو اسے کسی بھی دوسرے اثاثے سے زیادہ آزاد اور جمہوری بنا دیتی ہے۔ آپ اپنے تجزیے کو اوپن سورس شیئر کرسکتے ہیں ، کمیونٹی میں حصہ لے سکتے ہیں ، یا بلاگ لکھ سکتے ہیں۔ مجھے امید ہے کہ آپ نے خود تجزیہ کے لئے درکار مہارتوں پر عبور حاصل کرلیا ہے اور مستقبل میں کسی بھی قیاس آرائی کی ڈیجیٹل کرنسی کے مضامین کو پڑھنے کے دوران ڈائیلیکٹک سوچنے کی صلاحیت حاصل کرلی ہے ، خاص طور پر ان پیش گوئیوں کو بغیر اعداد و شمار کی حمایت کے۔ پڑھنے کے لئے شکریہ۔ اگر آپ کے پاس اس سبق کے بارے میں کوئی تبصرے ، تجاویز یا تنقید ہیں تو ، براہ کرم ایک پیغام چھوڑیں۔https://www.fmz.com/bbs.


متعلقہ

مزید