0
پر توجہ دیں
78
پیروکار

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

میں تخلیق کیا: 2019-08-16 10:37:23, تازہ کاری: 2023-10-19 21:04:20
comments   3
hits   3748

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

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

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

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

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

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

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

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

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

1.1 موجد کوانٹ ہوسٹ انسٹال کریں اور ایناکونڈا سیٹ اپ کریں۔

  • کوانٹیفائیڈ کسٹوڈین سسٹم کا موجد

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

مندرجہ بالا تمام افعال ڈوکر کی طرح ایک سسٹم میں شامل ہیں ہمیں اپنی کلاؤڈ کمپیوٹنگ سروس کو خریدنا یا کرایہ پر لینا ہے اور پھر ڈوکر سسٹم کو تعینات کرنا ہے۔

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

میزبانوں اور روبوٹس کو تعینات کرنے کے طریقے کے بارے میں مزید معلومات کے لیے، براہ کرم میرا سابقہ ​​مضمون دیکھیں: https://www.fmz.com/bbs-topic/4140

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

کلاؤڈ کمپیوٹنگ سروس اور ہوسٹ سسٹم کو کامیابی کے ساتھ تعینات کرنے کے بعد، ہم سب سے طاقتور Python ٹول انسٹال کریں گے: ایناکونڈا

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

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

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

اگر آپ ایک تجربہ کار Python پروگرامر ہیں اور Anaconda استعمال کرنے کی ضرورت محسوس نہیں کرتے ہیں تو یہ بالکل ٹھیک ہے۔ میں فرض کروں گا کہ آپ کو مطلوبہ انحصار کو انسٹال کرنے میں مدد کی ضرورت نہیں ہے اور آپ حصہ 2 پر جا سکتے ہیں۔

1.2 ایناکونڈا ڈیٹا تجزیہ پروجیکٹ کا ماحول بنائیں

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

conda create --name cryptocurrency-analysis python=3

آئیے اپنے پروجیکٹ کے لیے ایک نیا ایناکونڈا ماحول بنائیں۔

اگلا، درج کریں

source activate cryptocurrency-analysis (linux/MacOS操作)
或者
activate cryptocurrency-analysis (windows操作系统)

اس ماحول کو چالو کرنے کے لیے

اگلا، درج کریں:

conda install numpy pandas nb_conda jupyter plotly

اس پروجیکٹ کے لیے درکار مختلف انحصار پیکجوں کو انسٹال کرنے کے لیے۔

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

1.3 ایک Jupyter نوٹ بک بنائیں

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

jupyter notebook

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

Python [conda env:cryptocurrency-analysis]

دانا

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

1.4 منحصر پیکجوں کو درآمد کرنا

ایک نئی خالی Jupyter نوٹ بک بنائیں، اور سب سے پہلی چیز جو ہمیں کرنے کی ضرورت ہے وہ ہے مطلوبہ انحصار پیکجز درآمد کریں۔

import os
import numpy as np
import pandas as pd
import pickle
from datetime import datetime

ہمیں پلاٹلی درآمد کرنے اور آف لائن موڈ کو فعال کرنے کی بھی ضرورت ہے۔

import plotly.offline as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
py.init_notebook_mode(connected=True)

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

اب جب کہ تیاریاں مکمل ہو چکی ہیں، ہم تجزیہ کرنے کے لیے ڈیٹا حاصل کرنا شروع کر سکتے ہیں۔ سب سے پہلے، ہمیں Bitcoin کی قیمت کا ڈیٹا حاصل کرنے کے لیے Inventor Quantitative پلیٹ فارم کا API انٹرفیس استعمال کرنے کی ضرورت ہے۔

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

2.1 Quandl ڈیٹا اکٹھا کرنے کا فنکشن لکھیں۔

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

ریئل ٹائم میں ٹریڈنگ کرتے وقت، آپ قیمت کا ڈیٹا حاصل کرنے کے لیے Python میں GetTicker اور GetRecords فنکشنز کو براہِ راست کال کر سکتے ہیں: https://www.fmz.com/api

def get_quandl_data(quandl_id):
    # 下载和缓冲来自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 کریکن ایکسچینج سے کریپٹو کرنسی کی قیمت کا ڈیٹا حاصل کرنا

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

