ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔

Программирование

ٹنکوف انویسٹمنٹس کے لیے شماریات کی خدمت کی ترقی کے پیچھے محرکات یہ تھے:

کیا بات ہوگی؟

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

لہذا، میں تجارتی اعدادوشمار کا حساب لگانا چاہتا ہوں اور اسے آسان طریقے سے کرنا چاہتا ہوں۔ 

مرحلہ وار شماریات کی خدمت تیار کرنا: 

  1. Tinkoff Invest API سے کنکشن
  2. براؤزر میں Tinkoff Invest API سے ڈیٹا ڈرائنگ
  3. بروکریج رپورٹس اور لین دین وصول کرنا
  4. دلچسپی کی معلومات کا حساب اور آؤٹ پٹ
  5. مستقبل کے لیے نتائج اور منصوبے

Tinkoff Invest API سے کنکشن

API سے منسلک ہونے کے لیے، آپ دستاویزات سے کوئی بھی sdk لے سکتے ہیں https://github.com/Tinkoff/investAPI#sdk ۔ یا npm پیکیج ` tinkoff-sdk-grpc-js `۔ یہ ضروری ہے کہ پیکیج کو ڈویلپرز کے ذریعہ تازہ ترین ورژن میں اپ ڈیٹ کیا جائے۔ انسٹال کریں۔

npm i tinkoff-sdk-grpc-js

چیک کر رہا ہے۔

const { createSdk } = درکار (‘tinkoff-sdk-grpc-js’)؛   // ٹوکن جو اس طرح  حاصل کیا جا سکتا ہے const TOKEN = ‘YOURAPI’;   // درخواست کا نام جس کے ذریعے آپ کو TCS لاگز میں پایا جا سکتا ہے۔ const appName = ‘tcsstat’؛   const sdk = createSdk (ٹوکن، ایپ کا نام)؛ (async () => {     console.log(await sdk.users.getAccounts())؛ })();

نتیجہ: آپ کے اکاؤنٹس کی فہرست کنسول میں ظاہر ہوگی۔ مثال کے طور پر، آئیے باریکیوں کا تجزیہ کرتے ہیں:ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔

  • اکاؤنٹس کی فہرست میں ایک “انوسٹمنٹ بینک” ہے، جس کے ساتھ آپ API کا استعمال کر کے کام نہیں کر سکتے
  • براہ کرم نوٹ کریں کہ فیلڈز CamelCase میں آتے ہیں، جبکہ دستاویزات میں یہ فیلڈز under_score میں پیش کیے جاتے ہیں۔ 
  • یہ ہر جگہ ایسا ہی ہوگا، لہذا آپ دستاویزات سے صرف ایک فیلڈ لے اور کاپی نہیں کر سکتے۔

مفید:

  • آپ کو یہ کوڈ پروجیکٹ برانچ میں مل سکتا ہے۔

https://github.com/pskucherov/tcsstat/tree/step1 https://github.com/pskucherov/tcsstat/compare/step1   

براؤزر میں Tinkoff Invest API سے ڈیٹا ڈرائنگ

میں نے next.js اور socket.io لیا۔ یہ کوئی مضبوط تجویز نہیں ہے، اپنی صوابدید پر انتخاب کریں۔ 

npx create-next-app@latest npm i socket.io socket.io-client

ہم فوری طور پر دوستی کے اگلے مرحلے پر آگے بڑھتے ہیں + ساکٹ + سرمایہ کاری، اور تمام تفصیلات کے لیے اس قدم کا  مفید سیکشن دیکھیں میں تفصیلات بیان کروں گا: 

  • nodejs (سرور) کی طرف، ایک pages/api/investapi.js فائل ہے۔ یہ وہ جگہ ہے جہاں ہم socket.io سرور بناتے ہیں اور سرمایہ کاری سے جڑتے ہیں۔
  • براؤزر (کلائنٹ) کی طرف، ہم ساکٹ کے ذریعے سرور سے جڑتے ہیں اور بروکر سے اکاؤنٹ کے ڈیٹا کی درخواست کرتے ہیں۔ 
  • ہم سرور پر بروکر سے ڈیٹا وصول کرتے ہیں، پھر اسے کلائنٹ کو بھیج دیتے ہیں۔ جب وہ کلائنٹ پر موصول ہوتے ہیں، تو وہ براؤزر میں دکھائے جاتے ہیں۔ 

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

ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔

