Tinkoff लगानी को लागी तथ्याङ्क सेवा को विकास को पछाडि प्रेरणादायकहरु थिए:
- Habré मा लेख “के Tinkoff लगानी भनिरहेको छैन”
- प्लेटफर्म प्रयोगकर्ताहरूको इच्छाहरूको विश्लेषण
- आयोग को गणना को बारे मा एक लेख ।
- के छलफल हुने ?
- चरणबद्ध तथ्याङ्क सेवा विकास गर्दै:
- Tinkoff Invest API मा जडान
- ब्राउजरमा Tinkoff Invest API बाट डेटा कोर्दै
- ब्रोकरेज रिपोर्ट र लेनदेन प्राप्त गर्दै
- GetBrokerReport
- हालको मितिबाट घटाउलाई ध्यानमा राख्दै मिति प्राप्त गर्ने विधि
- रिपोर्ट उत्पादन अनुरोध
- नतिजा:
- लाभांश विदेशी जारीकर्ता प्राप्त गर्नुहोस्
- कर्सरद्वारा सञ्चालन गर्नुहोस्
- ब्याजको जानकारीको गणना र आउटपुट
- मूल्यहरु संग काम
- वायदा अनुबंधको लागत
- OTC बजार
- उपकरणहरूमा गणितीय कार्यहरू
- Microservice तयार छ!
- भविष्यको लागि निष्कर्ष र योजनाहरू
- https://opexbot.info
के छलफल हुने ?
- विकासको बारेमा मात्र लागू गरिएको अंश।
- वास्तविक ज्ञान र अनुभव, जुन वित्तीय उपकरणहरूसँग काम गर्न धेरै महत्त्वपूर्ण छ।
- काम गर्न मुद्दाहरूको सिंहावलोकन
त्यसोभए, म व्यापार तथ्याङ्कहरू गणना गर्न चाहन्छु र यसलाई सुविधाजनक तरिकामा गर्न चाहन्छु।
चरणबद्ध तथ्याङ्क सेवा विकास गर्दै:
- Tinkoff Invest API मा जडान
- ब्राउजरमा Tinkoff Invest API बाट डेटा कोर्दै
- ब्रोकरेज रिपोर्ट र लेनदेन प्राप्त गर्दै
- ब्याजको जानकारीको गणना र आउटपुट
- भविष्यको लागि निष्कर्ष र योजनाहरू
Tinkoff Invest API मा जडान
API मा जडान गर्न, तपाइँ कागजात https://github.com/Tinkoff/investAPI#sdk बाट कुनै पनि 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(sdk.users.getAccounts()) को प्रतीक्षा गर्नुहोस्; })();
नतिजा: तपाईंको खाताहरूको सूची कन्सोलमा प्रदर्शित हुनेछ। उदाहरण को लागी, हामी nuances विश्लेषण गरौं:
- खाताहरूको सूचीमा त्यहाँ “लगानी बैंक” छ, जसको साथ तपाईं 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 सर्भर सिर्जना गर्छौं र investapi मा जडान गर्छौं।
- ब्राउजर (ग्राहक) पक्षमा, हामी सकेट मार्फत सर्भरमा जडान गर्छौं र ब्रोकरबाट खाता डेटा अनुरोध गर्दछौं।
- हामीले सर्भरमा ब्रोकरबाट डाटा प्राप्त गर्छौं, त्यसपछि ग्राहकलाई पठाउँछौं। जब तिनीहरू ग्राहकमा प्राप्त हुन्छन्, तिनीहरू ब्राउजरमा प्रदर्शित हुन्छन्।
नतिजा: ब्राउजर कन्सोलमा हामी खाताहरूको बारेमा जानकारी देख्न सक्छौं। त्यो हो, अन्तिम चरणमा, हामीले सर्भर कन्सोल (नोडेज) मा खाताहरूको बारेमा जानकारी देख्यौं, हालको चरणमा, हामीले यो जानकारी ग्राहक (ब्राउजर) मा हस्तान्तरण गर्यौं।
अब यसलाई बनाउनुहोस् ताकि तपाइँ ब्राउजरबाट खाता चयन गर्न सक्नुहुनेछ, र यदि त्यहाँ कुनै टोकन छैन भने, कन्सोलमा त्रुटि पठाइन्छ। काम सरल छ र नयाँ केहि छैन, त्यसैले म कमिटहरूमा मात्र लिङ्कहरू दिन्छु
- https://github.com/pskucherov/tcsstat/commit/7e1ac57061e5e971588479015b06d8814d6609a9
- 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
ब्रोकरेज रिपोर्ट र लेनदेन प्राप्त गर्दै
ब्रोकरेज रिपोर्ट र लेनदेन प्राप्त गर्न तीन तरिकाहरू छन्
सुरुदेखि नै यो जान्न महत्त्वपूर्ण छ:
- ब्रोकरेज रिपोर्ट T-3 मोडमा उत्पन्न हुन्छ, अर्थात्। व्यापारहरू तिनीहरूको वास्तविक कार्यान्वयन पछि त्यहाँ प्रदर्शित हुन्छन्।
- तदनुसार, तपाईंले यो प्रतिवेदन पछिल्लो दुई दिनको लागि अनुरोध गर्नुभयो भने, यो तीन दिनमा तयार हुनेछ।
- अन्तिम दिनका लागि लेनदेनहरू प्राप्त गर्न, हामी लेनदेनहरू प्राप्त गर्ने विधि प्रयोग गर्छौं, तर याद गर्नुहोस् कि ब्रोकरेज रिपोर्ट उत्पन्न भएपछि तिनीहरूको आईडी र सामग्री परिवर्तन हुन सक्छ।
GetBrokerReport
ब्रोकरेज रिपोर्ट प्राप्त गर्न, तपाईंले खाता आईडी, रिपोर्टको सुरु मिति र समाप्ति मिति लिन आवश्यक छ, तर 31 दिन भन्दा बढी छैन। हामी _broker_report_request generate मा API लाई रिपोर्ट उत्पन्न गर्न अनुरोध पठाउँछौं , प्रतिक्रियामा टास्कआईडी प्राप्त गर्नुहोस्। त्यस पछि, यो टास्कआईडी प्रयोग गरेर, हामीले get _broker_report_response बाट डाटा पाउँछौं। [स्पोइलर शीर्षक=”त्यसैले कागजातले भन्छ, वास्तवमा त्यहाँ सूक्ष्मताहरू छन्। आफ्नो हातहरू हेर्नुहोस्:”]
- तपाईंले यी मितिहरूको लागि सधैंको लागि TaskID बचत गर्न आवश्यक छ।
- यदि तपाईंले यसलाई हराउनुभयो भने, अनुरोध गरिएको मितिहरूको लागि रिपोर्ट पहिले जेनेरेशन अनुरोधको प्रतिक्रियामा आउनेछ,
- र त्यसपछि यो बिल्कुल आउँदैन।
[/ spoiler] कोड लेख्न सुरु गरौं
हालको मितिबाट घटाउलाई ध्यानमा राख्दै मिति प्राप्त गर्ने विधि
const getDateSubDay = (subDay = 5, start = true) => { const date = new Date(); date.setUTCDate(date.getUTCDate() – उपदिन); यदि (स्टार्ट) { date.setUTCHours(0, 0, 0, 0); } अन्य { date.setUTCHours(२३, ५९, ५९, ९९९); } फिर्ता मिति; };
रिपोर्ट उत्पादन अनुरोध
const ब्रोकररिपोर्ट = पर्खनुहोस् (sdk.operations.getBrokerReport)({ generateBrokerReportRequest: { accountId, from, to, }, });
नतिजा:
- आदेशको पहिलो कार्यान्वयनको परिणामको रूपमा, हामीले टास्कआईडी पाउँछौं।
- रिपोर्ट ब्रोकरको पक्षमा उत्पन्न हुन सुरु हुन्छ। जब यो तयार हुन्छ अज्ञात छ, हामी पर्खन्छौं र आवधिक रूपमा रिपोर्टको प्रत्याशामा टास्कआईडी तान्दछौं।
- किन? किनभने यदि रिपोर्ट तयार छैन भने, यसले त्रुटि फ्याँक्छ। यदि रिपोर्ट ब्रोकरको पक्षमा तयार छैन भने, यो तपाईंको कोडमा त्रुटि हो। कृपया प्रक्रिया गर्नुहोस्: 30058|INVALID_ARGUMENT|कार्य अझै पूरा भएको छैन, कृपया पछि पुन: प्रयास गर्नुहोस्
प्रतिवेदन पर्खने र प्राप्त गर्ने कोड यस्तो देखिन्छ।
const timer = async time => { नयाँ प्रतिज्ञा फिर्ता गर्नुहोस्(resolve => setTimeout(समाधान, समय)); } const getBrokerResponseByTaskId = async (taskId, पृष्ठ = 0) => { प्रयास गर्नुहोस् { रिटर्न पर्खनुहोस् (sdk.operations.getBrokerReport)({ getBrokerReportRequest: { taskId, पृष्ठ, }, }); } समात्नुहोस् (e) { console.log(‘wait’, e); प्रतिक्षा टाइमर (10000); getBrokerResponseByTaskId(taskId, पृष्ठ); } };
त्यसपछि उस्तै जादू हुन्छ। हामी हाम्रो स्क्रिप्ट रोक्छौं, यसलाई फेरि सुरु गर्छौं, हामीसँग टास्कआईडी छैन। हामी टास्कआईडी अनुरोधको साथ कोड कार्यान्वयन गर्छौं, तर हामी अब टास्कआईडी प्राप्त गर्दैनौं, तर तुरुन्तै रिपोर्ट। जादू! र यो सधैं यस्तै थियो भने सबै ठीक हुनेछ। तर एक महिनामा कुनै पनि डाटा हुनेछैन। उपयोगी :
https://github.com/pskucherov/tcsstat/tree/step3.1 https://github.com/pskucherov/tcsstat/compare/step3.1
- यदि कसैले यो भेट्यो भने, त्यसपछि मुद्दामा स्वागत छ । तिनीहरूले यो जादू मर्मत गरेपछि, यसले आफ्नो शक्ति गुमाउनेछ र केहि फरक हुनेछ। तर हालको क्षणमा (03/21/2023) यो त्यस्तै काम गर्दछ।
लाभांश विदेशी जारीकर्ता प्राप्त गर्नुहोस्
कसैले सोच्न सक्छ कि यो विधि अघिल्लो एक जस्तै छ र तपाईले एकल विधि प्रयोग गर्न सक्नुहुन्छ जसमा तपाईले अपरेशनको नाम मात्र परिवर्तन गर्नुहुन्छ। तर तिनीहरूले अनुमान गरेनन्! त्यहाँ नामकरण विधि र फिर्ता जानकारी दुवै मा धेरै फरक छ। र पृष्ठ गणना 0 बाट सुरु हुन्छ, त्यसपछि 1 बाट। यी सबैमा भ्रमित नहुनको लागि, दुई फरक तरिकाहरू लेख्न सजिलो छ। जुन अनौठो छ, किनभने कामको तर्क एउटै छ। मैले लामो समयको लागि थुकें जब मैले एउटा विधि बनाउन प्रयास गरे र त्यहाँ कम कोड थियो। यहाँ कुनै उदाहरण हुनेछैन।
कर्सरद्वारा सञ्चालन गर्नुहोस्
तीन मध्ये मेरो मनपर्ने। यद्यपि सबैभन्दा सही होइन, तर सबैभन्दा पर्याप्त। हामी खाता सिर्जना गर्ने सुरुदेखि अधिकतम सम्भावित मिति (खाता बन्द गर्ने वा हालको एक) सम्म अनुरोध गर्छौं। हामीले जवाफ पाउँछौं, कर्सर लिन्छौं र डेटा हुँदासम्म पुन: अनुरोध गर्छौं। र कोड माथिका उदाहरणहरूमा भन्दा बढी संक्षिप्त छ।
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-3, अपरेशनहरूबाट पुन: लोड गर्नुहोस्। तर यसलाई छुट्टै लेखमा विभाजन गर्न सकिन्छ। तपाईले सामना गर्नुहुने मुख्य बारीकियों मध्ये ग्लु अपरेशन र ब्रोकरेज रिपोर्ट हो।
- यदि आज तपाईंले ब्रोकरेज रिपोर्ट र आवश्यक मितिहरूको लागि लेनदेन प्राप्त गर्नुभयो भने, यो सबै डाटाबेसमा राख्नुहोस्, त्यसपछि कुनै समस्या छैन।
- तपाईंले रिपोर्ट र अपरेशनहरूबाट डाटाको अर्को भाग प्राप्त गर्दा र अवस्थित डाटाबेससँग सिङ्क्रोनाइज गर्ने निर्णय गर्दा भोलि तपाईंलाई समस्याहरू हुनेछन्।
- बेमेल वा प्रशोधन पछि आईडी परिवर्तनको बारेमा धेरै सूक्ष्मताहरू
- त्यसो भए OTC बजारको लागि, id सँग मेल खाँदैन।
- साथसाथै सिंक्रोनाइज गर्ने उपकरणहरूको सूक्ष्मताहरू, जुन फेरि एपीआईको विशेषताहरूको कारणले मेल खाँदैन। तर त्यो अर्को कथा हो।
हाम्रो एप्लिकेसनमा अपरेशनहरू बारे जानकारी प्राप्त गर्दै थपौं। मुख्य प्रश्न डाटा कहाँ प्रशोधन र भण्डारण हुनेछ।
- यदि तपाइँ यसलाई आफ्नै लागि गर्नुहुन्छ भने, तपाइँ विभिन्न उपकरणहरूबाट उही डेटा उपभोग गर्नुहुनेछ। त्यसपछि तपाईंले सर्भरमा डाटा प्रक्रिया र भण्डारण गर्न आवश्यक छ।
- यदि तपाइँसँग धेरै फरक प्रयोगकर्ताहरू द्वारा उपभोग गरिएको धेरै फरक डेटा छ भने, तपाइँले निर्णय गर्न आवश्यक छ कि के बढी महत्त्वपूर्ण छ: प्रयोगकर्ताहरूको गति वा तपाइँको छेउमा फलामको बचत। जसले असीमित मात्रामा हार्डवेयर किन्न सक्छ उसले आफ्नो सर्भरमा सबै कुरा गणना गर्छ र प्रयोगकर्ताहरूको लागि धेरै छिटो बनाउँछ, प्रयोगकर्ता स्रोतहरू बचत गर्छ, जस्तै ब्याट्री र ट्राफिक, जुन फोनहरूमा धेरै महत्त्वपूर्ण छ।
बारीमा, ब्राउजरमा गणना सिद्धान्तमा सबैभन्दा इष्टतम समाधान होइन। त्यसकारण, के महँगो छैन, हामी यसलाई हाम्रो सर्भरमा विचार गर्छौं। हामी बाँकी ग्राहकलाई छोड्छौं। म साँच्चै सर्भरमा आयोग लिन र गणना गर्न चाहन्छु। तर यहाँ “अन्तरक्रियात्मकता” भनिने सूक्ष्मता आउँछ। मानौं तपाईंसँग हजारौं अपरेशनहरू छन् र तिनीहरूलाई प्राप्त गर्न पाँच मिनेट लाग्छ। यस समयमा प्रयोगकर्तासँग के हुनेछ? स्पिनर? प्रगति? जानकारी कति अपलोड भयो ? यो “सक्रिय प्रतीक्षा” को प्रयोग गर्न को लागी आदर्श छ जब प्रक्रिया मा प्रयोगकर्ता पहिले नै केहि देख्न सक्छ। यहाँ नतिजा छ:
- पृष्ठ लोड गर्दै
- सबै बीजकहरू अनुरोध गरिन्छ
- त्यस पछि, निष्पादित लेनदेनको लागि कमिशन सहित सबै लेनदेनहरू सबै खाताहरूको लागि अनुरोध गरिन्छ। डाटा प्राप्त भएपछि, यो ब्राउजरमा रेन्डर हुन्छ।
प्रत्येक पटक घटनाहरूमा डेटा फिल्टर नगर्नको लागि, हामी प्रत्येक खाताको लागि हाम्रो आफ्नै घटना तान्दछौं। यो जस्तो:
socket.emit(‘sdk:getOperationsCommissionResult_’ + accountId, { items: data?.items, inProgress: Boolean(nextCursor), });
लन्च गर्नको लागि मस्यौदा यहाँ छ: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…step3 अगाडि बढ्दै। यो राम्रो छ कि तपाईंले यो लाइन पढ्नुभयो!
ब्याजको जानकारीको गणना र आउटपुट
कसलाई कस्तो जानकारी चाहिन्छ भन्नेमा भर पर्छ। त्यसकारण, म तपाईंलाई तुरुन्तै मुख्य न्युनन्सहरू बताउँछु जुन तपाईंले सामना गर्नुहुनेछ।
मूल्यहरु संग काम
वित्त संग काम गर्ने सबैलाई थाहा छ कि पैसा लेनदेन मात्र पूर्ण संख्या संग प्रदर्शन गर्नुपर्छ। दशमलव बिन्दु पछि मानहरूको अशुद्धता र अपरेशनहरूको ठूलो संख्याको साथ संचयी त्रुटिको कारण। त्यसैले सबै मूल्यहरू निम्न MoneyValue ढाँचामा प्रस्तुत गरिएका छन्
क्षेत्र | प्रकार | विवरण |
---|---|---|
मुद्रा | तार | स्ट्रिङ ISO मुद्रा कोड |
एकाइहरू | int64 | योगफलको पूर्णांक भाग, ऋणात्मक संख्या हुन सक्छ |
नानो | int32 | रकमको आंशिक भाग, ऋणात्मक संख्या हुन सक्छ |
हामी तिनीहरूलाई अलग-अलग प्रशोधन गर्छौं, त्यसपछि तिनीहरूलाई मूल्य मूल्यमा ल्याउँछौं:
quotation.units + quotation.nano / 1e9
वायदा अनुबंधको लागत
फ्यूचरको मूल्य बिन्दुहरूमा प्रस्तुत गरिन्छ, जब तपाईंसँग मुद्रा भविष्य हुन्छ, तपाईंले दर जान्न आवश्यक छ। र पक्कै पनि अंक र मूल्य चरण मा मूल्य। जब तपाईं लेनदेनबाट नाफा गणना गर्नुहुन्छ, यो गोली लाग्न सक्छ, किनभने। यदि तपाईले मूल्यलाई मात्राले गुणन गरेर कुल रकम गणना गर्नुहुन्छ। यहाँ तपाईं सावधान हुन आवश्यक छ। अहिलेको लागि, हामी यो कसरी जान्छ हेर्नेछौं। यो मुद्रा फ्यूचरहरूमा लागू हुन्छ, अन्य ठाउँहरूमा यससँग सबै ठीक छ।
OTC बजार
यस बजारमा धेरै विशेषताहरू छन्, त्यसैले यसलाई अलग-अलग सञ्चालनहरू अध्ययन गरौं। जब तपाइँ अपरेसनहरू सिङ्क्रोनाइज गर्न सुरु गर्नुहुन्छ, यो बाहिर आउनेछ कि तपाइँले उपकरणलाई सही तरिकाले मिलाउनको लागि एउटै फारममा फिजी / टिकर ल्याउन आवश्यक छ। जब तपाइँ यसलाई ब्रोकरेज प्रतिवेदनसँग सिङ्क्रोनाइज गर्न सुरु गर्नुहुन्छ, यो उही लेनदेनको ट्रेडआईडी लेनदेनको सुरुमा अक्षरहरू छन् र ती ब्रोकरेज प्रतिवेदनमा छैनन्। त्यसकारण, तिनीहरूसँग तुलना गर्न सकिँदैन … अहेम-अहेम … तुलना गरेर! मैले ट्रेड टाइम, टिकर र एक ट्रेडआईडी अर्कोमा निहित छ भनेर मेल खाएँ। ठीक छ, मलाई थाहा छैन। जो कोहीले यो भेट्छ र कसले यसको ख्याल राख्छ, मुद्दामा आउनुहोस् वा नयाँ सुरु गर्नुहोस्।
उपकरणहरूमा गणितीय कार्यहरू
यो असम्भव छ, नहेरी, सम्पूर्ण सूची संग गणितीय कार्यहरू प्रदर्शन गर्न। नरममा न्यानो थप्न नदिनको लागि, हामी सँधै मुद्रा जाँच गर्छौं र मुद्रासँग मेल खान्छ र अंकहरू इच्छित मुद्रामा रूपान्तरित हुन्छन् भन्ने निश्चित भएमा मात्र मुद्रा जाँच गर्छौं। बैंक नम्बरहरूसँग काम गर्ने ज्ञानको साथ सशस्त्र, हामी प्रत्येक खातामा खर्च भएको कमीशन गणना गर्नेछौं। यो जस्तै: https://github.com/pskucherov/tcsstat/tree/step4 https://github.com/pskucherov/tcsstat/compare/step3…step4
Microservice तयार छ!
https://github.com/pskucherov/tcsstat गृहकार्यको रूपमा, तपाईंले सेवाले ढिलो जडानको साथ काम गर्छ कि गर्दैन, जडानहरू बिच्छेद हुँदा, इन्टरनेट विच्छेद हुँदा, दलालको पक्षमा त्रुटिहरू वा समयावधि समाप्त हुँदा जाँच गर्न सक्नुहुन्छ।
भविष्यको लागि निष्कर्ष र योजनाहरू
- आधारभूत कार्यहरू र Invest API सँग काम गर्ने बारे जान्नुहोस्
- समय ~ 10 घण्टा बितायो
- कठिनाई स्तर ~ जुनियर + / कम मध्य
यदि तपाइँ माइक्रोसर्भिसलाई परिष्कृत गर्न जारी राख्नुहुन्छ भने, तपाइँ यस्तो केहि संग समाप्त हुन सक्नुहुन्छ
https://opexbot.info
यो मेरो विकास हो, जो आफैं बुझ्न, दौडन र गणना गर्न धेरै अल्छी छन्। म त्यहाँ प्रयोगकर्ताहरूको अनुरोधमा एनालिटिक्स थप्ने योजना गर्छु। यदि तपाईंलाई लेख मन पर्यो भने, त्यसपछि मेरो टेलिग्राम च्यानललाई सदस्यता लिनुहोस् ।
Полезная статья. Не могу представить, сколько усилий автора потребовалось, чтобы все описать. Благодарю.