# 获取Kraken比特币交易所的价格
btc_usd_price_kraken = get_quandl_data('BCHARTS/KRAKENUSD')

ڈیٹا فریم کی پہلی پانچ قطاریں دیکھنے کے لیے head() طریقہ استعمال کریں۔

btc_usd_price_kraken.head()

نتیجہ یہ ہے:

BTC Open High Low Close Volume (BTC) Volume (Currency) Weighted Price
2014-01-07 874.67040 892.06753 810.00000 810.00000 15.622378 13151.472844 841.835522
2014-01-08 810.00000 899.84281 788.00000 824.98287 19.182756 16097.329584 839.156269
2014-01-09 825.56345 870.00000 807.42084 841.86934 8.158335 6784.249982 831.572913
2014-01-10 839.99000 857.34056 817.00000 857.33056 8.024510 6780.220188 844.938794
2014-01-11 858.20000 918.05471 857.16554 899.84105 18.748285 16698.566929 890.671709

اگلا، ہمیں تصور کے ذریعے ڈیٹا کی درستگی کی تصدیق کرنے کے لیے ایک سادہ ٹیبل بنانے کی ضرورت ہے۔

# 做出BTC价格的表格
btc_trace = go.Scatter(x=btc_usd_price_kraken.index, y=btc_usd_price_kraken['Weighted Price'])
py.iplot([btc_trace])

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

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

ٹپ: آپ تیار کردہ چارٹ کا موازنہ کسی بڑے ایکسچینج (جیسے OKEX، Binance، یا Huobi پر) سے بٹ کوائن کی قیمت کے چارٹ کے ساتھ کر سکتے ہیں تاکہ اس بات کی تصدیق کی جا سکے کہ ڈاؤن لوڈ کردہ ڈیٹا تقریباً مطابقت رکھتا ہے۔

2.3 بڑے بٹ کوائن ایکسچینجز سے قیمت کا ڈیٹا حاصل کرنا

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

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

آئیے ہر ایک ایکسچینج کے ڈیٹا کو ایک لغت کی قسم پر مشتمل ڈیٹا فریم میں ڈاؤن لوڈ کرکے شروع کریں۔

# 下载COINBASE,BITSTAMP和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)

اب، ہر ڈیٹاسیٹ کے “ویٹڈ پرائس” کالم کی بنیاد پر تمام ڈیٹا فریمز کو اکٹھا کریں۔

# 整合所有数据帧
btc_usd_datasets = merge_dfs_on_column(list(exchange_data.values()), list(exchange_data.keys()), 'Weighted Price')

آخر میں، ہم ضم شدہ ڈیٹا کی آخری پانچ قطاریں دیکھنے کے لیے “tail()” طریقہ استعمال کرتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ ڈیٹا درست اور مکمل ہے۔

btc_usd_datasets.tail()

نتیجہ یہ ہے:

BTC BITSTAMP COINBASE ITBIT KRAKEN
2017-08-14 4210.154943 4213.332106 4207.366696 4213.257519
2017-08-15 4101.447155 4131.606897 4127.036871 4149.146996
2017-08-16 4193.426713 4193.469553 4190.104520 4187.399662
2017-08-17 4338.694675 4334.115210 4334.449440 4346.508031
2017-08-18 4182.166174 4169.555948 4175.440768 4198.277722

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

2.5 قیمت کے ڈیٹا کو دیکھنے کا عمل

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

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'
        
    # 每个系列的表格跟踪
    trace_arr = []
    for index, series in enumerate(series_arr):
        trace = go.Scatter(
            x=series.index, 
            y=series, 
            name=label_arr[index],
            visible=visibility
        )
        
        # 为系列添加单独的轴
        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)

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

اب ہم آسانی سے بٹ کوائن کی قیمت کے ڈیٹا کے گراف بنا سکتے ہیں!

# 绘制所有BTC交易价格
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

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

2.6 صاف اور مجموعی قیمت کا ڈیٹا

جیسا کہ آپ اوپر کے گراف سے دیکھ سکتے ہیں، اگرچہ چار سیریز تقریباً ایک ہی راستے پر چلتی ہیں، لیکن ان میں کچھ بے ضابطگیاں ہیں، جنہیں ہم صاف کرنے کی کوشش کریں گے۔