اب ہم اسے بناتے ہیں تاکہ آپ براؤزر سے ایک اکاؤنٹ منتخب کر سکیں، اور اگر کوئی ٹوکن نہیں ہے، تو کنسول کو ایک ایرر بھیج دیا جاتا ہے۔ کام آسان ہے اور کوئی نئی بات نہیں، اس لیے میں صرف کمٹ کے لنکس دیتا ہوں۔

  1. https://github.com/pskucherov/tcsstat/commit/7e1ac57061e5e971588479015b06d8814d6609a9
  2. https://github.com/pskucherov/tcsstat/commit/b28ac973a57494f5232589b4cb6b9fb13b8af759 

مفید:

  • اگلا دوست بنانے کا طریقہ اور ساکٹ یہاں تفصیل سے بیان کیا گیا ہے ۔ 
  • دوستی کوڈ نیکسٹ + ساکٹ + سرمایہ کاری:

https://github.com/pskucherov/tcsstat/commit/a443a4ac1bb4f0aa898f638128755fe7391ee381 جن کے لیے اوپر مشکل ہے، پھر ہم اس مرحلے پر رہتے ہیں اور کوڈ سے نمٹتے ہیں۔ اگر آپ کے سوالات ہیں – پوچھیں۔ https://github.com/pskucherov/tcsstat/tree/step2 https://github.com/pskucherov/tcsstat/compare/step1…step2

بروکریج رپورٹس اور لین دین وصول کرنا

بروکریج رپورٹس اور لین دین حاصل کرنے کے تین طریقے ہیں۔

  1. گیٹ بروکر رپورٹ
  2. GetDivendsForeignIssuer
  3. GetOperations ByCursor

شروع سے ہی یہ جاننا ضروری ہے: 

  • بروکریج رپورٹ T-3 موڈ میں تیار کی جاتی ہے، یعنی تجارت کو ان کے حقیقی عمل کے بعد وہاں دکھایا جاتا ہے۔ 
  • اس کے مطابق، اگر آپ اس رپورٹ کو پچھلے دو دنوں کی درخواست کریں گے، تو یہ تین دن میں تیار ہو جائے گی۔ 
  • آخری دنوں کے لیے لین دین حاصل کرنے کے لیے، ہم لین دین حاصل کرنے کا طریقہ استعمال کرتے ہیں، لیکن یاد رکھیں کہ بروکریج رپورٹ تیار ہونے کے بعد ان کی شناخت اور مواد تبدیل ہو سکتا ہے۔

گیٹ بروکر رپورٹ

بروکریج رپورٹ حاصل کرنے کے لیے، آپ کو اکاؤنٹ کی شناخت، رپورٹ کی تاریخ شروع اور اختتامی تاریخ لینے کی ضرورت ہے، لیکن 31 دنوں سے زیادہ نہیں۔ ہم generate _broker_report_request میں API کو رپورٹ بنانے کی درخواست بھیجتے ہیں ، جواب میں ایک taskId حاصل کریں۔ اس کے بعد، اس ٹاسک آئی ڈی کا استعمال کرتے ہوئے، ہمیں get _broker_report_response سے ڈیٹا ملتا ہے۔

تو دستاویزات کہتی ہیں، حقیقت میں باریکیاں ہیں۔ اپنے ہاتھ دیکھیں:
  • آپ کو ان تاریخوں کے لیے TaskID کو ہمیشہ کے لیے محفوظ کرنے کی ضرورت ہے۔ 
  • چونکہ اگر آپ اسے کھو دیتے ہیں، تو درخواست کردہ تاریخوں کے لیے رپورٹ سب سے پہلے نسل کی درخواست کے جواب میں آئے گی، 
  • اور پھر یہ بالکل نہیں آئے گا۔

آئیے کوڈ لکھنا شروع کرتے ہیں۔

موجودہ تاریخ سے گھٹاؤ کو مدنظر رکھتے ہوئے تاریخ حاصل کرنے کا طریقہ

const getDateSubDay = (subDay = 5، start = true) => {     const date = new Date();     date.setUTCDate(date.getUTCDate() – ذیلی دن)؛       اگر (شروع) {         date.setUTCHours(0, 0, 0, 0);     } اور {         date.setUTCHours(23, 59, 59, 999);     }       واپسی کی تاریخ؛ };

رپورٹ نسل کی درخواست 

const brokerReport = انتظار کریں (sdk.operations.getBrokerReport)({         generateBrokerReportRequest: {             accountId,             from,             to,         }, });

