اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.

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

Tinkoff Investments لاءِ شماريات جي خدمت جي ترقيءَ جي پويان متاثر ڪندڙ هئا:

ڇا بحث ڪيو ويندو؟

  • ترقي بابت صرف لاڳو ٿيل حصو.
  • حقيقي ڄاڻ ۽ تجربو، جيڪي مالي اوزار سان ڪم ڪرڻ ۾ تمام ضروري آهن.
  • ڪم ڪرڻ لاء مسئلن جو جائزو

تنهن ڪري، مان واپار جي انگن اکرن کي ڳڻڻ ۽ ان کي آسان طريقي سان ڪرڻ چاهيان ٿو. 

قدم سان شمارياتي خدمت کي ترقي ڪندي: 

  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 (TOKEN، appName)؛ (async () => {     console.log(await sdk.users.getAccounts())؛ })();

نتيجو: توهان جي اڪائونٽن جي هڪ فهرست ڪنسول ۾ ڏيکاري ويندي. مثال طور، اچو ته nuances جو تجزيو:اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.

  • اڪائونٽن جي لسٽ ۾ هڪ “سيڙپڪاري بئنڪ” آهي، جنهن سان توهان API استعمال ڪندي ڪم نٿا ڪري سگهو
  • مهرباني ڪري نوٽ ڪريو ته فيلڊس ڪيميڪل ۾ اچن ٿيون، جڏهن ته دستاويز ۾ اهي فيلڊ 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 (سرور) پاسي، اتي ھڪڙو صفحا/api/investapi.js فائل آھي. هي اهو آهي جتي اسان ٺاهيندا آهيون socket.io سرور ۽ ڳنڍيو investapi.
  • برائوزر (ڪلائنٽ) پاسي تي، اسان هڪ ساکٽ ذريعي سرور سان ڳنڍيندا آهيون ۽ بروکر کان اڪائونٽ ڊيٽا جي درخواست ڪندا آهيون. 
  • اسان سرور تي بروکر کان ڊيٽا حاصل ڪندا آهيون، پوء ان کي ڪلائنٽ ڏانهن موڪليو. جڏهن اهي ڪلائنٽ تي وصول ڪيا ويا آهن، اهي برائوزر ۾ ڏيکاريا ويندا آهن. 

نتيجو:  برائوزر ڪنسول ۾ اسان اڪائونٽن بابت معلومات ڏسي سگهون ٿا. اهو آهي، آخري مرحلي ۾، اسان ڏٺو ته اڪائونٽن بابت معلومات سرور ڪنسول (نوڊجز) ۾، موجوده قدم ۾، اسان هن معلومات کي ڪلائنٽ (براؤزر) ڏانهن منتقل ڪيو.

اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي 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. GetBrokerReport
  2. GetDivendsForeign Issuer
  3. GetOperations ByCursor

شروعات کان وٺي اهو ڄاڻڻ ضروري آهي ته: 

  • بروکرج رپورٽ T-3 موڊ ۾ ٺاهي وئي آهي، يعني. واپار اتي ڏيکاريا ويندا آهن انهن جي حقيقي عمل کان پوءِ. 
  • ان حساب سان، جيڪڏهن توهان هن رپورٽ کي گذريل ٻن ڏينهن لاءِ درخواست ڏيو ته اها ٽن ڏينهن ۾ تيار ٿي ويندي. 
  • آخري ڏينهن تائين ٽرانزيڪشن حاصل ڪرڻ لاء، اسان ٽرانزيڪشن حاصل ڪرڻ جو طريقو استعمال ڪندا آهيون، پر ياد رکو ته انهن جي سڃاڻپ ۽ مواد بروکرج رپورٽ ٺاهي وڃڻ کان پوء تبديل ٿي سگهي ٿي.

GetBrokerReport

بروکرج رپورٽ حاصل ڪرڻ لاءِ، توهان کي اڪائونٽ جي سڃاڻپ وٺڻ جي ضرورت آهي، رپورٽ جي شروعاتي تاريخ ۽ آخري تاريخ، پر 31 ڏينهن کان وڌيڪ نه. اسان generate _broker_report_request ۾ API کي رپورٽ تيار ڪرڻ لاءِ درخواست موڪليندا آهيون ، جواب ۾ هڪ taskId حاصل ڪريو. ان کان پوء، هن taskId کي استعمال ڪندي، اسان حاصل _broker_report_response مان ڊيٽا حاصل ڪندا آهيون .