2012-2017 کے عرصے میں، ہم جانتے ہیں کہ Bitcoin کی قیمت کبھی بھی صفر کے برابر نہیں رہی، اس لیے ہم سب سے پہلے ڈیٹا فریم میں تمام صفر کی قدروں کو ہٹاتے ہیں۔

# 清除"0"值
btc_usd_datasets.replace(0, np.nan, inplace=True)

ڈیٹا فریم کو دوبارہ بنانے کے بعد، ہم ایک بہت واضح گراف دیکھ سکتے ہیں جس میں ڈیٹا غائب نہیں ہے۔

# 绘制修订后的数据框
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

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

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

# 将平均BTC价格计算为新列
btc_usd_datasets['avg_btc_price_usd'] = btc_usd_datasets.mean(axis=1)

نیا کالم بٹ کوائن پرائس انڈیکس ہے! آئیے یہ چیک کرنے کے لیے دوبارہ پلاٹ کریں کہ آیا ڈیٹا میں کچھ گڑبڑ نظر آتی ہے۔

# 绘制平均BTC价格
btc_trace = go.Scatter(x=btc_usd_datasets.index, y=btc_usd_datasets['avg_btc_price_usd'])
py.iplot([btc_trace])

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

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

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

ابھی تک، ہمارے پاس Bitcoin کی قیمتوں کے لیے ٹائم سیریز کا ڈیٹا موجود ہے۔ اس کے بعد، آئیے غیر بٹ کوائن ڈیجیٹل کرنسیوں پر کچھ ڈیٹا دیکھتے ہیں، یعنی altcoins کی صورت حال، یقیناً، altcoin کی اصطلاح تھوڑی بہت مضبوط ہو سکتی ہے، لیکن مارکیٹ کیپٹلائزیشن کی درجہ بندی کے علاوہ، ڈیجیٹل کرنسیوں کی موجودہ ترقی کے لیے۔ ٹاپ ٹین (جیسے Bitcoin، Ethereum، EOS، USDT، وغیرہ) میں کوئی حرج نہیں ہے کہ ہمیں ان کرنسیوں سے دور رہنے کی کوشش کرنی چاہیے کیونکہ یہ بہت زیادہ مبہم ہیں۔

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

سب سے پہلے، ہم ڈیجیٹل کرنسی کے لین دین پر ڈیٹا کی معلومات حاصل کرنے کے لیے Poloniex ایکسچینج کا API استعمال کرتے ہیں۔ ہم altcoins کے متعلقہ ڈیٹا کو حاصل کرنے کے لیے دو معاون فنکشنز کی وضاحت کرتے ہیں یہ دونوں فنکشنز بنیادی طور پر API کے ذریعے JSON ڈیٹا کو ڈاؤن لوڈ اور کیش کرتے ہیں۔

سب سے پہلے، ہم get_json_data فنکشن کی وضاحت کرتے ہیں، جو دیئے گئے یو آر ایل سے 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

اگلا، ہم ایک نئے فنکشن کی وضاحت کرتے ہیں جو Poloniex 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') # 从2015年开始获取数据
end_date = datetime.now() # 直到今天
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

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

3.2 Poloniex سے لین دین کی قیمت کا ڈیٹا ڈاؤن لوڈ کرنا

زیادہ تر altcoins کو براہ راست امریکی ڈالر کا استعمال کرتے ہوئے نہیں خریدا جا سکتا ہے، اگر افراد یہ ڈیجیٹل کرنسی حاصل کرنا چاہتے ہیں، تو انہیں عام طور پر پہلے Bitcoin خریدنا پڑتا ہے اور پھر ان کے درمیان قیمت کے تناسب کی بنیاد پر ان کا تبادلہ کرنا پڑتا ہے۔ لہذا، ہمیں ہر ایک ڈیجیٹل کرنسی کی شرح تبادلہ کو Bitcoin میں ڈاؤن لوڈ کرنا ہوگا، اور پھر موجودہ Bitcoin قیمت کے ڈیٹا کو امریکی ڈالر میں تبدیل کرنے کے لیے استعمال کرنا ہوگا۔ ہم 9 ٹاپ کریپٹو کرنسیوں کے لیے لین دین کا ڈیٹا ڈاؤن لوڈ کریں گے: Ethereum, Litecoin, Ripple, EthereumClassic, Stellar, Dash, Siacoin, Monero, اور NEM۔

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 کے درمیان تاریخی یومیہ اوسط قیمت کا ڈیٹا ہوتا ہے۔

