
میں 1998 میں پیدا ہوا تھا اور اس وقت 985 انڈرگریجویٹ اسکول میں کمپیوٹر سائنس کا ایک سینئر طالب علم ہوں میں اسی اسکول میں اپنی پوسٹ گریجویٹ تعلیم جاری رکھوں گا۔
میں پہلی بار 1 ستمبر 2017 کو کریپٹو کرنسی کی دنیا سے رابطہ میں آیا۔ ہاں، مجھے یہ تاریخ بہت واضح طور پر یاد ہے کیونکہ تین دن بعد “94” واقعہ تھا جس نے کرپٹو کرنسی کی دنیا کو ہلا کر رکھ دیا تھا، مرکزی بینک اور پانچ دیگر وزارتوں نے مشترکہ طور پر ایک دستاویز جاری کی تھی۔ ICO خطرات کو روکنے کے لیے، اور cryptocurrencies کی قیمت آدھی کر دی گئی۔
یکم ستمبر کو، میں نے ایک WeChat پبلک اکاؤنٹ پر Bitcoin کو متعارف کرانے والی ایک ویڈیو دیکھی (میرے خیال میں یہ وانگ زیرو کی ویڈیو تھی)، اس لیے میں نے Huobi کو ڈاؤن لوڈ کیا اور اس میں 100 یوآن کی قیمت دیکھی۔ جو کہ 30,000 RMB سے زیادہ تھا، اس لیے میں نے کچھ LTC خریدا، ایسا لگ رہا تھا کہ یہ تقریباً 120 RMB فی LTC ہے۔ اور LTC کی قیمت میں اضافہ دیکھو لوگوں کو کئی cryptocurrency QQ گروپس میں چیٹنگ کرتے ہوئے۔ ساری رات اسے دیکھنے کے بعد، گروپ میں موجود میرے دوستوں نے کہا کہ قیمت بڑھ جائے گی، لیکن میں نے محسوس کیا کہ یہ کافی پرجوش نہیں ہے، اس لیے میں نے اس وقت کئی ہزار یوآن کو ریچارج کیا۔ کافی دیر تک پیسے میرے اکاونٹ میں نہیں آئے تو میں نے گھبرا کر گروپ میں اپنے دوستوں سے مدد مانگی اور کسٹمر سروس کو کال کی، اور پھر میں نے تمام ایل ٹی سی خرید لیے دوبارہ
4 ستمبر کو جیسے ہی مرکزی بینک نے ایک دستاویز جاری کی تو میں اس قدر خوفزدہ ہوا کہ میں نے اپنے نقصانات کو بیچ دیا اور پھر میں نے اس وقت کرنسی کی قیمت آہستہ آہستہ آدھی دیکھی۔ , گھریلو تبادلے جیسے Huobi کو رجسٹر نہیں کیا جا سکا ملکی اور غیر ملکی کرنسیوں کی قیمتوں میں فرق بہت بڑا ہے، جس نے اینٹوں سے چلنے والے لوگوں کے ایک گروپ کو تقویت بخشی ہے۔
بعد میں میں نے رقم واپس لے لی اور اسکول واپس آ گیا، اور نیچے سے خریدنے کے لیے جلدی نہیں کی (نئے سرمایہ کار صرف بڑھتی ہوئی قیمتوں کا پیچھا کرنا اور گرتی ہوئی قیمتوں کو بیچنا جانتے ہیں)، لیکن میں نے پھر بھی کرپٹو کرنسی کے دائرے میں رجحانات پر توجہ دی اور کبھی کبھار چیک کیا کہ لوگ کئی QQ گروپس میں کس بارے میں بات کر رہے ہیں۔ یہ دسمبر تھا، Binance پر TRON سیکڑوں گنا بڑھ گیا، اور 50% سے کم ہونے والے کسی بھی اضافے کو چند ہزار ڈالرز کا لالچ نہیں سمجھا گیا۔ پھر اتار چڑھاؤ کا پیچھا کرنے کے تمام قسم کے عجیب و غریب آپریشن، مختلف کرنسیوں کو بڑھتے دیکھنا لیکن کوئی پیسہ نہیں کمانا۔
جنوری 2018 میں، میں نے OKCoin کو رجسٹر کیا اور مجھے یہ کہنا بہت دلچسپ تھا کہ میں نے K-line کو دیکھا ساری رات جاگتے رہے.
تقریباً تمام کنٹریکٹ جواریوں کی طرح، میں ایک دیوالیہ پوزیشن کے ساتھ ختم ہوا۔ لیکن مجھے یہ کہنا پڑے گا کہ اس تجربے نے مجھے بہت زیادہ مالی علم سکھایا میں پہلے K-لائن کو نہیں پہچان سکتا تھا۔
کئی راتوں کی نیند کے بغیر بازار دیکھنے کے بعد، کمپیوٹر سائنس کے ایک طالب علم کے طور پر، میں سوچنے لگا کہ کیا کوئی طریقہ ہے کہ میرے لیے کسی پروگرام کو تجارت کرنے دیا جائے تاکہ میں سکون سے سو سکوں۔
دراصل، مجھے fmz (جسے اس وقت botvs کہا جاتا تھا) ملا، لیکن میں اس وقت بہت زیادہ نیا تھا، اور میں کافی عرصے بعد اس پلیٹ فارم کو استعمال کرنے کا طریقہ نہیں جان سکتا تھا، اس لیے میں نے ہار مان لی۔
بعد میں، میں نے OK API (github: https://github.com/ccyanxyz/okex) سے منسلک ہو کر روبوٹ لکھنا شروع کیا، اور کچھ حکمت عملی لکھی جیسے کہ ڈبل موونگ ایوریجز اور گرڈز، اگرچہ میں نے زیادہ پیسہ نہیں کمایا۔ یہ بھی تھا کہ میں نے مقداری تجزیہ کے دروازے پر قدم رکھا، مختلف تکنیکی اشاریوں کے بارے میں سیکھا، اور طالب لائبریری کو استعمال کرنے کا طریقہ سیکھا۔ بعد میں، اسکول کے بہت سے معاملات کی وجہ سے، میں نے یہ کرنا چھوڑ دیا، روبوٹ رک گیا، اور دستی دیکھنے اور آپریشن کے موڈ میں واپس آ گیا، لیکن فریکوئنسی بہت کم تھی، اور میں نے وقتاً فوقتاً صرف ایک یا دو آپریشن کیے تھے۔
حلقوں میں گھومنے کے بعد، میں آخر کار fmz پر واپس آیا، لیکن چونکہ مجھے پہلے سے ہی اپنی حکمت عملی لکھنے کا تجربہ تھا، میں اس بار fmz کے ساتھ بہت جلد شروعات کرنے میں کامیاب رہا۔ میں نے محسوس کیا کہ fmz تقریباً تمام مرکزی دھارے کے تبادلے سے جڑا ہوا ہے، اور اس نے لین دین، اکاؤنٹس وغیرہ کو یکجا کر دیا ہے۔ ایکسچینج کو دستی طور پر پیک کرنے کی کوشش، API استعمال کرنے والے لوگوں کے لیے، یہ ایک نجات دہندہ تلاش کرنے کے مترادف ہے۔
مجھے GitHub پر fmz عوامی حکمت عملی کا ذخیرہ ملا (https://github.com/fmzquant/strategies) یہ ایک خزانہ تلاش کرنے کے مترادف تھا جس میں میں نے تمام حکمت عملیوں کو تلاش کرتے ہوئے ان کی کاپی کی تھی۔ حکمت عملی کی منطق اور اسے بہتر بنانے کی کوشش کی، لیکن مجھے یہ کہنا پڑے گا کہ میں اب بھی بہت سبز ہوں، تمام حکمت عملیوں کو پڑھنے کے بعد، میں نے ابھی تک “منی پرنٹنگ مشین” نہیں لکھی ہے۔
بعد میں، میں نے پرسکون ہو کر غور سے سوچا کہ موجودہ کرپٹو کرنسی کا دائرہ 2000 یوآن سے لے کر 20 ملین یوآن تک کی کوئی افسانوی کہانیاں نہیں ہوں گی، یہ پہلے ہی بہت مشکل ہے۔ کرپٹو کرنسی میں قیاس آرائی کر کے دولت کمانا ایک خیالی بات تھی، اس لیے میں نے کرنسی کی قیمت دیکھنا اور عروج و زوال کا پیچھا کرنا چھوڑ دیا، اور “منی پرنٹنگ مشین” لکھنے کی کوشش کرنے کا غیر حقیقی خیال بھی چھوڑ دیا۔ حکمت عملی، اور FMZ پر کراؤڈ سورسنگ ایریا میں اشتہارات پوسٹ کرنا شروع کر دیا اور لوگوں کو حکمت عملی لکھنے میں مدد کی، اور ایمانداری سے کچھ محنت سے کمایا۔
اب تک، میں نے دوسروں کے لیے بہت سی حکمت عملی لکھی ہے، لوگ اکثر میرے پاس کچھ ناپختہ خیالات یا حکمت عملیوں کے ساتھ آتے ہیں جو کہ بہت سے لوگ اپنی ضروریات کو واضح طور پر بیان نہیں کر سکتے حکمت عملی کو بار بار جانچتے ہوئے، میں نے پایا کہ اس سے پیسہ نہیں کمایا گیا اور مجھے دوسروں سے بحث کرنا پڑی، اس لیے میں نے اپنا اشتہار نیچے والے اشتہار میں تبدیل کر دیا، آرڈرز قبول کرنے کے لیے اصول اور معیارات طے کیے، اور خود کو کم پریشانیوں میں مبتلا کیا۔
اصل میں، میرے آرڈر کی فریکوئنسی کم سے کم ہوتی جا رہی تھی، کیونکہ میرے پاس اسکول کی بہت سی چیزیں تھیں، اور میں نے بہت سے لوگوں کو مسترد کر دیا تھا لیکن فروری میں، fcoin بھاگ گیا اور میرے زیادہ تر اثاثے لے گئے (لیکن میرے پاس زیادہ نہیں تھا۔ پیسہ) تو حال ہی میں مجھے سب سے آرڈر قبول کرنا اور پیسہ کمانا شروع کرنا پڑا۔
میری حکمت عملی لائبریری:
آج جب میں ایف ایم زیڈ کو براؤز کر رہا تھا تو مجھے ایک خاص “کمپنی” ملی جس نے میرے آرڈر لینے والے اشتہار کو بھی چوری کیا۔
لہذا میں نے اپنی “شناخت” کو “مہارت” میں تبدیل کر دیا، اور پھر ابتدائی قیمت کم کر دی (مجھے شیطانی مقابلے کا اشارہ ملا)۔
میں نے یہ کیوں نہیں کہا کہ میں FMZ میں “ماہر” ہوں، مجھے نہیں معلوم کہ آپ نے یہ لطیفہ سنا ہے، “کوئی بھی C++ میں ماہر نہیں ہو سکتا، ہاہاہاہا، اس لیے میں “آشنا” لکھنے کا عادی ہوں؟ میرا ریزیومے اور دیگر متعلقہ مہارت کے تعارف۔
میں نے حال ہی میں ثالثی کی کچھ حکمت عملیوں کا مطالعہ کیا ہے، جن میں سپاٹ ہیجنگ، فیوچر اسپاٹ ثالثی، کراس پیریڈ ثالثی، مثلث ثالثی وغیرہ شامل ہیں۔ ان دو دنوں میں، میں نے ایک ایسا ثالثی خیال دیکھا جو میں نے پہلے کبھی نہیں دیکھا تھا (شاید میں جاہل ہوں)، اس لیے میں اسے یہاں بانٹنا چاہوں گا۔
فرض کریں کہ فارن ایکسچینج مارکیٹ میں درج ذیل قیمتوں کے ساتھ کئی تجارتی جوڑے ہیں:
USDollar/BritishPound 0.5
BritishPound/FrenchFranc 10.0
FrenchFranc/USDollar 0.21
اس صورت میں، لین دین کی فیس کو نظر انداز کرتے ہوئے، اگر میرے پاس اصل میں 1 USD ہے، تو میں اسے پہلے برطانوی پاؤنڈ میں، پھر فرانسیسی فرانک میں، اور پھر USD میں تبدیل کر سکتا ہوں، اس عمل میں، 1 USD 1x0.5x10.0x0.21= بن جاتا ہے۔ 1.05 USD، منافع 0.05USD۔
مندرجہ بالا مثال میں ثالثی کا موقع ہے، لیکن درج ذیل میں ایسا نہیں ہے:
USDollar/BritishPound 0.5
USDollar/FrenchFranc 4.9
BritishPound/FrenchFranc 10.0
BritishPound/USDollar 1.99
FrenchFranc/BritishPound 0.09
FrenchFranc/USDollar 0.19
تو اتنی بڑی مارکیٹ میں، ہم یہ کیسے طے کریں گے کہ آیا ثالثی کے مواقع موجود ہیں؟
اس مسئلے کو ڈائریکٹڈ گراف میں سب سے مختصر راستہ کا مسئلہ بنایا جا سکتا ہے، اور ایکسچینج کی قیمت کو ایک ڈائریکٹڈ گراف بنانے کے لیے کنارے کے وزن کے طور پر استعمال کیا جاتا ہے، پھر، تلاش کریں۔ ایک سرکلر راستہ جس میں ثالثی کی جا سکتی ہے۔
مندرجہ بالا مثال ایک OJ مسئلہ (http://poj.org/problem?id=2240) سے آتی ہے، اور اس کا حل یہاں پایا جا سکتا ہے: http://hehejun.blogspot.com/2018/10/poj2240- arbitrage. html
لہذا میں نے حال ہی میں سوچا کہ کیا میں ثالثی کے مواقع کو حاصل کرنے اور ثالثی کرنے کی حکمت عملی کے ساتھ آ سکتا ہوں میں نے GitHub پر تلاش کیا اور پایا کہ یہ پہلے ہی لاگو ہو چکا ہے: https://github.com/wardbradt/peregrine یہ منصوبہ اس ثالثی کو حل کرتا ہے۔ مسئلہ کو منفی وزن کے کناروں کے ساتھ ڈائریکٹڈ گراف کے سب سے چھوٹے راستے کے مسئلے کا حل مختلف ہے۔ دلچسپی رکھنے والے اس کا مطالعہ کر سکتے ہیں۔
میں نے OJ مسئلے کے حل کے خیالات کا حوالہ دیتے ہوئے ایک آسان عمل بھی کیا ہے اور اس کی درستگی کی ضمانت نہیں دی جا سکتی ہے تاکہ بحث کو تیز کیا جا سکے۔
var coins = {
EMPTY: 0,
};
var price = {};
function get_coins() {
for(var i = 0; i < exchanges.length; ++i) {
var base = _C(exchanges[i].GetCurrency);
var quote = _C(exchanges[i].GetQuoteCurrency);
var len = Object.keys(coins).length;
if(!coins.hasOwnProperty(quote)) {
coins[quote] = len;
len += 1;
}
if(!coins.hasOwnProperty(base)) {
coins[base] = len;
len += 1;
}
}
}
function get_graph() {
var graph = [];
for(var i = 0; i < exchanges.length; ++i) {
var ticker = _C(exchanges[i].GetTicker);
var base = _C(exchanges[i].GetCurrency);
var quote = _C(exchanges[i].GetQuoteCurrency);
graph.push({
from: coins[base],
to: coins[quote],
weight: ticker.Buy
});
price[base + quote] = ticker.Buy;
graph.push({
from: coins[quote],
to: coins[base],
weight: 1 / ticker.Sell
});
price[quote + base] = 1 / ticker.Sell;
}
return graph;
}
function bfm(graph, initAmount, feeRate) {
var dist = [];
var pre = [];
var i;
var j;
var fee = 0;
for(i = 0; i < Object.keys(coins).length; ++i) {
dist.push(0);
pre.push(-1);
}
dist[1] = initAmount;
for(i = 0; i < Object.keys(coins).length - 1; ++i) {
for(j = 0; j < graph.length; ++j) {
var from = graph[j].from;
var to = graph[j].to;
var rate = graph[j].weight;
if(dist[from] * rate > dist[to]) {
dist[to] = dist[from] * rate;
pre[to] = from;
}
}
}
if(dist[1] <= initAmount) {
return false;
}
var path = [];
var top = pre[1];
var coin_keys = Object.keys(coins);
path.push({
from: coin_keys[top],
to: coin_keys[1],
rate: price[coin_keys[top] + coin_keys[1]]
});
while(top != 1) {
var temp = top;
top = pre[top];
path.push({
from: coin_keys[top],
to: coin_keys[temp],
rate: price[coin_keys[top] + coin_keys[temp]],
});
}
path.reverse();
fee = path.length * feeRate * initAmount;
if(dist[1] - initAmount <= fee || path.length == 0) {
return false;
}
return path;
}
function onTick() {
var graph = get_graph();
var account = _C(exchanges[0].GetAccount);
var balance = account.Balance;
var path = bfm(graph, balance, 0);
if(!path) {
return;
}
Log(path);
// buy & sell follow the path
...
}
function main() {
get_coins();
while(1) {
onTick();
}
}
خلاصہ یہ کہ fmz ایک اچھا پلیٹ فارم ہے، جو خاموشی سے خوش قسمتی بناتا ہے، میں امید کرتا ہوں کہ میرے لیے، میں گریجویشن کے بعد ماسٹر ڈگری کے لیے پڑھنا جاری رکھوں گا۔ فیلڈ)، اور پھر fmz پر کام جاری رکھیں۔
(7 مارچ 2020 کی سہ پہر کو لکھا گیا۔ میں نے ابھی کسی کے لیے حکمت عملی لکھنا ختم کیا اور دیکھا کہ میرا FMZ بیلنس ناکافی ہے، اس لیے میں یہاں کچھ رائلٹی دھوکہ دینے آیا ہوں ہاہاہاہا)
WeChat: C790266922