تنهنڪري دستاويز چوي ٿو، حقيقت ۾ اتي nuances آهن. پنهنجا هٿ ڏسو:
  • توهان کي انهن تاريخن لاءِ هميشه لاءِ TaskID محفوظ ڪرڻ جي ضرورت آهي. 
  • جتان جيڪڏھن توھان ان کي وڃائي ڇڏيو، پوءِ درخواست ڪيل تاريخن لاءِ رپورٽ پھريون اينديون جنريشن جي درخواست جي جواب ۾، 
  • ۽ پوء اهو سڀ ڪجهه نه ايندو.

[/ spoiler] اچو ته ڪوڊ لکڻ شروع ڪريون

تاريخ حاصل ڪرڻ جو طريقو، موجوده تاريخ مان ذخيري کي مدنظر رکندي

const getDateSubDay = (subDay = 5، start = true) => {     const 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,         }, });

نتيجو:

  • حڪم جي پهرين عمل جي نتيجي ۾، اسان کي حاصل ڪيو taskId. 
  • رپورٽ بروکر جي پاسي تي پيدا ٿيڻ شروع ٿئي ٿي. جڏهن اهو تيار آهي اڻڄاتل آهي، اسان انتظار ڪريون ٿا ۽ وقتي طور تي رپورٽ جي توقع ۾ ٽاسڪ آئي ڊي کي ڇڪيو.
  • ڇو؟ ڇاڪاڻ ته جيڪڏهن رپورٽ تيار نه آهي، اهو هڪ غلطي اڇلائي ٿو. جيڪڏهن رپورٽ بروکر جي پاسي تي تيار نه آهي، پوء اهو توهان جي ڪوڊ ۾ هڪ غلطي آهي. مھرباني ڪري عمل ڪريو: 30058|INVALID_ARGUMENT|ٽاسڪ اڃا مڪمل نه ٿيو آھي، مھرباني ڪري وري ڪوشش ڪريو

انتظار ڪرڻ ۽ رپورٽ حاصل ڪرڻ جو ڪوڊ ڪجهه هن طرح نظر اچي ٿو.

const timer = async time => {     واپسي نئون وعدو (resolve => setTimeout (حل ڪرڻ، وقت))؛ }   const getBrokerResponseByTaskId = async (taskId، صفحو = 0) => {     ڪوشش ڪريو {         موٽڻ جو انتظار ڪريو (sdk.operations.getBrokerReport)({             getBrokerReportRequest: {                 taskId,                 page,             },         });     } پڪڙيو (اي) {         console.log(‘انتظار’، اي)؛         انتظار ٽائمر (10000)؛         واپسي جو انتظار getBrokerResponseByTaskId(taskId, page);     } } ;

پوءِ به ساڳيو جادو ٿيندو آهي. اسان اسان جي اسڪرپٽ کي روڪيو، ان کي ٻيهر شروع ڪريو، اسان وٽ ڪا ٽاسڪ آئي ڊي ناهي. اسان ٽاسڪ آئي ڊي جي درخواست سان ڪوڊ تي عمل ڪريون ٿا، پر اسان کي هاڻي ٽاسڪ آئي ڊي نه ملي، پر فوري طور تي رپورٽ. جادو! ۽ سڀ ڪجھ ٺيڪ ٿي ويندو جيڪڏهن اهو هميشه وانگر هو. پر هڪ مهيني ۾ ڪو به ڊيٽا نه هوندو. مفيد :

  • ٿورو نظريو هتي ۽ هتي بيان ڪيو ويو آهي .
  • ڪوڊ گڏ ڪرڻ سان، مسودو ڪجهه هن طرح نظر ايندو.

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

  • جيڪڏهن ڪو ماڻهو هن ۾ اچي ٿو، ته پوء ڀلي ڪري آيا مسئلي تي . هن جادو جي مرمت ڪرڻ کان پوء، اهو پنهنجي طاقت وڃائي ڇڏيندو ۽ ڪجهه مختلف ٿي ويندو. پر موجوده وقت (03/21/2023) اهو ئي ڪم ڪري ٿو.

GetDivendsForeign Issuer