نتیجہ:

  • کمانڈ کے پہلے عمل کے نتیجے میں، ہمیں ٹاسک آئی ڈی ملتی ہے۔ 
  • رپورٹ بروکر کی طرف سے تیار ہونے لگتی ہے۔ جب یہ تیار ہو جائے تو نامعلوم ہے، ہم انتظار کرتے ہیں اور وقتاً فوقتاً رپورٹ کی توقع میں ٹاسک آئی ڈی کھینچتے ہیں۔
  • کیوں؟ کیونکہ اگر رپورٹ تیار نہ ہو تو اس سے غلطی ہو جاتی ہے۔ اگر بروکر کی طرف سے رپورٹ تیار نہیں ہے، تو یہ آپ کے کوڈ میں ایک غلطی ہے۔ براہ کرم کارروائی کریں: 30058|INVALID_ARGUMENT|ٹاسک ابھی مکمل نہیں ہوا، براہ کرم بعد میں دوبارہ کوشش کریں

انتظار کرنے اور رپورٹ موصول کرنے کا کوڈ کچھ اس طرح لگتا ہے۔

const timer = async time => {     نئے وعدے کی واپسی(resolve => setTimeout(resolve, time))؛ }   const getBrokerResponseByTaskId = async (taskId، صفحہ = 0) => {     کوشش کریں {         واپسی کا انتظار کریں (sdk.operations.getBrokerReport)({             getBrokerReportRequest: {                 taskId,                 صفحہ,             },         });     } کیچ (ای) {         console.log(‘انتظار’، ای)؛         ٹائمر کا انتظار کریں (10000)؛         واپسی کا انتظار getBrokerResponseByTaskId(taskId، صفحہ)؛     } };

پھر وہی جادو ہوتا ہے۔ ہم اپنی اسکرپٹ کو روکتے ہیں، اسے دوبارہ شروع کرتے ہیں، ہمارے پاس ٹاسک آئی ڈی نہیں ہے۔ ہم ٹاسک آئی ڈی کی درخواست کے ساتھ کوڈ پر عمل کرتے ہیں، لیکن ہمیں اب ٹاسک آئی ڈی نہیں ملتی، بلکہ فوری طور پر رپورٹ ملتی ہے۔ جادو! اور سب کچھ ٹھیک ہو جائے گا اگر یہ ہمیشہ ایسا ہی ہوتا۔ لیکن ایک مہینے میں کوئی ڈیٹا نہیں ہوگا۔ مفید :

  • تھوڑا سا نظریہ یہاں اور یہاں بیان کیا گیا ہے ۔
  • کوڈ کو ایک ساتھ ڈالنے سے، مسودہ کچھ اس طرح نظر آئے گا۔

https://github.com/pskucherov/tcsstat/tree/step3.1 https://github.com/pskucherov/tcsstat/compare/step3.1

  • اگر کسی کو یہ معلوم ہوتا ہے تو اس مسئلے میں خوش آمدید ۔ وہ اس جادو کی مرمت کے بعد، یہ اپنی طاقت کھو دے گا اور کسی نہ کسی طرح مختلف ہو جائے گا. لیکن موجودہ لمحے (03/21/2023) یہ بالکل اسی طرح کام کرتا ہے۔

GetDivendsForeignIssuer

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

GetOperations ByCursor

تینوں میں سے میرا پسندیدہ۔ اگرچہ سب سے زیادہ درست نہیں، لیکن سب سے زیادہ مناسب۔ ہم اکاؤنٹ بنانے کے آغاز سے لے کر زیادہ سے زیادہ ممکنہ تاریخ تک درخواست کرتے ہیں (اکاؤنٹ بند کرنا یا موجودہ ایک)۔ ہمیں جواب ملتا ہے، کرسر لیتے ہیں اور جب تک ڈیٹا موجود ہے دوبارہ درخواست کرتے ہیں۔  اور کوڈ اوپر کی مثالوں سے زیادہ جامع ہے۔

const timer = async time => {     نئے وعدے کی واپسی(resolve => setTimeout(resolve, time))؛ }   const getOperationsByCursor = async (sdk, accountId, from, to, cursor = ”) => {     کوشش کریں {         const reqData = {             accountId,             from,             to,             limit: 1000,             state: sdk.OperationState.OPERATION_STATE_EXECUTED،             بغیر کمیشن: غلط:             بغیر تجارت: غلط،             بغیر راتوں کے: غلط،             کرسر،         };           واپسی کا انتظار sdk.operations.getOperationsByCursor(reqData)؛     } کیچ (ای) {         انتظار ٹائمر (60000)؛         واپسی کا انتظار getOperationsByCursor(sdk, accountId, from, to, cursor = ”)؛     } };