ہم Ethereum پرائس ٹیبل کی آخری چند قطاروں کو دیکھ کر اس بات کا تعین کر سکتے ہیں کہ آیا ڈیٹا درست ہے۔

altcoin_data['ETH'].tail()
ETH Open High Low Close Volume (BTC) Volume (Currency) Weighted Price
2017-08-18 0.070510 0.071000 0.070170 0.070887 17364.271529 1224.762684 0.070533
2017-08-18 0.071595 0.072096 0.070004 0.070510 26644.018123 1893.136154 0.071053
2017-08-18 0.071321 0.072906 0.070482 0.071600 39655.127825 2841.549065 0.071657
2017-08-19 0.071447 0.071855 0.070868 0.071321 16116.922869 1150.361419 0.071376
2017-08-19 0.072323 0.072550 0.071292 0.071447 14425.571894 1039.596030 0.072066

3.3 قیمت کا تمام ڈیٹا امریکی ڈالر میں ظاہر کیا جانا چاہیے۔

اب ہم ہر altcoin کی تاریخی قیمت کا USD میں براہ راست حساب لگانے کے لیے BTC کو altcoin کے ایکسچینج ریٹ ڈیٹا کو اپنے Bitcoin پرائس انڈیکس کے ساتھ جوڑ سکتے ہیں۔

# 将USD Price计算为每个altcoin数据帧中的新列
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 فنکشن کو دوبارہ استعمال کر سکتے ہیں جس کی ہم نے پہلے وضاحت کی تھی ایک ضم شدہ ڈیٹا فریم بنانے کے لیے جو ہر کریپٹو کرنسی کی USD قیمت کو مربوط کرتا ہے۔

# 将每个山寨币的美元价格合并为单个数据帧
combined_df = merge_dfs_on_column(list(altcoin_data.values()), list(altcoin_data.keys()), 'price_usd')

ہو گیا!

اب آئیے ضم شدہ ڈیٹا فریم میں آخری کالم کے طور پر بٹ کوائن کی قیمت بھی شامل کریں۔

# 将BTC价格添加到数据帧
combined_df['BTC'] = btc_usd_datasets['avg_btc_price_usd']

اب ہمارے پاس ایک منفرد ڈیٹا فریم ہے جس میں دس کریپٹو کرنسیوں کے لیے یومیہ USD کی قیمتیں شامل ہیں جن کی ہم تصدیق کر رہے ہیں۔

تمام altcoins کی متعلقہ قیمتوں کو چارٹ کی شکل میں ظاہر کرنے کے لیے ہم پچھلے فنکشن df_scatter کو دوبارہ کال کرتے ہیں۔

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

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

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

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

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

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

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

2017.8.22 نظرثانی نوٹ: اس سیکشن میں ترمیم کی گئی تھی تاکہ ارتباط کے گتانک کا حساب لگاتے وقت مطلق قیمتوں کے بجائے روزانہ کی واپسی کو استعمال کیا جا سکے۔

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

مثال کے طور پر، آئیے 2016 کے لیے ارتباط کے گتانک کا حساب لگاتے ہیں۔

# 计算2016年数字货币的皮尔森相关系数
combined_df_2016 = combined_df[combined_df.index.year == 2016]
combined_df_2016.pct_change().corr(method='pearson')
Name DASH ETC ETH LTC SC STR XEM XMR XRP BTC
DASH 1.000000 0.003992 0.122695 -0.012194 0.026602 0.058083 0.014571 0.121537 0.088657 -0.014040
ETC 0.003992 1.000000 -0.181991 -0.131079 -0.008066 -0.102654 -0.080938 -0.105898 -0.054095 -0.170538
ETH 0.122695 -0.181991 1.000000 -0.064652 0.169642 0.035093 0.043205 0.087216 0.085630 -0.006502
LTC -0.012194 -0.131079 -0.064652 1.000000 0.012253 0.113523 0.160667 0.129475 0.053712 0.750174
SC 0.026602 -0.008066 0.169642 0.012253 1.000000 0.143252 0.106153 0.047910 0.021098 0.035116
STR 0.058083 -0.102654 0.035093 0.113523 0.143252 1.000000 0.225132 0.027998 0.320116 0.079075
XEM 0.014571 -0.080938 0.043205 0.160667 0.106153 0.225132 1.000000 0.016438 0.101326 0.227674
XMR 0.121537 -0.105898 0.087216 0.129475 0.047910 0.027998 0.016438 1.000000 0.027649 0.127520
XRP 0.088657 -0.054095 0.085630 0.053712 0.021098 0.320116 0.101326 0.027649 1.000000 0.044161
BTC -0.014040 -0.170538 -0.006502 0.750174 0.035116 0.079075 0.227674 0.127520 0.044161 1.000000

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