ڪو ماڻهو سوچي سگھي ٿو ته اهو طريقو اڳئين هڪ جهڙو آهي ۽ توهان هڪ واحد طريقو استعمال ڪري سگهو ٿا جنهن ۾ توهان صرف آپريشن جو نالو تبديل ڪريو. پر انهن کي اندازو نه هو!  اتي نالو ڏيڻ جي طريقن ۽ موٽڻ واري معلومات ۾ ٻنهي ۾ بلڪل مختلف آهي. ۽ صفحي جي ڳڻپ 0 کان شروع ٿئي ٿي، پوءِ 1 کان. ان سڄي ڳالھ ۾ مونجھارو نه پوڻ لاءِ، ٻن مختلف طريقن سان لکڻ آسان آھي. جيڪو عجيب آهي، ڇاڪاڻ ته ڪم جو منطق ساڳيو آهي. مون هڪ ڊگهي وقت تائين ٿڪايو جڏهن مون هڪ طريقو ٺاهڻ جي ڪوشش ڪئي ۽ اتي گهٽ ڪوڊ هو. هتي ڪو به مثال نه هوندو.

GetOperations ByCursor

ٽنهي مان منهنجو پسنديده. جيتوڻيڪ سڀ کان وڌيڪ صحيح نه، پر سڀ کان وڌيڪ مناسب. اسان اڪائونٽ ٺاهڻ جي شروعات کان وٺي وڌ ۾ وڌ ممڪن تاريخ تائين درخواست ڪريون ٿا (ڪائونٽ بند ڪرڻ يا موجوده هڪ). اسان جواب حاصل ڪيو، ڪرسر وٺو ۽ ٻيهر درخواست ڪريو جيستائين ڊيٽا موجود آهي.  ۽ ڪوڊ مٿي ڏنل مثالن جي ڀيٽ ۾ وڌيڪ جامع آهي.

const timer = async time => {     واپسي نئون وعدو (resolve => setTimeout (حل ڪرڻ، وقت))؛ }   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، آپريشن کان ٻيهر لوڊ ڪريو. پر اهو هڪ الڳ مضمون ۾ ورهائي سگهجي ٿو. مکيه nuances مان جيڪي توهان کي منهن ڏيڻو پوندو گلو آپريشن ۽ هڪ بروکرج رپورٽ آهي.

  •  جيڪڏهن اڄ توهان هڪ بروکرج رپورٽ حاصل ڪئي ۽ گهربل تاريخن لاء ٽرانزيڪشن، اهو سڀ ڊيٽابيس ۾ رکو، پوء ڪو مسئلو ناهي. 
  • توهان کي سڀاڻي مسئلا هوندا جڏهن توهان رپورٽ ۽ عملن مان ڊيٽا جو ايندڙ حصو وصول ڪندا ۽ انهن کي موجوده ڊيٽابيس سان هم وقت سازي ڪرڻ جو فيصلو ڪندا. 
  • پروسيسنگ کان پوءِ بي ترتيب يا ID تبديل ڪرڻ بابت ڪيتريون ئي نونسون
  • پوءِ OTC مارڪيٽ لاءِ، id جي بلڪل به نه ملندي آهي.
  •  انهي سان گڏ هم وقت سازي جا اوزار، جيڪي ٻيهر نه ٺهندا آهن، API جي خاصيتن جي ڪري. پر اها ٻي ڪهاڻي آهي.

اچو ته اسان جي ايپليڪيشن ۾ آپريشن بابت معلومات حاصل ڪرڻ ۾ شامل ڪريو. بنيادي سوال اهو ٿيندو جتي ڊيٽا پروسيس ڪئي ويندي ۽ محفوظ ڪئي ويندي.

  •  جيڪڏھن توھان اھو پاڻ لاءِ ڪريو ٿا، توھان استعمال ڪندا ساڳي ڊيٽا مختلف ڊوائيسز کان. پوء توهان کي سرور تي ڊيٽا کي پروسيس ۽ ذخيرو ڪرڻ جي ضرورت آهي.
  • جيڪڏهن توهان وٽ ڪيترائي مختلف ڊيٽا استعمال ڪيا ويا آهن ڪيترن ئي مختلف صارفين طرفان، پوء توهان کي اهو فيصلو ڪرڻو پوندو ته ڇا وڌيڪ اهم آهي: صارفين جي رفتار يا توهان جي پاسي تي لوهه جي بچت. جيڪو به هارڊويئر جي لامحدود مقدار کي برداشت ڪري سگهي ٿو اهو هر شيءِ کي پنهنجي سرور تي شمار ڪري ٿو ۽ ان کي صارفين لاءِ سپر تيز بڻائي ٿو، صارف وسيلن کي بچائي ٿو، جهڙوڪ بيٽري ۽ ٽرئفڪ، جيڪو فون تي تمام ضروري آهي.