چلانے کے لیے ڈرافٹ یہاں ہے: https://github.com/pskucherov/tcsstat/tree/step3.3 https://github.com/pskucherov/tcsstat/compare/step3.3 اب ہم وصول کرنے کے آپریشنز کو شامل کرنے کے لیے تیار ہیں ہماری درخواست. اگر صحیح طریقے سے کیا گیا ہے، تو آپ کو اکاؤنٹ کے پورے وجود کے لیے بروکریج رپورٹس حاصل کرنے کی ضرورت ہے۔ اور گمشدہ ڈیٹا کے لیے، وہی T-3s، آپریشنز سے دوبارہ لوڈ کریں۔ لیکن اس کو ایک الگ مضمون میں الگ کیا جا سکتا ہے۔ آپ کو جن اہم باریکیوں کا سامنا کرنا پڑے گا وہ ہے گلو آپریشنز اور بروکریج رپورٹ۔

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

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

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

بدلے میں، براؤزر میں گنتی اصولی طور پر سب سے بہترین حل نہیں ہے۔ لہذا، جو چیز مہنگی نہیں ہے، ہم اسے اپنے سرور پر سمجھتے ہیں۔ باقی ہم کلائنٹ پر چھوڑ دیتے ہیں۔ میں واقعی سرور پر کمیشن لینا اور حساب لگانا چاہتا ہوں۔ لیکن یہاں “انٹرایکٹیویٹی” کہلانے والی اہمیت آتی ہے۔ مان لیں کہ آپ کے ہزاروں آپریشنز ہیں اور انہیں وصول کرنے میں پانچ منٹ لگتے ہیں۔ اس وقت صارف کے پاس کیا ہوگا؟ اسپنر؟ پیش رفت؟ کتنا اپ لوڈ کیا گیا تھا کے بارے میں Infa؟ “فعال انتظار” کا استعمال کرنا مثالی ہے جب اس عمل میں صارف پہلے سے ہی کچھ دیکھ سکتا ہے۔ نتیجہ یہ ہے : ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔

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

ہر بار ایونٹس میں ڈیٹا کو فلٹر نہ کرنے کے لیے، ہم ہر اکاؤنٹ کے لیے اپنا ایونٹ کھینچتے ہیں۔ اس طرح:

socket.emit(‘sdk:getOperationsCommissionResult_’ + accountId، {                 آئٹمز: ڈیٹا؟ آئٹمز،                 ان پروگریس: بولین(اگلا کرسر)، })؛

لانچ کرنے کا مسودہ یہاں ہے: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…step3 آگے بڑھ رہا ہے۔ یہ بہت اچھا ہے کہ آپ نے یہ لائن پڑھی ہے! 

دلچسپی کی معلومات کا حساب اور آؤٹ پٹ

اس پر منحصر ہے کہ کس کو کس معلومات کی ضرورت ہے۔ لہذا، میں آپ کو فوری طور پر اہم باریکیوں کو بتاتا ہوں جو آپ کا سامنا کریں گے.

قیمتوں کے ساتھ کام کرنا 

ہر وہ شخص جو فنانس کے ساتھ کام کرتا ہے جانتا ہے کہ رقم کا لین دین صرف پورے نمبر کے ساتھ کیا جانا چاہیے۔ اعشاریہ پوائنٹ کے بعد اقدار کی غلطی اور بڑی تعداد میں کارروائیوں کے ساتھ مجموعی غلطی کی وجہ سے۔ اس لیے تمام قیمتیں درج ذیل MoneyValue فارمیٹ میں پیش کی گئی ہیں۔ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔

میدانقسمتفصیل
کرنسیتارسٹرنگ ISO کرنسی کوڈ
یونٹسint64جمع کا عددی حصہ، منفی نمبر ہو سکتا ہے۔
نینوint32رقم کا جزوی حصہ، منفی نمبر ہو سکتا ہے۔

ہم ان پر الگ سے کارروائی کرتے ہیں، پھر انہیں قیمت کی قیمت پر لاتے ہیں:

quotation.units + quotation.nano / 1e9

مستقبل کے معاہدوں کی قیمت

