اس مضمون میں ڈیجیٹل کرنسیوں کی اعلی تعدد ٹریڈنگ کی حکمت عملیوں پر تبادلہ خیال کیا گیا ہے ، بشمول منافع کے ذرائع (بنیادی طور پر مارکیٹ میں شدید اتار چڑھاؤ اور ایکسچینج کی فیسوں کی واپسی سے) ، ہنگ پوزیشنوں اور پوزیشن کنٹرول کے مسائل ، اور پارٹیٹو تقسیم کے ذریعہ ٹرانزیکشنز کو ماڈل کرنے کے طریقوں پر۔ اس کے علاوہ ، بینآن کے ذریعہ فراہم کردہ ہر ایک ٹرانزیکشن اور بہترین ہنگ آرڈر ڈیٹا کا حوالہ دیا گیا ہے ، اور اس کے بعد کے مضامین میں اعلی تعدد ٹریڈنگ کی حکمت عملی کے دیگر مسائل پر گہرائی سے تبادلہ خیال کرنے کا ارادہ ہے۔
میں نے پہلے دو مضامین لکھے ہیں جو کہ ڈیجیٹل کرنسیوں کی اعلی تعدد تجارت کے بارے میں ہیں۔ڈیجیٹل کرنسی کی اعلی تعدد کی حکمت عملی کا تفصیلی تعارف, 5 وٹامن 80 گنا زیادہ، ہائی فریکوئنسی حکمت عملی کی طاقتلیکن یہ صرف تجربے کا اشتراک اور عام طور پر بات کرنے کے لئے ہے۔ اس بار میں نے ایک سلسلہ تحریر کرنے کا ارادہ کیا ہے ، شروع سے ہی اعلی تعدد تجارت کے بارے میں خیال پیش کرنے کے لئے ، امید ہے کہ میں جتنا ممکن ہو سکے مختصر طور پر واضح کروں گا ، لیکن اپنی محدود سطح کی وجہ سے ، اعلی تعدد تجارت کے بارے میں گہری تفہیم نہیں ہے ، اس مضمون میں صرف اشارے کے جوتے ڈالے گئے ہیں ، امید ہے کہ داؤد صحیح ہیں۔
پچھلے مضامین میں ذکر کیا گیا ہے کہ ہائی فریکوئنسی حکمت عملی خاص طور پر مارکیٹوں میں بہت تیزی سے اتار چڑھاؤ والی مارکیٹوں کے لئے موزوں ہے۔ مجموعی رجحانات اور اتار چڑھاؤ پر مشتمل مختصر وقت میں قیمتوں میں تبدیلیوں کا جائزہ لیں۔ اگر ہم رجحانات کی تبدیلیوں کی درست پیش گوئی کرسکتے ہیں تو ، یقینا money پیسہ کمانا ممکن ہے ، لیکن یہ سب سے مشکل بھی ہے۔ اس مضمون میں بنیادی طور پر ہائی فریکوئنسی بنانے والے کی حکمت عملیوں کا ذکر کیا گیا ہے ، اس مسئلے سے گریز کیا جائے گا۔ اتار چڑھاؤ کی صورتحال میں ، حکمت عملی پر آرڈر دینے کی حکمت عملی ، اگر تجارت کافی کثرت سے ہوتی ہے ، تو منافع کی گنجائش کافی بڑی ہوتی ہے ، جو رجحانات کی وجہ سے ہونے والے ممکنہ نقصانات کا احاطہ کرسکتی ہے ، لہذا غیر پیش گوئی کرنے والے تجارت بھی منافع بخش ہوسکتے ہیں۔ فی الحال تجارت میں تجارت کی واپسی کی فیس بھی ہوتی ہے ، جو منافع کا ایک جزو بھی ہے ، اور جتنا زیادہ مقابلہ ہوتا ہے ، اتنا ہی ریبیٹ کا تناسب بھی ہونا چاہئے۔
1.策略同时挂买单和卖单,第一个问题就是在哪里挂单。挂的离盘口越近,成交的概率越高,但在剧烈波动的行情中,瞬间成交的价格可能离盘口较远,挂的那太近没有能吃到足够的利润。挂的太远的单子成交概率又低。这是一个需要优化的问题。
2.控制仓位。为了控制风险,策略就不能长时间累计过多的仓位。可以通过控制挂单距离、挂单量、总仓位限制等办法解决。
مندرجہ بالا مقاصد کو حاصل کرنے کے لئے ، تجارت کے امکانات کے امکانات ، تجارت کے منافع ، مارکیٹ کے تخمینوں وغیرہ کے متعدد پہلوؤں کا ماڈلنگ تخمینہ لگانے کی ضرورت ہوتی ہے ، اس سلسلے میں بہت سارے مضامین اور مقالے موجود ہیں ، جن میں ہائی فریکوئنسی ٹریڈنگ ، آرڈر بک ، وغیرہ جیسے مطلوبہ الفاظ پائے جاسکتے ہیں۔ آن لائن بھی بہت ساری سفارشات ہیں ، یہاں یہ کام نہیں کرتا ہے۔ اس کے علاوہ ، یہ بھی بہتر ہے کہ ایک قابل اعتماد تیز رفتار بیک ٹیسٹنگ سسٹم بنایا جائے ، اگرچہ ہائی فریکوئنسی حکمت عملی کو عملی طور پر حکمت عملی کی تاثیر کی تصدیق کرنا آسان ہے ، لیکن بیک ٹیسٹنگ پھر بھی زیادہ راستہ فراہم کرتی ہے ، غلط فہمیوں کی لاگت کو کم کرتی ہے۔
بینان نے ایک ایک کرکے ٹرانزیکشنز اور سب سے زیادہ مطلوبہ اعداد و شمار فراہم کیے ہیں۔ڈاؤن لوڈ کریں، گہرائی کے اعداد و شمار کو اے پی آئی کے ساتھ ڈاؤن لوڈ کرنے کی ضرورت ہوتی ہے جو سفید فہرست میں ہے ، یا پھر خود ہی جمع کیا جاسکتا ہے۔ دوبارہ جانچ پڑتال کے مقاصد کے لئے مجموعی طور پر استعمال ہونے والے ٹرانزیکشن ڈیٹا کو استعمال کیا جاسکتا ہے۔ اس مضمون میں HOOKUSDT-aggTrades-2023-01-27 کے اعداد و شمار کی مثال دی گئی ہے۔
from datetime import date,datetime
import time
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
ہر ایک کے لئے مندرجہ ذیل معاملات ہیں:
اس دن 660,000 سے زیادہ ٹرانزیکشنز کا ڈیٹا دیکھا جا سکتا ہے، اور یہ ٹرانزیکشنز فعال ہیں۔ csv تبصرے کے علاقے میں شامل کیا جائے گا۔
trades = pd.read_csv('COMPUSDT-aggTrades-2023-07-02.csv')
trades
664475 صفیں × 7 کالم
agg_trade_id | قیمت | مقدار | پہلا_ٹریڈ_آئی ڈی | last_trade_id | ٹرانزیکشن_ٹائم | is_buyer_maker |
---|---|---|---|---|---|---|
120719552 | 52.42 | 22.087 | 207862988 | 207862990 | 1688256004603 | غلط |
120719553 | 52.41 | 29.314 | 207862991 | 207863002 | 1688256004623 | سچ |
120719554 | 52.42 | 0.945 | 207863003 | 207863003 | 1688256004678 | غلط |
120719555 | 52.41 | 13.534 | 207863004 | 207863006 | 1688256004680 | سچ |
… | … | … | … | … | … | … |
121384024 | 68.29 | 10.065 | 210364899 | 210364905 | 1688342399863 | غلط |
121384025 | 68.30 | 7.078 | 210364906 | 210364908 | 1688342399948 | غلط |
121384026 | 68.29 | 7.622 | 210364909 | 210364911 | 1688342399979 | سچ |
پہلے اعداد و شمار پر کارروائی کی جاتی ہے ، اور بنیادی تجارت کو ادائیگی کے لئے متحرک تبادلہ گروپ اور فروخت کے لئے متحرک تبادلہ گروپ میں تقسیم کیا جاتا ہے۔ دوسری طرف ، بنیادی مجموعی تجارت کے اعداد و شمار ایک ہی وقت میں ایک ہی قیمت پر ایک ہی سمت میں ایک ہی اعداد و شمار ہیں ، ایک متحرک تبادلہ کی مقدار 100 ہوسکتی ہے ، اگر متعدد معاملات میں تقسیم کیا جاتا ہے اور قیمتیں مختلف ہوتی ہیں ، جیسے 60 اور 40 کے لئے تقسیم کیا جاتا ہے تو ، دو اعداد و شمار پیدا ہوجاتے ہیں ، جو ادائیگی کے حجم کے تخمینے کو متاثر کرتے ہیں۔ لہذا ، ٹرانزیکٹ ٹائم کے مطابق ایک بار پھر مجموعی طور پر جمع کرنے کی ضرورت ہے۔ مجموعی کے بعد ، اعداد و شمار کی مقدار میں 140،000 سے زیادہ کمی واقع ہوتی ہے۔
trades['date'] = pd.to_datetime(trades['transact_time'], unit='ms')
trades.index = trades['date']
buy_trades = trades[trades['is_buyer_maker']==False].copy()
sell_trades = trades[trades['is_buyer_maker']==True].copy()
buy_trades = buy_trades.groupby('transact_time').agg({
'agg_trade_id': 'last',
'price': 'last',
'quantity': 'sum',
'first_trade_id': 'first',
'last_trade_id': 'last',
'is_buyer_maker': 'last',
'date': 'last',
'transact_time':'last'
})
sell_trades = sell_trades.groupby('transact_time').agg({
'agg_trade_id': 'last',
'price': 'last',
'quantity': 'sum',
'first_trade_id': 'first',
'last_trade_id': 'last',
'is_buyer_maker': 'last',
'date': 'last',
'transact_time':'last'
})
buy_trades['interval']=buy_trades['transact_time'] - buy_trades['transact_time'].shift()
sell_trades['interval']=sell_trades['transact_time'] - sell_trades['transact_time'].shift()
print(trades.shape[0] - (buy_trades.shape[0]+sell_trades.shape[0]))
146181
مثال کے طور پر ادائیگی کے لئے ، پہلے سیدھے نقشے کو ڈراؤ۔ آپ کو لمبے دم کے اثرات بہت واضح نظر آتے ہیں ، زیادہ تر اعداد و شمار کا مرکز بائیں طرف تھوڑا سا ہے ، لیکن اس کے علاوہ بھی چھوٹی بڑی تجارتیں دم پر پھیلی ہوئی ہیں۔
buy_trades['quantity'].plot.hist(bins=200,figsize=(10, 5));
为了观察方便,截掉尾部观察.可以看到成交量越大,出现频率越低,且减少的趋势更快。
buy_trades['quantity'][buy_trades['quantity']<200].plot.hist(bins=200,figsize=(10, 5));
ٹرانزیکشن سے مطمئن تقسیم کے بارے میں بہت ساری تحقیق کی گئی ہے۔ پاور لا ڈسٹری بیوشن (انگریزی: Power-law distribution) جسے پاریتو ڈسٹری بیوشن بھی کہا جاتا ہے، شماریاتی طبیعیات اور سماجی علوم میں ایک عام قسم کی احتمال تقسیم ہے۔ پاریتو ڈسٹری بیوشن میں، واقعہ کا سائز (یا تعدد) اس واقعے کے سائز کے کسی منفی اشاریہ کے برابر ہوتا ہے۔ اس طرح کی تقسیم کی اہم خصوصیت یہ ہے کہ بڑے واقعات (یعنی وہ واقعات جو اوسط سے دور ہیں) کی تعدد بہت سی دوسری تقسیموں میں متوقع سے زیادہ ہوتی ہے۔ یہ ٹرانزیکشن ڈسٹری بیوشن کی خصوصیت ہے۔ پاریتو ڈسٹری بیوشن کی شکل یہ ہے: Px = Cx^-α) ۔
مندرجہ ذیل گراف میں اس بات کا اشارہ کیا گیا ہے کہ تجارت کا حجم کسی قدر سے زیادہ ہونے کا امکان ہے ، نیلی لائن اصل امکان ہے ، اور کڑھائی لائن تخروپن کا امکان ہے ، یہاں پہلے مخصوص پیرامیٹرز کو الجھنے سے بچیں ، یہ دیکھنا ممکن ہے کہ یہ واقعی پارٹیٹو تقسیم کو پورا کرتا ہے۔ چونکہ آرڈر کی مقدار 0 سے زیادہ ہے ، اس کی امکان 1 ہے ، اور معیاری کاری کو پورا کرنے کے لئے ، اس کی تقسیم کے مساوات کی شکل مندرجہ ذیل ہونی چاہئے:
جہاں N معیاری پیرامیٹرز ہیں۔ یہاں اوسط ٹرانزیکشن M کا انتخاب کیا گیا ہے ، الفا کا انتخاب -2.06 ہے۔ مخصوص الفا کا تخمینہ اس وقت سے کیا جاسکتا ہے جب D = N P ویلیو ہے۔ خاص طور پر: الفا = log ((P ((d>M)) / log ((2)) ؛ مختلف پوائنٹس کا انتخاب کرتے وقت الفا لینے کی قدر میں تھوڑا سا فرق ہوگا۔
depths = range(0, 250, 2)
probabilities = np.array([np.mean(buy_trades['quantity'] > depth) for depth in depths])
alpha = np.log(np.mean(buy_trades['quantity'] > mean_quantity))/np.log(2)
mean_quantity = buy_trades['quantity'].mean()
probabilities_s = np.array([(1+depth/mean_quantity)**alpha for depth in depths])
plt.figure(figsize=(10, 5))
plt.plot(depths, probabilities)
plt.plot(depths, probabilities_s)
plt.xlabel('Depth')
plt.ylabel('Probability of execution')
plt.title('Execution probability at different depths')
plt.grid(True)
plt.figure(figsize=(10, 5))
plt.grid(True)
plt.title('Diff')
plt.plot(depths, probabilities_s-probabilities);
لیکن یہ تخمینہ صرف اس طرح لگتا ہے کہ ہم نے اوپر دی گئی تصویر میں ماڈل ویلیو اور اصل ویلیو کے درمیان فرق کھینچ لیا ہے۔ جب ٹرانزیکشن چھوٹی ہوتی ہے تو انحراف بہت بڑا ہوتا ہے ، یا 10٪ کے قریب بھی ہوتا ہے۔ پیرامیٹرز کے تخمینے کے دوران مختلف نکات کا انتخاب کیا جاسکتا ہے تاکہ اس نقطہ کی امکان کو زیادہ درست بنایا جاسکے ، لیکن اس سے انحراف کا مسئلہ بھی حل نہیں ہوتا ہے۔ یہ ریڈیو ڈسٹری بیوشن اور اصل ڈسٹری بیوشن کے مابین فرق کا تعین کرتا ہے ، اور زیادہ درست نتائج حاصل کرنے کے ل the ، ریڈیو ڈسٹری بیوشن کے مساوات میں ترمیم کی ضرورت ہوتی ہے۔ مخصوص عمل کی وضاحت نہیں کی گئی ہے ، خلاصہ یہ ہے کہ روشنی کی چمک مل گئی ہے ، حقیقت میں یہ ہونا چاہئے:
مثال کے طور پر ، یہاں r = q / M معیاری ٹرانزیکشن کی نمائندگی کرتا ہے۔ پیرامیٹرز کا اندازہ اوپر کی طرح ہی کیا جاسکتا ہے۔ ذیل میں دی گئی تصویر میں دیکھا جاسکتا ہے کہ اصلاح کے بعد زیادہ سے زیادہ انحراف 2٪ سے زیادہ نہیں ہے۔ نظریاتی طور پر ، اصلاح جاری رہ سکتی ہے ، لیکن یہ درستگی کافی ہے۔
depths = range(0, 250, 2)
probabilities = np.array([np.mean(buy_trades['quantity'] > depth) for depth in depths])
mean = buy_trades['quantity'].mean()
alpha = np.log(np.mean(buy_trades['quantity'] > mean))/np.log(2.05)
probabilities_s = np.array([(((1+20**(-depth/mean))*depth+mean)/mean)**alpha for depth in depths])
plt.figure(figsize=(10, 5))
plt.plot(depths, probabilities)
plt.plot(depths, probabilities_s)
plt.xlabel('Depth')
plt.ylabel('Probability of execution')
plt.title('Execution probability at different depths')
plt.grid(True)
plt.figure(figsize=(10, 5))
plt.grid(True)
plt.title('Diff')
plt.plot(depths, probabilities_s-probabilities);
ٹرانزیکشن کی تقسیم کے تخمینہ کے مساوات کے ساتھ ، مساوات کی امکانات پر توجہ دینا حقیقی امکانات نہیں ہے ، بلکہ ایک مشروط امکانات ہیں۔ اس وقت اس سوال کا جواب دیا جاسکتا ہے کہ اگر اگلا آرڈر ہوتا ہے تو ، اس آرڈر کا امکان کیا ہے جو کسی قدر سے بڑا ہے؟ یہ بھی کہا جاسکتا ہے کہ مختلف گہرائیوں کے آرڈر کی تکمیل کا امکان کیا ہے ((مثالی طور پر ، کم سخت ، نظریاتی طور پر آرڈر بک میں نئے آرڈر اور واپسی ، اور اسی گہرائی کی قطاریں ہیں) ۔)
یہاں لکھنے کے لیے تقریباً کافی ہے، لیکن ابھی بھی بہت سے سوالات ہیں جن کے جوابات درکار ہیں، جن کا جواب مندرجہ ذیل سلسلہ میں دیا جائے گا۔
اوک کوانٹائزیشن 🐂🍺
fmzeroزبردست!
گھاسCSV بہت بڑا ہے، آپ اسے خود ڈاؤن لوڈ کر سکتے ہیں