موڙ ۾، برائوزر ۾ ڳڻپ اصول ۾ سڀ کان وڌيڪ بهتر حل نه آهي. تنهن ڪري، جيڪو قيمتي نه آهي، اسان ان کي اسان جي سرور تي غور ڪيو. باقي اسان ڪلائنٽ تي ڇڏي ڏيون ٿا. مان واقعي وٺڻ چاهيان ٿو ۽ سرور تي ڪميشن جي حساب سان. پر هتي اچي ٿو nuance سڏيو ويندو آهي “interactivity”. اچو ته چئو ته توهان وٽ هزارين آپريشن آهن ۽ انهن کي حاصل ڪرڻ ۾ پنج منٽ لڳن ٿا. هن وقت صارف وٽ ڇا هوندو؟ اسپنر؟ ترقي؟ Infa بابت ڪيترو اپ لوڊ ڪيو ويو؟ اهو “فعال انتظار” استعمال ڪرڻ لاء مثالي آهي جڏهن پروسيس ۾ صارف اڳ ۾ ئي ڪجهه ڏسي سگهي ٿو. هتي نتيجو آهي:اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.

  • صفحي جي لوڊشيڊنگ
  • سڀني انوائسز جي درخواست ڪئي وئي آهي
  • ان کان پوء، سڀني ٽرانزيڪشن تي عملدرآمد ٽرانزيڪشن لاء ڪميشن سان گڏ سڀني اڪائونٽن لاء درخواست ڪئي وئي آهي. جيئن ڊيٽا ملي ٿي، اهو برائوزر ۾ پيش ڪيو ويو آهي.

هر دفعي واقعن ۾ ڊيٽا کي فلٽر نه ڪرڻ لاءِ، اسان هر اڪائونٽ لاءِ پنهنجو پنهنجو ايونٽ ڪڍون ٿا. هن وانگر:

socket.emit(‘sdk:getOperationsCommissionResult_’ + accountId, {                 شيون: ڊيٽا؟.items,                 inProgress: Boolean(nextCursor), });

لانچ ڪرڻ جو مسودو ھتي آھي: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…step3 اڳتي هلي. اهو تمام سٺو آهي ته توهان هن لائن کي پڙهيو آهي! 

دلچسپي جي معلومات جي حساب ۽ پيداوار

ان تي منحصر آهي ته ڪنهن کي ڪهڙي معلومات جي ضرورت آهي. تنهن ڪري، مان توهان کي فوري طور تي ٻڌايان ٿو مکيه nuances جنهن سان توهان منهن ڪندا.

قيمتن سان ڪم ڪرڻ 

هرڪو جيڪو فنانس سان ڪم ڪري ٿو اهو ڄاڻي ٿو ته پئسن جي ٽرانزيڪشن صرف مڪمل انگن سان ٿيڻ گهرجي. ڊيسيمل پوائنٽ کان پوءِ قدرن جي غلطيءَ جي ڪري ۽ وڏي تعداد ۾ عملن سان گڏ مجموعي غلطي. اهو ئي سبب آهي ته سڀئي قيمتون هيٺ ڏنل MoneyValue فارميٽ ۾ پيش ڪيون ويون آهناسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.

ميدانقسموصف
ڪرنسيتاراسٽرنگ ISO ڪرنسي ڪوڊ
يونٽint64مجموعو جو پورو حصو، منفي نمبر ٿي سگھي ٿو
نانوint32رقم جو جزوي حصو، هڪ منفي نمبر ٿي سگهي ٿو

اسان انھن کي الڳ الڳ پروسيس ڪريون ٿا، پوء انھن کي قيمت جي قيمت تي آڻيو:

quotation.units + quotation.nano / 1e9

مستقبل جي معاهدي جي قيمت

مستقبل جي قيمت پوائنٽن ۾ پيش ڪئي وئي آهي، جڏهن توهان وٽ ڪرنسي جو مستقبل آهي، توهان کي ڄاڻڻ جي ضرورت آهي شرح. ۽ يقيناً قيمت پوائنٽن ۾ ۽ قيمت قدم. جڏهن توهان ٽرانزيڪشن مان نفعي جو حساب ڪريو ٿا، اهو گول ڪري سگهي ٿو، ڇاڪاڻ ته. جيڪڏھن توھان حساب ڪريو مجموعي رقم کي مقدار جي قيمت سان ضرب ڪندي. هتي توهان کي محتاط رکڻ جي ضرورت آهي. في الحال، اسان ڏسنداسين ته اهو ڪيئن ٿي وڃي. هي ڪرنسي جي مستقبل تي لاڳو ٿئي ٿو، ٻين هنڌن تي هن سان سڀ ڪجهه ٺيڪ آهي.اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.