اب، اپنے مفروضے کی تصدیق کرنے کے لیے کہ “حالیہ مہینوں میں کرپٹو کرنسیز زیادہ باہم مربوط ہو گئی ہیں”، ہم 2017 کے ڈیٹا کا استعمال کرتے ہوئے اسی ٹیسٹ کو دہرائیں گے۔

combined_df_2017 = combined_df[combined_df.index.year == 2017]
combined_df_2017.pct_change().corr(method='pearson')
Name DASH ETC ETH LTC SC STR XEM XMR XRP BTC
DASH 1.000000 0.384109 0.480453 0.259616 0.191801 0.159330 0.299948 0.503832 0.066408 0.357970
ETC 0.384109 1.000000 0.602151 0.420945 0.255343 0.146065 0.303492 0.465322 0.053955 0.469618
ETH 0.480453 0.602151 1.000000 0.286121 0.323716 0.228648 0.343530 0.604572 0.120227 0.421786
LTC 0.259616 0.420945 0.286121 1.000000 0.296244 0.333143 0.250566 0.439261 0.321340 0.352713
SC 0.191801 0.255343 0.323716 0.296244 1.000000 0.417106 0.287986 0.374707 0.248389 0.377045
STR 0.159330 0.146065 0.228648 0.333143 0.417106 1.000000 0.396520 0.341805 0.621547 0.178706
XEM 0.299948 0.303492 0.343530 0.250566 0.287986 0.396520 1.000000 0.397130 0.270390 0.366707
XMR 0.503832 0.465322 0.604572 0.439261 0.374707 0.341805 0.397130 1.000000 0.213608 0.510163
XRP 0.066408 0.053955 0.120227 0.321340 0.248389 0.621547 0.270390 0.213608 1.000000 0.170070
BTC 0.357970 0.469618 0.421786 0.352713 0.377045 0.178706 0.366707 0.510163 0.170070 1.000000

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

تاہم، یہ بات قابل توجہ ہے کہ تقریباً تمام کریپٹو کرنسی تیزی سے ایک دوسرے سے جڑی ہوئی ہیں۔

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

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

جیسا کہ آپ اوپر کی تصویر سے دیکھ سکتے ہیں، چیزیں زیادہ سے زیادہ دلچسپ ہوتی جا رہی ہیں۔

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

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

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

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

مثال کے طور پر، مندرجہ بالا چارٹ سے، یہ واضح ہے کہ XRP (Ripple’s token) دیگر کریپٹو کرنسیوں کے ساتھ سب سے کم مربوط ہے۔ لیکن یہاں ایک قابل ذکر رعایت STR (سٹیلر کا ٹوکن، جسے سرکاری طور پر “Lumens” کہا جاتا ہے) ہے، جس کا XRP (رابطہ عدد: 0.62) کے ساتھ مضبوط تعلق ہے۔

دلچسپ بات یہ ہے کہ اسٹیلر اور ریپل بہت ملتے جلتے فنٹیک پلیٹ فارمز ہیں جو دونوں کا مقصد سرحدوں کے پار بینکوں کے درمیان رقم کی منتقلی میں شامل بوجھل اقدامات کو کم کرنا ہے۔ یہ بات قابل فہم ہے کہ کچھ بڑے کھلاڑی اور ہیج فنڈز اسٹیلر اور ریپل میں اپنی سرمایہ کاری کے لیے اسی طرح کی تجارتی حکمت عملی استعمال کر سکتے ہیں، بلاکچین سروسز کے ذریعے استعمال کیے جانے والے ٹوکنز کی مماثلت کے پیش نظر۔ یہی وجہ ہے کہ XRP کا دیگر cryptocurrencies کے مقابلے STR کے ساتھ زیادہ مضبوط تعلق ہے۔

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

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

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

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

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