អ្នកបំផុសគំនិតនៅពីក្រោយការអភិវឌ្ឍន៍ សេវាកម្មស្ថិតិ សម្រាប់ Tinkoff Investments គឺ៖
- អត្ថបទនៅលើ Habre “អ្វីដែល Tinkoff Investments មិននិយាយ”
- ការវិភាគ បំណងប្រាថ្នា របស់ អ្នកប្រើ វេទិកា
- អត្ថបទ អំពីការគណនាកម្រៃជើងសារ ។
- តើអ្វីនឹងត្រូវពិភាក្សា?
- បង្កើតសេវាកម្មស្ថិតិមួយជំហានម្តងមួយៗ៖
- ការតភ្ជាប់ទៅ Tinkoff Invest API
- គូរទិន្នន័យពី Tinkoff Invest API នៅក្នុងកម្មវិធីរុករក
- ទទួលរបាយការណ៍ឈ្មួញកណ្តាល និងប្រតិបត្តិការ
- របាយការណ៍ GetBroker
- វិធីសាស្រ្តក្នុងការទទួលបានកាលបរិច្ឆេទដោយគិតគូរពីការដកពីកាលបរិច្ឆេទបច្ចុប្បន្ន
- របាយការណ៍ស្នើសុំបង្កើត
- លទ្ធផល៖
- ទទួលបានភាគលាភអ្នកចេញបរទេស
- GetOperationsByCursor
- ការគណនានិងលទ្ធផលនៃព័ត៌មានចំណាប់អារម្មណ៍
- ធ្វើការជាមួយតម្លៃ
- តម្លៃនៃកិច្ចសន្យាអនាគត
- ទីផ្សារ OTC
- ប្រតិបត្តិការគណិតវិទ្យាលើឧបករណ៍
- សេវាមីក្រូរួចរាល់ហើយ!
- សេចក្តីសន្និដ្ឋាន និងផែនការសម្រាប់អនាគត
- https://opexbot.info
តើអ្វីនឹងត្រូវពិភាក្សា?
- មានតែផ្នែកដែលបានអនុវត្តប៉ុណ្ណោះអំពីការអភិវឌ្ឍន៍។
- ចំណេះដឹង និងបទពិសោធន៍ពិតប្រាកដ ដែលមានសារៈសំខាន់ខ្លាំងណាស់ក្នុងការធ្វើការជាមួយឧបករណ៍ហិរញ្ញវត្ថុ។
- ទិដ្ឋភាពទូទៅនៃបញ្ហាដែលត្រូវដំណើរការ
ដូច្នេះ ខ្ញុំចង់គណនាស្ថិតិពាណិជ្ជកម្ម ហើយធ្វើវាតាមរបៀបងាយស្រួល។
បង្កើតសេវាកម្មស្ថិតិមួយជំហានម្តងមួយៗ៖
- ការតភ្ជាប់ទៅ Tinkoff Invest API
- គូរទិន្នន័យពី Tinkoff Invest API នៅក្នុងកម្មវិធីរុករក
- ទទួលរបាយការណ៍ឈ្មួញកណ្តាល និងប្រតិបត្តិការ
- ការគណនានិងលទ្ធផលនៃព័ត៌មានចំណាប់អារម្មណ៍
- សេចក្តីសន្និដ្ឋាន និងផែនការសម្រាប់អនាគត
ការតភ្ជាប់ទៅ Tinkoff Invest API
ដើម្បីភ្ជាប់ទៅ API អ្នកអាចយក sdk ណាមួយពីឯកសារ https://github.com/Tinkoff/investAPI#sdk ។ ឬកញ្ចប់ npm ` tinkoff-sdk-grpc-js` ។ វាជាការសំខាន់ណាស់ដែលកញ្ចប់ត្រូវបានធ្វើបច្ចុប្បន្នភាពទៅកំណែចុងក្រោយបំផុតដោយអ្នកអភិវឌ្ឍន៍។ ដំឡើង
npm ខ្ញុំ tinkoff-sdk-grpc-js
កំពុងពិនិត្យ
const { createSdk } = require(‘tinkoff-sdk-grpc-js’); // និមិត្តសញ្ញាដែលអាចទទួលបាន ដូចនេះ const TOKEN = ‘YOURAPI’; // ឈ្មោះកម្មវិធីដែលអ្នកអាចរកបាននៅក្នុងកំណត់ហេតុ TCS ។ const appName = ‘tcsstat’; const sdk = createSdk(TOKEN, appName); (async () => { console.log(await 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
យើងបន្តទៅជំហានមិត្តភាពបន្ទាប់ទៀត រន្ធ+investapi ហើយមើល ផ្នែក មានប្រយោជន៍ នៃជំហាននេះសម្រាប់ព័ត៌មានលម្អិតទាំងអស់។ ខ្ញុំនឹងរៀបរាប់លម្អិត៖
- នៅផ្នែកខាង nodejs (server) មានឯកសារ pages/api/investapi.js។ នេះគឺជាកន្លែងដែលយើងបង្កើតម៉ាស៊ីនមេ socket.io ហើយភ្ជាប់ទៅ investapi ។
- នៅផ្នែកកម្មវិធីរុករក (អតិថិជន) យើងភ្ជាប់ទៅម៉ាស៊ីនមេតាមរយៈរន្ធ និងស្នើសុំទិន្នន័យគណនីពីឈ្មួញកណ្តាល។
- យើងទទួលបានទិន្នន័យពីឈ្មួញកណ្តាលនៅលើម៉ាស៊ីនមេ បន្ទាប់មកផ្ញើវាទៅអតិថិជន។ នៅពេលដែលពួកគេត្រូវបានទទួលនៅលើម៉ាស៊ីនភ្ញៀវពួកគេត្រូវបានបង្ហាញនៅក្នុងកម្មវិធីរុករក។
លទ្ធផល៖ នៅក្នុងកុងសូលកម្មវិធីរុករកតាមអ៊ីនធឺណិត យើងអាចមើលឃើញព័ត៌មានអំពីគណនី។ នោះគឺនៅជំហានចុងក្រោយ យើងបានឃើញព័ត៌មានអំពីគណនីនៅក្នុងកុងសូលម៉ាស៊ីនមេ (nodejs) ក្នុងជំហានបច្ចុប្បន្ន យើងបានផ្ទេរព័ត៌មាននេះទៅអតិថិជន (កម្មវិធីរុករក)។
ឥឡូវនេះ ចូរបង្កើតវាដើម្បីឱ្យអ្នកអាចជ្រើសរើសគណនីមួយពីកម្មវិធីរុករក ហើយប្រសិនបើគ្មានសញ្ញាសម្ងាត់ទេនោះ កំហុសត្រូវបានផ្ញើទៅកុងសូល។ ការងារគឺសាមញ្ញ ហើយគ្មានអ្វីថ្មីទេ ដូច្នេះខ្ញុំផ្តល់តែតំណភ្ជាប់ទៅ commits ប៉ុណ្ណោះ។
- https://github.com/pskucherov/tcsstat/commit/7e1ac57061e5e971588479015b06d8814d6609a9
- https://github.com/pskucherov/tcsstat/commit/b28ac973a57494f5232589b4cb6b9fb13b8af759
មានប្រយោជន៍៖
- របៀបបង្កើតមិត្តបន្ទាប់និងរន្ធត្រូវបានពិពណ៌នាយ៉ាងលម្អិត នៅទីនេះ ។
- លេខកូដមិត្តភាពបន្ទាប់+រន្ធ+investapi៖
https://github.com/pskucherov/tcsstat/commit/a443a4ac1bb4f0aa898f638128755fe7391ee381 សម្រាប់អ្នកដែលខាងលើពិបាក នោះយើងនៅតែស្ថិតក្នុងដំណាក់កាលនេះ ហើយដោះស្រាយជាមួយកូដ។ ប្រសិនបើអ្នកមានសំណួរ – សួរ។ https://github.com/pskucherov/tcsstat/tree/step2 https://github.com/pskucherov/tcsstat/compare/step1…step2
ទទួលរបាយការណ៍ឈ្មួញកណ្តាល និងប្រតិបត្តិការ
មាន វិធីបីយ៉ាង ក្នុងការទទួលរបាយការណ៍ឈ្មួញកណ្តាល និងប្រតិបត្តិការ
តាំងពីដំបូង វាជាការសំខាន់ដែលត្រូវដឹង៖
- របាយការណ៍ឈ្មួញកណ្តាលត្រូវបានបង្កើតនៅក្នុងរបៀប T-3, i.e. ការជួញដូរត្រូវបានបង្ហាញនៅទីនោះបន្ទាប់ពីការប្រតិបត្តិពិតប្រាកដរបស់ពួកគេ។
- ដូច្នោះហើយ ប្រសិនបើអ្នកស្នើសុំរបាយការណ៍នេះក្នុងរយៈពេលពីរថ្ងៃចុងក្រោយ វានឹងរួចរាល់ក្នុងរយៈពេលបីថ្ងៃ។
- ដើម្បីធ្វើកិច្ចព្រមព្រៀងសម្រាប់ថ្ងៃចុងក្រោយ យើងប្រើវិធីសាស្រ្តសម្រាប់ការទទួលប្រតិបត្តិការ ប៉ុន្តែត្រូវចាំថាលេខសម្គាល់ និងខ្លឹមសាររបស់ពួកគេអាចផ្លាស់ប្តូរបន្ទាប់ពីការបង្កើតរបាយការណ៍ឈ្មួញកណ្តាល។
របាយការណ៍ GetBroker
ដើម្បីទទួលបានរបាយការណ៍ឈ្មួញកណ្តាល អ្នកត្រូវយកលេខសម្គាល់គណនី កាលបរិច្ឆេទចាប់ផ្តើម និងកាលបរិច្ឆេទបញ្ចប់នៃរបាយការណ៍ ប៉ុន្តែមិនលើសពី 31 ថ្ងៃ។ យើងផ្ញើសំណើដើម្បីបង្កើតរបាយការណ៍ទៅ API ក្នុង ការបង្កើត _broker_report_request ទទួលបាន taskId ជាការឆ្លើយតប។ បន្ទាប់ពីនោះ ដោយប្រើ taskId នេះ យើងទទួលបានទិន្នន័យពី get _broker_report_response។
- អ្នកត្រូវរក្សាទុក TaskID ជារៀងរហូតសម្រាប់កាលបរិច្ឆេទទាំងនេះ។
- ចាប់តាំងពីប្រសិនបើអ្នកបាត់បង់វា នោះសម្រាប់កាលបរិច្ឆេទដែលបានស្នើសុំ របាយការណ៍នឹងមកជាដំបូងដើម្បីឆ្លើយតបទៅនឹងសំណើជំនាន់។
- ហើយបន្ទាប់មកវានឹងមិនមកទាល់តែសោះ។
វិធីសាស្រ្តក្នុងការទទួលបានកាលបរិច្ឆេទដោយគិតគូរពីការដកពីកាលបរិច្ឆេទបច្ចុប្បន្ន
const getDateSubDay = (subDay = 5, start = true) => { const date = new Date(); date.setUTCDate(date.getUTCDate() – subDay); ប្រសិនបើ (ចាប់ផ្តើម) { date.setUTCHours(0, 0, 0, 0); } else { date.setUTCHours(23, 59, 59, 999); } កាលបរិច្ឆេទត្រឡប់មកវិញ; };
របាយការណ៍ស្នើសុំបង្កើត
const brokerReport = រង់ចាំ (sdk.operations.getBrokerReport)({ generateBrokerReportRequest: { accountId, from, to, }, });
លទ្ធផល៖
- ជាលទ្ធផលនៃការប្រតិបត្តិដំបូងនៃពាក្យបញ្ជាយើងទទួលបាន taskId ។
- របាយការណ៍ចាប់ផ្តើមត្រូវបានបង្កើតនៅខាងឈ្មួញកណ្តាល។ នៅពេលដែលវារួចរាល់ គឺមិនទាន់ដឹងទេ យើងរង់ចាំ និងទាញ TaskId ជាទៀងទាត់ ដើម្បីរង់ចាំរបាយការណ៍។
- ហេតុអ្វី? ព្រោះបើរបាយការណ៍មិនទាន់បានត្រៀមខ្លួនទេ វាបោះចោលកំហុស។ ប្រសិនបើរបាយការណ៍មិនទាន់រួចរាល់នៅខាងឈ្មួញកណ្តាលទេ នោះនេះគឺជាកំហុសនៅក្នុងកូដរបស់អ្នក។ សូមដំណើរការ៖ 30058|INVALID_ARGUMENT|កិច្ចការមិនទាន់បានបញ្ចប់នៅឡើយ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ
លេខកូដសម្រាប់រង់ចាំ និងទទួលរបាយការណ៍មើលទៅដូចនេះ។
const timer = async time => { return new Promise(resolve => setTimeout(ដោះស្រាយ, ពេលវេលា)); } const getBrokerResponseByTaskId = async (taskId, page = 0) => { try { return wait (sdk.operations.getBrokerReport)({ getBrokerReportRequest: { taskId, page, }, }); } catch (e) { console.log(‘wait’, e); រង់ចាំកម្មវិធីកំណត់ម៉ោង (10000); ត្រឡប់មកវិញរង់ចាំ getBrokerResponseByTaskId(taskId, ទំព័រ); } };
បន្ទាប់មកវេទមន្តដូចគ្នាកើតឡើង។ យើងបញ្ឈប់ស្គ្រីបរបស់យើង ចាប់ផ្តើមវាម្តងទៀត យើងមិនមាន taskId ទេ។ យើងប្រតិបត្តិកូដជាមួយសំណើ taskId ប៉ុន្តែយើងលែងទទួលបាន taskId ទៀតហើយ ប៉ុន្តែរាយការណ៍ភ្លាមៗ។ វេទមន្ត! ហើយអ្វីៗនឹងល្អប្រសិនបើវាតែងតែបែបនេះ។ ប៉ុន្តែក្នុងមួយខែនឹងមិនមានទិន្នន័យអ្វីទាំងអស់។ មានប្រយោជន៍ ៖
- ទ្រឹស្ដីខ្លះត្រូវបានគូសបញ្ជាក់ នៅទីនេះ និង នៅទីនេះ ។
- ការដាក់លេខកូដជាមួយគ្នា សេចក្តីព្រាងនឹងមើលទៅដូចនេះ។
https://github.com/pskucherov/tcsstat/tree/step3.1 https://github.com/pskucherov/tcsstat/compare/step3.1
- ប្រសិនបើនរណាម្នាក់បានជួបនឹងបញ្ហានេះ, សូមស្វាគមន៍មកកាន់ បញ្ហា ។ បន្ទាប់ពីពួកគេជួសជុលវេទមន្តនេះ វានឹងបាត់បង់ថាមពលរបស់វា ហើយនឹងខុសគ្នាខ្លះ។ ប៉ុន្តែនៅពេលនេះ (03/21/2023) វាដំណើរការដូចនោះ។
ទទួលបានភាគលាភអ្នកចេញបរទេស
នរណាម្នាក់អាចគិតថាវិធីសាស្រ្តនេះគឺស្រដៀងទៅនឹងវិធីមុន ហើយអ្នកអាចប្រើវិធីសាស្រ្តតែមួយដែលអ្នកគ្រាន់តែប្តូរឈ្មោះប្រតិបត្តិការប៉ុណ្ណោះ។ ប៉ុន្តែគេមិនបានស្មាន! ការដាក់ឈ្មោះនៅទីនោះមានភាពខុសគ្នាខ្លាំងទាំងក្នុងវិធី និងព័ត៌មានដែលបានត្រឡប់។ ហើយចំនួនទំព័រចាប់ផ្តើមពី 0 បន្ទាប់មកពី 1។ ដើម្បីកុំឱ្យមានការភ័ន្តច្រឡំក្នុងរឿងទាំងអស់នេះ វាកាន់តែងាយស្រួលក្នុងការសរសេរវិធីពីរផ្សេងគ្នា។ ដែលចម្លែកព្រោះ តក្កវិជ្ជានៃការងារគឺដូចគ្នា។ ខ្ញុំស្តោះទឹកមាត់យូរហើយ ពេលខ្ញុំព្យាយាមបង្កើតវិធីសាស្រ្តមួយ ហើយមានកូដតិច។ វានឹងមិនមានឧទាហរណ៍នៅទីនេះទេ។
GetOperationsByCursor
សំណព្វរបស់ខ្ញុំទាំងបី។ ថ្វីត្បិតតែមិនមានភាពត្រឹមត្រូវបំផុត ប៉ុន្តែត្រឹមត្រូវបំផុត។ យើងធ្វើសំណើចាប់ពីពេលចាប់ផ្តើមបង្កើតគណនីរហូតដល់កាលបរិច្ឆេទអតិបរមាដែលអាចធ្វើបាន (បិទគណនី ឬគណនីបច្ចុប្បន្ន) យើងទទួលបានចម្លើយ យកទស្សន៍ទ្រនិច និងស្នើសុំឡើងវិញ ដរាបណាមានទិន្នន័យ។ ហើយកូដគឺសង្ខេបជាងក្នុងឧទាហរណ៍ខាងលើ។
const timer = async time => { return new Promise(resolve => setTimeout(ដោះស្រាយ, ពេលវេលា)); } const getOperationsByCursor = async (sdk, accountId, from, to, cursor = ”) => { try { const reqData = { accountId, from, to, limit: 1000, state: sdk.OperationState.OPERATION_STATE_EXECUTED, withoutCommissions: មិនពិត, គ្មានការជួញដូរ៖ មិនពិត គ្មានពេលយប់៖ មិនពិត ទស្សន៍ទ្រនិច }; ការត្រឡប់មកវិញកំពុងរង់ចាំ sdk.operations.getOperationsByCursor(reqData); } catch (e) { រង់ចាំកម្មវិធីកំណត់ម៉ោង (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 ចម្បងដែលអ្នកនឹងជួបប្រទះគឺដើម្បីកាវបិទប្រតិបត្តិការនិងរបាយការណ៍ឈ្មួញកណ្តាល។
- ប្រសិនបើថ្ងៃនេះអ្នកបានទទួលរបាយការណ៍ឈ្មួញកណ្តាល និងប្រតិបត្តិការសម្រាប់កាលបរិច្ឆេទដែលត្រូវការ ដាក់វាទាំងអស់នៅក្នុងមូលដ្ឋានទិន្នន័យ នោះមិនមានបញ្ហាអ្វីទេ។
- អ្នកនឹងមានបញ្ហានៅថ្ងៃស្អែក នៅពេលអ្នកទទួលបានផ្នែកបន្ទាប់នៃទិន្នន័យពីរបាយការណ៍ និងប្រតិបត្តិការ ហើយសម្រេចចិត្តធ្វើសមកាលកម្មពួកវាជាមួយមូលដ្ឋានទិន្នន័យដែលមានស្រាប់។
- ភាពខុសប្លែកគ្នាជាច្រើនអំពីការមិនត្រូវគ្នា ឬផ្លាស់ប្តូរលេខសម្គាល់បន្ទាប់ពីដំណើរការ
- បន្ទាប់មកសម្រាប់ទីផ្សារ OTC លេខសម្គាល់មិនត្រូវគ្នាទាល់តែសោះ។
- ក៏ដូចជាភាពខុសប្លែកគ្នានៃឧបករណ៍ធ្វើសមកាលកម្ម ដែលជាថ្មីម្តងទៀតមិនស្របគ្នានោះទេ ដោយសារតែភាពប្លែកនៃ API ។ ប៉ុន្តែនោះជារឿងមួយទៀត។
ចូរបន្ថែមការទទួលបានព័ត៌មានអំពីប្រតិបត្តិការទៅកម្មវិធីរបស់យើង។ សំណួរចម្បងនឹងជាកន្លែងដែលទិន្នន័យនឹងត្រូវបានដំណើរការ និងរក្សាទុក។
- ប្រសិនបើអ្នកធ្វើវាដោយខ្លួនឯង អ្នកនឹងប្រើប្រាស់ទិន្នន័យដូចគ្នាពីឧបករណ៍ផ្សេងៗ។ បន្ទាប់មកអ្នកត្រូវដំណើរការ និងរក្សាទុកទិន្នន័យនៅលើម៉ាស៊ីនមេ។
- ប្រសិនបើអ្នកមានទិន្នន័យខុសៗគ្នាជាច្រើនដែលប្រើប្រាស់ដោយអ្នកប្រើប្រាស់ផ្សេងៗគ្នា នោះអ្នកត្រូវសម្រេចចិត្តថាអ្វីដែលសំខាន់ជាងនេះទៅទៀតនោះគឺ ល្បឿនរបស់អ្នកប្រើប្រាស់ ឬការសន្សំដែកនៅខាងអ្នក។ អ្នកណាដែលអាចទិញបាននូវ Hardware ដែលគ្មានដែនកំណត់ រាប់អ្វីៗទាំងអស់នៅលើ Server របស់គាត់ ហើយធ្វើឱ្យវាលឿនបំផុតសម្រាប់អ្នកប្រើប្រាស់ ដោយសន្សំសំចៃធនធានអ្នកប្រើប្រាស់ ដូចជាថ្ម និងចរាចរណ៍ ដែលមានសារៈសំខាន់ខ្លាំងណាស់នៅលើទូរស័ព្ទ។
នៅក្នុងវេន ការរាប់នៅក្នុងកម្មវិធីរុករកមិនមែនជាដំណោះស្រាយដ៏ល្អបំផុតជាគោលការណ៍ទេ។ ដូច្នេះអ្វីដែលមិនថ្លៃ យើងចាត់ទុកវានៅលើម៉ាស៊ីនបម្រើរបស់យើង។ យើងទុកនៅសល់ឱ្យអតិថិជន។ ខ្ញុំពិតជាចង់យក និងគណនាកម្រៃជើងសារនៅលើម៉ាស៊ីនមេ។ ប៉ុន្តែនៅទីនេះមកភាពខុសប្លែកគ្នាដែលហៅថា “អន្តរកម្ម” ។ ចូរនិយាយថាអ្នកមានប្រតិបត្តិការរាប់ពាន់ហើយវាត្រូវចំណាយពេលប្រាំនាទីដើម្បីទទួលបានពួកគេ។ តើអ្នកប្រើនឹងមានអ្វីនៅពេលនេះ? Spinner? វឌ្ឍនភាព? Infa ប្រហែលប៉ុន្មានត្រូវបានបង្ហោះ? វាជាការល្អក្នុងការប្រើ “ការរង់ចាំសកម្ម” នៅពេលដែលអ្នកប្រើប្រាស់នៅក្នុងដំណើរការអាចមើលឃើញអ្វីមួយរួចហើយ។ នេះជា លទ្ធផល៖
- កំពុងផ្ទុកទំព័រ
- វិក្កយបត្រទាំងអស់ត្រូវបានស្នើសុំ
- បន្ទាប់ពីនោះ រាល់ប្រតិបត្តិការដែលមានកម្រៃជើងសារសម្រាប់ប្រតិបត្តិការដែលបានប្រតិបត្តិត្រូវបានស្នើសុំសម្រាប់គណនីទាំងអស់។ នៅពេលដែលទិន្នន័យត្រូវបានទទួល វាត្រូវបានបង្ហាញនៅក្នុងកម្មវិធីរុករក។
ដើម្បីកុំឱ្យត្រងទិន្នន័យនៅក្នុងព្រឹត្តិការណ៍នីមួយៗ យើងទាញព្រឹត្តិការណ៍ផ្ទាល់ខ្លួនរបស់យើងសម្រាប់គណនីនីមួយៗ។ ដូចនេះ៖
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 កំពុងបន្ត។ ល្អណាស់ដែលអ្នកបានអានបន្ទាត់នេះ!
ការគណនានិងលទ្ធផលនៃព័ត៌មានចំណាប់អារម្មណ៍
អាស្រ័យលើអ្នកដែលត្រូវការព័ត៌មានអ្វី។ ដូច្នេះខ្ញុំប្រាប់អ្នកភ្លាមៗនូវការ nuances សំខាន់ៗដែលអ្នកនឹងជួបប្រទះ។
ធ្វើការជាមួយតម្លៃ
មនុស្សគ្រប់គ្នាដែលធ្វើការជាមួយហិរញ្ញវត្ថុដឹងថាប្រតិបត្តិការប្រាក់គួរតែត្រូវបានអនុវត្តតែជាមួយលេខទាំងមូលប៉ុណ្ណោះ។ ដោយសារតែភាពមិនត្រឹមត្រូវនៃតម្លៃបន្ទាប់ពីចំនុចទសភាគនិងកំហុសបូកសរុបជាមួយនឹងប្រតិបត្តិការមួយចំនួនធំ។ នោះហើយជាមូលហេតុដែលតម្លៃទាំងអស់ត្រូវបានបង្ហាញជាទម្រង់ MoneyValue ខាងក្រោម
វាល | ប្រភេទ | ការពិពណ៌នា |
---|---|---|
រូបិយប័ណ្ណ | ខ្សែអក្សរ | ខ្សែអក្សរ ISO កូដរូបិយប័ណ្ណ |
ឯកតា | int64 | ផ្នែកចំនួនគត់នៃផលបូក អាចជាលេខអវិជ្ជមាន |
ណាណូ | int32 | ផ្នែកប្រភាគនៃចំនួន អាចជាលេខអវិជ្ជមាន |
យើងដំណើរការពួកវាដោយឡែកពីគ្នា បន្ទាប់មកនាំវាទៅតម្លៃតម្លៃ៖
quotation.units + quotation.nano / 1e9
តម្លៃនៃកិច្ចសន្យាអនាគត
តម្លៃអនាគតត្រូវបានបង្ហាញជាចំណុច នៅពេលដែលអ្នកមានអនាគតរូបិយប័ណ្ណ អ្នកត្រូវដឹងពីអត្រា។ ហើយជាការពិតណាស់តម្លៃនៅក្នុងពិន្ទុនិងជំហានតម្លៃ។ នៅពេលអ្នកគណនាប្រាក់ចំណេញពីប្រតិបត្តិការ នេះអាចបាញ់បាន ពីព្រោះ។ ប្រសិនបើអ្នកគណនាចំនួនសរុបដោយគុណតម្លៃដោយបរិមាណ។ នៅទីនេះអ្នកត្រូវប្រុងប្រយ័ត្ន។ សម្រាប់ពេលនេះ យើងនឹងមើលថាតើវាទៅជាយ៉ាងណា។ នេះអនុវត្តចំពោះអនាគតរូបិយប័ណ្ណ នៅកន្លែងផ្សេងទៀតអ្វីៗគឺល្អជាមួយនេះ។
ទីផ្សារ OTC
ទីផ្សារនេះមានលក្ខណៈពិសេសជាច្រើន ដូច្នេះសូមសិក្សាប្រតិបត្តិការលើវាដោយឡែកពីគ្នា។ នៅពេលអ្នកចាប់ផ្តើមប្រតិបត្តិការធ្វើសមកាលកម្ម វានឹងបង្ហាញថាអ្នកត្រូវនាំយក figi/ticker ទៅជាទម្រង់ដូចគ្នា ដើម្បីផ្គូផ្គងឧបករណ៍ឱ្យបានត្រឹមត្រូវ។ នៅពេលអ្នកចាប់ផ្តើមធ្វើសមកាលកម្មវាជាមួយរបាយការណ៍ឈ្មួញកណ្តាល វានឹងបង្ហាញថាលេខសម្គាល់ពាណិជ្ជកម្មនៃប្រតិបត្តិការដូចគ្នាមានអក្សរនៅដើមក្នុងប្រតិបត្តិការ ហើយពួកវាមិនមាននៅក្នុងរបាយការណ៍ឈ្មួញកណ្តាលទេ។ ដូច្នេះ គេមិនអាចប្រៀបផ្ទឹមបានទេ… អាហិម-អាម… ដោយការប្រៀបធៀប! ខ្ញុំបានផ្គូផ្គងម៉ោងពាណិជ្ជកម្ម សញ្ញាធីក និងការផ្គូផ្គងដែល TradeId មួយមាននៅក្នុងមួយផ្សេងទៀត។ ត្រូវហើយ ខ្ញុំមិនដឹងទេ។ អ្នកណាជួបរឿងនេះ ហើយអ្នកណាខ្វល់ពីវាមករក បញ្ហា ឬចាប់ផ្ដើមរឿងថ្មី។
ប្រតិបត្តិការគណិតវិទ្យាលើឧបករណ៍
វាមិនអាចទៅរួចទេបើគ្មានការរកមើលដើម្បីអនុវត្តប្រតិបត្តិការគណិតវិទ្យាជាមួយនឹងបញ្ជីទាំងមូល។ ដើម្បីមិនបន្ថែមភាពកក់ក្តៅទៅទន់ យើងតែងតែពិនិត្យមើលរូបិយប័ណ្ណ និងដំណើរការ លុះត្រាតែយើងប្រាកដថារូបិយប័ណ្ណត្រូវគ្នា ហើយពិន្ទុត្រូវបានបំប្លែងទៅជារូបិយប័ណ្ណដែលចង់បាន។ ប្រដាប់ដោយចំណេះដឹងអំពីការធ្វើការជាមួយលេខធនាគារ យើងនឹងគណនាកម្រៃជើងសារដែលបានចំណាយលើគណនីនីមួយៗ។ ដូចនេះ៖ https://github.com/pskucherov/tcsstat/tree/step4 https://github.com/pskucherov/tcsstat/compare/step3…step4
សេវាមីក្រូរួចរាល់ហើយ!
https://github.com/pskucherov/tcsstat ជាកិច្ចការផ្ទះ អ្នកអាចពិនិត្យមើលថាតើសេវាកម្មនេះដំណើរការជាមួយការភ្ជាប់យឺត នៅពេលដែលការតភ្ជាប់ត្រូវបានខូច នៅពេលដែលអ៊ីនធឺណិតត្រូវបានផ្តាច់ នៅពេលដែលមានកំហុស ឬដែនកំណត់ផុតកំណត់នៅលើផ្នែកនៃឈ្មួញកណ្តាល។
សេចក្តីសន្និដ្ឋាន និងផែនការសម្រាប់អនាគត
- បានសិក្សាអំពីប្រតិបត្តិការជាមូលដ្ឋាន និងធ្វើការជាមួយ Invest API
- ពេលវេលាចំណាយ ~ 10 ម៉ោង។
- កម្រិតលំបាក ~ junior+ / មធ្យមទាប
ប្រសិនបើអ្នកបន្តកែលម្អសេវាកម្មខ្នាតតូច អ្នកអាចនឹងបញ្ចប់ដោយអ្វីមួយដូចនេះ
https://opexbot.info
នេះជាការអភិវឌ្ឍន៍របស់ខ្ញុំសម្រាប់អ្នកដែលខ្ជិលយល់ រត់ និងពឹងលើខ្លួនឯង។ ខ្ញុំមានគម្រោងបន្ថែមការវិភាគនៅទីនោះតាមការស្នើសុំរបស់អ្នកប្រើប្រាស់។ ប្រសិនបើអ្នកចូលចិត្តអត្ថបទនោះ សូមជាវ ឆានែលតេឡេក្រាម របស់ខ្ញុំ ។
Полезная статья. Не могу представить, сколько усилий автора потребовалось, чтобы все описать. Благодарю.