OTC مارڪيٽ

هن مارڪيٽ ۾ تمام گهڻيون خاصيتون آهن، تنهنڪري اچو ته ان تي عملن جو الڳ الڳ مطالعو ڪريون. جڏهن توهان عملن کي هم وقت سازي ڪرڻ شروع ڪندا، اهو ظاهر ٿيندو ته توهان کي اوزار کي صحيح طرح سان ملائڻ لاءِ ساڳي شڪل ۾ فيگي/ٽڪر آڻڻو پوندو. جڏهن توهان هن کي بروکرج جي رپورٽ سان هم وقت سازي ڪرڻ شروع ڪندا، اهو ظاهر ٿيندو ته ساڳئي ٽرانزيڪشن جي tradeID کي ٽرانزيڪشن جي شروعات ۾ خط آهن ۽ اهي بروکرج رپورٽ ۾ نه آهن. تنهن ڪري، انهن جو مقابلو نٿو ڪري سگهجي… احم-آهيم… مقابلي سان! مون واپار جو وقت، ٽِڪر ۽ ملاپ ڪيو ته هڪ tradeId ٻئي ۾ موجود آهي. صحيح، مون کي خبر ناهي. ڪير به ان سان منهن ڏئي ٿو ۽ ڪير ان جي پرواهه ڪري ٿو، اچو ته مسئلي ڏانهن وڃو يا هڪ نئين شروعات ڪريو.اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.

اوزارن تي رياضياتي عمل

اهو ناممڪن آهي، بغير ڏسڻ جي، پوري لسٽ سان رياضياتي عملن کي انجام ڏيڻ. گرم کي نرم ۾ شامل نه ڪرڻ لاءِ، اسان هميشه ڪرنسي جي جانچ ڪندا آهيون ۽ صرف ان صورت ۾ پروسيس ڪندا آهيون جڏهن اسان کي پڪ هجي ته ڪرنسي ملن ٿا، ۽ پوائنٽون گهربل ڪرنسي ۾ تبديل ٿي وڃن ٿيون. بينڪ نمبرن سان ڪم ڪرڻ بابت ڄاڻ سان هٿياربند، اسان حساب ڪنداسين ته هر هڪ اڪائونٽ تي خرچ ڪيل ڪميشن. هن وانگر: https://github.com/pskucherov/tcsstat/tree/step4 https://github.com/pskucherov/tcsstat/compare/step3…step4اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.   

Microservice تيار آهي!

https://github.com/pskucherov/tcsstat هڪ هوم ورڪ جي طور تي، توهان چيڪ ڪري سگهو ٿا ته خدمت سست ڪنيڪشن سان ڪم ڪري ٿي، جڏهن ڪنيڪشن ٽٽي وڃن ٿا، جڏهن انٽرنيٽ ختم ٿي وڃي ٿي، جڏهن بروکر جي حصي ۾ غلطيون يا ختم ٿيل حدون. 

نتيجن ۽ مستقبل لاء منصوبا

  • بنيادي عملن بابت ڄاڻو ۽ Invest API سان ڪم ڪرڻ
  • وقت گذاريو ~ 10 ڪلاڪ
  • مشڪل سطح ~ جونيئر + / گھٽ وچولي 

جيڪڏهن توهان microservice کي بهتر ڪرڻ جاري رکو ٿا، توهان شايد هن وانگر ڪجهه ختم ڪري سگهو ٿا

https://opexbot.info

  اها منهنجي ترقي آهي، انهن لاءِ جيڪي پاڻ کي سمجهڻ، ڊوڙڻ ۽ ڳڻڻ ۾ ڏاڍا سست آهن. آئون صارفين جي درخواست تي اتي تجزياتي شامل ڪرڻ جو منصوبو ڪريان ٿو. جيڪڏھن توھان مضمون پسند ڪيو، پوء منھنجي ٽيليگرام چينل کي سبسڪرائب ڪريو . اسان ترقي ڪري رهيا آهيون هڪ مائڪرو سروس استعمال ڪندي Tinkoff Invest API استعمال ڪندي بروکرج رپورٽن سان ڪم ڪرڻ ۽ ڪميشن جي حساب سان خودڪار ڪرڻ لاءِ.

Pavel
Rate author
Add a comment

  1. Isakiiev

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

    Reply