فیوچرز کی قیمت پوائنٹس میں پیش کی جاتی ہے، جب آپ کے پاس کرنسی کا مستقبل ہوتا ہے، تو آپ کو ریٹ جاننے کی ضرورت ہوتی ہے۔ اور یقیناً پوائنٹس میں قیمت اور قیمت کا مرحلہ۔ جب آپ لین دین سے منافع کا حساب لگاتے ہیں، تو یہ گولی مار سکتا ہے، کیونکہ۔ اگر آپ قیمت کو مقدار سے ضرب دے کر کل رقم کا حساب لگاتے ہیں۔ یہاں آپ کو محتاط رہنے کی ضرورت ہے۔ ابھی کے لئے، ہم دیکھیں گے کہ یہ کیسے جاتا ہے. یہ کرنسی کے مستقبل پر لاگو ہوتا ہے، دوسری جگہوں پر اس کے ساتھ سب کچھ ٹھیک ہے۔ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔

او ٹی سی مارکیٹ

اس مارکیٹ میں بہت سی خصوصیات ہیں، تو آئیے اس پر آپریشنز کا الگ سے مطالعہ کرتے ہیں۔ جب آپ آپریشنز کو سنکرونائز کرنا شروع کریں گے، تو پتہ چلے گا کہ آپ کو انسٹرومنٹ کو صحیح طریقے سے میچ کرنے کے لیے ایک ہی شکل میں figi/ticker لانے کی ضرورت ہے۔ جب آپ اسے بروکریج رپورٹ کے ساتھ ہم آہنگ کرنا شروع کریں گے، تو پتہ چلے گا کہ اسی لین دین کی ٹریڈ آئی ڈی کے لین دین میں شروع میں حروف ہیں اور وہ بروکریج رپورٹ میں نہیں ہیں۔ اس لیے ان کا موازنہ نہیں کیا جا سکتا… ahem-ahem… موازنہ کے لحاظ سے! میں نے تجارتی وقت، ٹکر اور مماثلت کو ملایا کہ ایک ٹریڈ آئی ڈی دوسری میں موجود ہے۔ ٹھیک ہے، مجھے نہیں معلوم۔ جو بھی اس کا سامنا کرتا ہے اور جو اس کی پرواہ کرتا ہے، اس مسئلے کی طرف آئیں یا ایک نیا آغاز کریں۔ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔

ٹولز پر ریاضیاتی عمل

بغیر دیکھے، پوری فہرست کے ساتھ ریاضی کی کارروائیاں کرنا ناممکن ہے۔ نرم سے گرم کو شامل نہ کرنے کے لیے، ہم ہمیشہ کرنسی کی جانچ کرتے ہیں اور صرف اس صورت میں عمل کرتے ہیں جب ہمیں یقین ہو کہ کرنسی مماثل ہے، اور پوائنٹس کو مطلوبہ کرنسی میں تبدیل کر دیا گیا ہے۔ بینک نمبروں کے ساتھ کام کرنے کے بارے میں علم سے لیس، ہم ہر ایک اکاؤنٹ پر خرچ ہونے والے کمیشن کا حساب لگائیں گے۔ اس طرح: https://github.com/pskucherov/tcsstat/tree/step4 https://github.com/pskucherov/tcsstat/compare/step3…step4ہم بروکریج رپورٹس کے ساتھ کام کرنے اور کمیشن کا حساب لگانے کے لیے Tinkoff Invest API کا استعمال کرتے ہوئے ایک مائیکرو سروس تیار کر رہے ہیں۔   

مائیکرو سروس تیار ہے!

https://github.com/pskucherov/tcsstat ہوم ورک کے طور پر، آپ چیک کر سکتے ہیں کہ آیا سروس سست کنکشن کے ساتھ کام کرتی ہے، جب کنکشن ٹوٹ جاتے ہیں، جب انٹرنیٹ منقطع ہو جاتا ہے، جب بروکر کی جانب سے غلطیاں یا میعاد ختم ہو جاتی ہے۔ 

مستقبل کے لیے نتائج اور منصوبے

  • بنیادی آپریشنز اور Invest API کے ساتھ کام کرنے کے بارے میں سیکھا۔
  • وقت ~ 10 گھنٹے گزارا۔
  • مشکل کی سطح ~ جونیئر + / کم درمیانی 

اگر آپ مائیکرو سروس کو بہتر بناتے رہتے ہیں، تو آپ کو کچھ اس طرح کا سامنا کرنا پڑ سکتا ہے۔

https://opexbot.info

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

Pavel
Rate author
Add a comment

  1. Isakiiev

    Полезная статья. Не могу представить, сколько усилий автора потребовалось, чтобы все описать. Благодарю.

    Reply