තැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි Tinkoff Invest API භාවිතයෙන් ක්ෂුද්‍ර සේවාවක් සංවර්ධනය කරමින් සිටිමු.

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

Tinkoff Investments සඳහා සංඛ්‍යාලේඛන සේවාවේ දියුණුව පිටුපස ඇති අනුප්‍රාණකයන් වූයේ:

සාකච්ඡා කරනු ඇත්තේ කුමක් ද?

  • සංවර්ධනය පිළිබඳ ව්යවහාරික කොටස පමණි.
  • මූල්ය උපකරණ සමඟ වැඩ කිරීමේදී ඉතා වැදගත් වන සැබෑ දැනුම සහ අත්දැකීම්.
  • වැඩ කිරීමට ඇති ගැටළු පිළිබඳ දළ විශ්ලේෂණය

ඒ නිසා, මම වෙළඳ සංඛ්යා ලේඛන ගණනය කිරීමට සහ පහසු ආකාරයකින් එය කිරීමට අවශ්යයි. 

පියවරෙන් පියවර සංඛ්‍යාලේඛන සේවාවක් සංවර්ධනය කිරීම: 

  1. Tinkoff Invest API වෙත සම්බන්ධ වීම
  2. බ්‍රවුසරයක Tinkoff Invest API වෙතින් දත්ත ඇඳීම
  3. තැරැව්කාර වාර්තා සහ ගනුදෙනු ලැබීම
  4. උනන්දුවක් දක්වන තොරතුරු ගණනය කිරීම සහ ප්රතිදානය
  5. අනාගතය සඳහා නිගමන සහ සැලසුම්

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’);   // මේ ආකාරයට ලබාගත හැකි ටෝකනය   TOKEN = ‘YOURAPI’;   // ඔබට TCS ලොග් වලින් සොයාගත හැකි යෙදුමේ නම. const appName = ‘tcsstat’;   const sdk = createSdk (TOKEN, appName); (async () => {     console.log(sdk.users.getAccounts() බලා සිටින්න); })();

ප්‍රතිඵලය: ඔබේ ගිණුම් ලැයිස්තුවක් කොන්සෝලයේ පෙන්වනු ඇත. උදාහරණයක් ලෙස, අපි සූක්ෂ්මතා විශ්ලේෂණය කරමු:තැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි Tinkoff Invest API භාවිතයෙන් ක්ෂුද්‍ර සේවාවක් සංවර්ධනය කරමින් සිටිමු.

  • ගිණුම් ලැයිස්තුවේ “ආයෝජන බැංකුවක්” ඇත, ඔබට API භාවිතයෙන් වැඩ කළ නොහැක
  • ප්‍රලේඛනයේ මෙම ක්ෂේත්‍ර under_score වලින් ඉදිරිපත් කර ඇති  අතර, ක්ෂේත්‍ර camelCase වලින් එන බව කරුණාවෙන් සලකන්න .
  • එය සෑම තැනකම මේ වගේ වනු ඇත, එබැවින් ඔබට ලේඛනයෙන් ක්ෂේත්‍රයක් ගෙන පිටපත් කළ නොහැක.

ප්රයෝජනවත්:

  • ඔබට මෙම කේතය ව්යාපෘති ශාඛාවේ සොයාගත හැකිය

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

අපි වහාම මිත්‍රත්ව පියවර next+socket+investapi වෙත ගොස් සියලු විස්තර සඳහා මෙම පියවරේ  ප්‍රයෝජනවත් කොටස බලන්න . මම විස්තර විස්තර කරන්නම්: 

  • nodejs (සේවාදායකය) පැත්තේ, pages/api/investapi.js ගොනුවක් ඇත. අපි socket.io සේවාදායකය නිර්මාණය කර Investapi වෙත සම්බන්ධ වන්නේ මෙහිදීය.
  • බ්රවුසරයේ (සේවාලාභී) පැත්තෙන්, අපි සොකට් එකක් හරහා සේවාදායකයට සම්බන්ධ වන අතර තැරැව්කරුගෙන් ගිණුම් දත්ත ඉල්ලා සිටිමු. 
  • අපි සේවාදායකයේ තැරැව්කරුගෙන් දත්ත ලබා ගනිමු, පසුව එය සේවාදායකයා වෙත යවන්න. ඒවා සේවාදායකයාට ලැබුණු විට, ඒවා බ්‍රවුසරයේ දර්ශනය වේ. 

ප්රතිඵලය:  බ්රවුසරයේ කොන්සෝලය තුළ අපට ගිණුම් පිළිබඳ තොරතුරු දැකිය හැකිය. එනම්, අවසාන පියවරේදී, අපි සේවාදායක කොන්සෝලයේ (nodejs) ගිණුම් පිළිබඳ තොරතුරු දුටුවෙමු, වත්මන් පියවරේදී, අපි මෙම තොරතුරු සේවාදායකයා (බ්‍රවුසරය) වෙත මාරු කළෙමු.

තැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි 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. GetDividendsForeignIssuer
  3. GetOperationsByCursor

ආරම්භයේ සිටම දැන ගැනීම වැදගත්ය: 

  • තැරැව්කාර වාර්තාව T-3 ආකාරයෙන් ජනනය වේ, i.e. වෙළඳාම් ඒවායේ සත්‍ය ක්‍රියාවෙන් පසුව එහි ප්‍රදර්ශනය කෙරේ. 
  • ඒ අනුව පසුගිය දින දෙක තුළ මෙම වාර්තාව ඉල්ලා සිටියහොත් එය දින තුනකින් සූදානම් වනු ඇත. 
  • අවසාන දින සඳහා ගනුදෙනු ලබා ගැනීම සඳහා, අපි ගනුදෙනු ලබා ගැනීමේ ක්‍රමය භාවිතා කරමු, නමුත් තැරැව්කාර වාර්තාව ජනනය කිරීමෙන් පසු ඔවුන්ගේ id සහ අන්තර්ගතය වෙනස් විය හැකි බව මතක තබා ගන්න.

GetBrokerReport

තැරැව්කාර වාර්තාවක් ලබා ගැනීම සඳහා, ඔබ ගිණුම් හැඳුනුම්පත, වාර්තාවේ ආරම්භක දිනය සහ අවසන් දිනය ගත යුතුය, නමුත් දින 31 කට වඩා වැඩි නොවේ. අපි ජනන _broker_report_request හි API වෙත වාර්තාවක් උත්පාදනය කිරීමට ඉල්ලීමක් යවමු , ප්‍රතිචාර වශයෙන් 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);     } වෙනත් {         date.setUTCHours(23, 59, 59, 999);     }       ආපසු පැමිණීමේ දිනය; };

වාර්තා උත්පාදන ඉල්ලීම 

const brokerReport = රැඳී සිටින්න (sdk.operations.getBrokerReport)({         generateBrokerReportRequest: {             accountId,             from,             to,         }, });

ප්‍රතිඵලය:

  • විධානයේ පළමු ක්රියාත්මක කිරීමේ ප්රතිඵලයක් ලෙස, අපි taskId ලබා ගනිමු. 
  • වාර්තාව තැරැව්කරුගේ පැත්තෙන් ජනනය වීමට පටන් ගනී. එය සුදානම් වූ විට නොදනී, වාර්තාව අපේක්ෂාවෙන් අපි බලා සිට වරින් වර taskId අදින්නෙමු.
  • ඇයි? මොකද රිපෝට් එක ලෑස්ති ​​නැති උනොත් දෝශයක් දානවා. තැරැව්කරුගේ පැත්තෙන් වාර්තාව සූදානම් නැතිනම්, මෙය ඔබගේ කේතයේ දෝෂයකි. කරුණාකර සකසන්න: 30058|INVALID_ARGUMENT|කාර්යය තවම සම්පූර්ණ කර නැත, කරුණාකර පසුව නැවත උත්සාහ කරන්න

වාර්තාවක් බලා සිටීම සහ ලැබීම සඳහා කේතය මේ වගේ දෙයක් පෙනේ.

const timer = async time => {     නව පොරොන්දුව ආපසු දෙන්න (resolve => setTimeout(resolve, time)); }   const getBrokerResponseByTaskId = async (taskId, page = 0) => {{     return         waiit (sdk.operations.getBrokerReport)({             getBrokerReportRequest: {                 taskId,                 page,             },         });     } අල්ලා ගන්න (ඊ) {         console.log(‘wait’, e);         ටයිමරය බලා සිටීම (10000);         ආපසු එනතුරු බලා සිටින්න getBrokerResponseByTaskId(taskId, page);     } };

එවිට සිදු වන්නේ ද එම මායාවයි. අපි අපේ ස්ක්‍රිප්ට් එක නවත්වනවා, ආයේ පටන් ගන්නවා, අපිට taskId එකක් නැහැ. අපි taskId ඉල්ලීම සමඟ කේතය ක්‍රියාත්මක කරන්නෙමු, නමුත් අපට තවදුරටත් taskId නොලැබේ, නමුත් වහාම වාර්තාව. මැජික්! අනික හැමදාම මෙහෙම උනානම් හැමදේම හොදයි. නමුත් මාසයක් තුළ කිසිදු දත්තයක් නොමැත. ප්රයෝජනවත් :

  • න්‍යාය ටිකක් මෙහි සහ මෙහි දක්වා ඇත .
  • කේතය එකතු කිරීමෙන්, කෙටුම්පත මේ වගේ දෙයක් පෙනෙනු ඇත.

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

  • යමෙකු මෙයට මුහුණ දෙන්නේ නම්, ගැටලුවට සාදරයෙන් පිළිගනිමු . ඔවුන් මෙම මැජික් අලුත්වැඩියා කිරීමෙන් පසුව, එහි බලය නැති වී කෙසේ හෝ වෙනස් වනු ඇත. නමුත් වර්තමාන මොහොතේ (03/21/2023) එය එලෙසම ක්‍රියාත්මක වේ.

GetDividendsForeignIssuer

මෙම ක්‍රමය පෙර ක්‍රමයට සමාන යැයි යමෙකු සිතනු ඇති අතර ඔබට මෙහෙයුම් වල නම පමණක් වෙනස් කරන තනි ක්‍රමයක් භාවිතා කළ හැකිය. නමුත් ඔවුන් අනුමාන කළේ නැත!  එහි නම් කිරීම ක්‍රම සහ ආපසු ලබා දෙන තොරතුරු යන දෙකෙහිම බෙහෙවින් වෙනස් ය. පිටු ගණන 0 සිට, පසුව 1 සිට ආරම්භ වේ. මේ සියල්ල තුළ ව්‍යාකූල නොවීමට, විවිධ ක්‍රම දෙකක් ලිවීම පහසුය. මොකක්ද අමුතු, මොකද කාර්යයේ තර්කනය සමාන වේ. එක ක්‍රමයක් හදලා කෝඩ් එක අඩු උනාම සෑහෙන වෙලාවක් කෙල උනා. මෙහි උදාහරණ කිසිවක් නොතිබෙනු ඇත.

GetOperationsByCursor

තුනෙන් මම කැමතිම. වඩාත්ම නිවැරදි නොවූවත්, වඩාත්ම ප්රමාණවත්ය. අපි ගිණුමක් සෑදීමේ ආරම්භයේ සිට හැකි උපරිම දිනය දක්වා ඉල්ලීමක් කරන්නෙමු (ගිණුමක් වසා දැමීම හෝ වත්මන් එක). අපිට උත්තරය ලැබෙනවා, කර්සරය අරගෙන දත්ත තිබෙන තාක් නැවත ඉල්ලනවා.  තවද ඉහත උදාහරණ වලට වඩා කේතය සංක්ෂිප්ත ය.

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:             false, withoutCommission             වෙළඳාම් නොමැතිව: අසත්‍ය,             රාත්‍රී නොමැතිව: අසත්‍ය,             කර්සරය,         };           ආපසු එනතුරු බලා සිටීම sdk.operations.getOperationsByCursor(reqData);     } අල්ලා ගන්න (ඉ) {         wait timer(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 හි සුවිශේෂතා හේතුවෙන් නැවතත් සමමුහුර්ත කිරීමේ උපකරණවල සූක්ෂ්මතාවයන් ද සමපාත නොවේ. නමුත් එය වෙනත් කතාවකි.

මෙහෙයුම් පිළිබඳ තොරතුරු ලබා ගැනීම අපගේ යෙදුමට එක් කරමු. ප්‍රධාන ප්‍රශ්නය වනුයේ දත්ත සැකසීම සහ ගබඩා කරන්නේ කොතැනද යන්නයි.

  •  ඔබ එය ඔබම කරන්නේ නම්, ඔබ විවිධ උපාංගවලින් එකම දත්ත පරිභෝජනය කරනු ඇත. එවිට ඔබට සේවාදායකයේ දත්ත සැකසීමට සහ ගබඩා කිරීමට අවශ්ය වේ.
  • ඔබට විවිධ පරිශීලකයින් විසින් පරිභෝජනය කරන විවිධ දත්ත රාශියක් තිබේ නම්, ඔබ වඩාත් වැදගත් වන්නේ කුමක්ද යන්න තීරණය කළ යුතුය: පරිශීලකයින්ගේ වේගය හෝ ඔබේ පැත්තෙන් යකඩ ඉතිරි කිරීම. අසීමිත දෘඪාංග ප්‍රමාණයක් ලබා ගත හැකි ඕනෑම කෙනෙකුට ඔහුගේ සේවාදායකයේ ඇති සියල්ල ගණන් කර එය පරිශීලකයින් සඳහා ඉතා වේගවත් කරයි, දුරකථනවල ඉතා වැදගත් වන බැටරි සහ ගමනාගමනය වැනි පරිශීලක සම්පත් ඉතිරි කරයි.

අනෙක් අතට, බ්‍රවුසරයේ ගණන් කිරීම ප්‍රතිපත්තිමය වශයෙන් වඩාත්ම ප්‍රශස්ත විසඳුම නොවේ. එබැවින්, මිල අධික නොවන දේ, අපි එය අපගේ සේවාදායකයේ සලකා බලමු. ඉතිරිය අපි සේවාදායකයාට භාර දෙමු. මට ඇත්තටම අවශ්‍ය වන්නේ සේවාදායකයේ කොමිස් මුදල ලබාගෙන ගණනය කිරීමටයි. නමුත් මෙහි “අන්තර්ක්‍රියාකාරීත්වය” නමින් හැඳින්වෙන සූක්ෂ්මතාවය පැමිණේ. ඔබට මෙහෙයුම් දහස් ගණනක් ඇති බවත් ඒවා ලැබීමට මිනිත්තු පහක් ගත වන බවත් කියමු. මෙම අවස්ථාවේදී පරිශීලකයාට ඇත්තේ කුමක්ද? දඟ පන්දු යවන්නා? ප්රගතිය? කොපමණ ප්‍රමාණයක් උඩුගත කර ඇත්ද? ක්‍රියාවලියේ සිටින පරිශීලකයාට දැනටමත් යමක් දැකිය හැකි විට “ක්‍රියාකාරී බලා සිටීම” භාවිතා කිරීම වඩාත් සුදුසුය. මෙන්න ප්‍රතිඵලය:තැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි Tinkoff Invest API භාවිතයෙන් ක්ෂුද්‍ර සේවාවක් සංවර්ධනය කරමින් සිටිමු.

  • පිටු පැටවීම
  • සියලුම ඉන්වොයිසි ඉල්ලා ඇත
  • ඊට පසු, ක්රියාත්මක කරන ලද ගනුදෙනු සඳහා කොමිස් සහිත සියලුම ගනුදෙනු සියලු ගිණුම් සඳහා ඉල්ලා ඇත. දත්ත ලැබෙන පරිදි, එය බ්‍රවුසරයේ ලබා දේ.

සෑම අවස්ථාවකදීම සිදුවීම්වල දත්ත පෙරීම නොකිරීමට, අපි එක් එක් ගිණුම සඳහා අපගේම සිදුවීම ඇද ගනිමු. මෙවැනි:

socket.emit(‘sdk:getOperationsCommissionResult_’ + accountId, {                 අයිතම: data?.items,                 in Progress: Boolean(nextCursor), });

දියත් කිරීමට කෙටුම්පත මෙහි ඇත: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…step3 ඉදිරියට යමින්. ඔබ මෙම පේළිය කියවා තිබීම සතුටක්! 

උනන්දුවක් දක්වන තොරතුරු ගණනය කිරීම සහ ප්රතිදානය

කුමන තොරතුරු අවශ්‍යද යන්න මත රඳා පවතී. එමනිසා, ඔබට හමුවන ප්‍රධාන සූක්ෂ්මතා මම වහාම ඔබට කියමි.

මිල ගණන් සමඟ වැඩ කිරීම 

මුදල් ගනුදෙනු සිදු කළ යුත්තේ සම්පූර්ණ සංඛ්‍යාවලින් පමණක් බව මූල්‍ය සමඟ වැඩ කරන සියලු දෙනා දනිති. දශම ලක්ෂ්‍යයෙන් පසු අගයන්හි සාවද්‍යතාවය සහ මෙහෙයුම් විශාල සංඛ්‍යාවක් සහිත සමුච්චිත දෝෂය හේතුවෙන්. පහත දැක්වෙන MoneyValue ආකෘතියෙන් සියලුම මිල ගණන් ඉදිරිපත් කරන්නේ එබැවිනිතැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි Tinkoff Invest API භාවිතයෙන් ක්ෂුද්‍ර සේවාවක් සංවර්ධනය කරමින් සිටිමු.

ක්ෂේත්රයවර්ගයවිස්තර
මුදල්නූල්String ISO මුදල් කේතය
ඒකකint64එකතුවේ නිඛිල කොටස, සෘණ අංකයක් විය හැක
නැනෝint32මුදලෙහි භාගික කොටස, සෘණ අංකයක් විය හැක

අපි ඒවා වෙන වෙනම සකසමු, පසුව ඒවා මිල අගයට ගෙන එන්නෙමු:

quotation.units + quotation.nano / 1e9

අනාගත ගිවිසුම් වල පිරිවැය

අනාගතයේ මිල ලකුණු වලින් ඉදිරිපත් කෙරේ, ඔබට මුදල් අනාගතයක් ඇති විට, ඔබ අනුපාතය දැනගත යුතුය. ඇත්ත වශයෙන්ම ලකුණු වල මිල සහ මිල පියවර. ඔබ ගනුදෙනු වලින් ලාභය ගණනය කරන විට, මෙය වෙඩි තැබිය හැකිය, මන්ද. ඔබ ප්‍රමාණයෙන් මිල ගුණ කිරීමෙන් මුළු මුදල ගණනය කරන්නේ නම්. මෙන්න ඔබ පරෙස්සම් විය යුතුය. දැනට, අපි බලමු කොහොමද වෙන්නේ කියලා. මෙය මුදල් අනාගත සඳහා අදාළ වේ, වෙනත් ස්ථානවල මෙය සමඟ සියල්ල හරි ය.තැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි Tinkoff Invest API භාවිතයෙන් ක්ෂුද්‍ර සේවාවක් සංවර්ධනය කරමින් සිටිමු.තැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි Tinkoff Invest API භාවිතයෙන් ක්ෂුද්‍ර සේවාවක් සංවර්ධනය කරමින් සිටිමු.

OTC වෙළෙඳපොළ

මෙම වෙළඳපොලේ සුවිශේෂතා රාශියක් ඇත, එබැවින් අපි එහි මෙහෙයුම් වෙන වෙනම අධ්‍යයනය කරමු. ඔබ මෙහෙයුම් සමමුහුර්ත කිරීම ආරම්භ කරන විට, උපකරණය නිවැරදිව ගැලපීම සඳහා ඔබ figi / ticker එකම ආකෘතියකට ගෙන යා යුතු බව පෙනේ. ඔබ මෙය තැරැව්කාර වාර්තාව සමඟ සමමුහුර්ත කිරීම ආරම්භ කරන විට, එකම ගනුදෙනුවේ වෙළඳ හැඳුනුම්පතේ ගනුදෙනුවල ආරම්භයේ අකුරු ඇති අතර ඒවා තැරැව්කාර වාර්තාවේ නොමැති බව පෙනේ. එමනිසා, ඒවා සංසන්දනය කිරීමෙන් … අහ්-අහම් … සැසඳිය නොහැක! මම එක් 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 යි
  • දුෂ්කරතා මට්ටම ~ කනිෂ්ඨ + / පහත් මැද 

ඔබ ක්ෂුද්‍ර සේවාව පිරිපහදු කිරීම දිගටම කරගෙන ගියහොත්, ඔබට මෙවැනි දෙයක් සිදු විය හැක

https://opexbot.info

  මේක මගේ දියුණුව, තේරුම් ගන්න, දුවන්න, ගණන් කරන්න කම්මැලි අයට. පරිශීලකයින්ගේ ඉල්ලීම පරිදි එහි විශ්ලේෂණ එකතු කිරීමට මම අදහස් කරමි. ඔබ ලිපියට කැමති නම්, මගේ විදුලි පණිවුඩ නාලිකාවට දායක වන්න . තැරැව්කාර වාර්තා සමඟ වැඩ කිරීම සහ කොමිස් ගණනය කිරීම ස්වයංක්‍රීය කිරීම සඳහා අපි Tinkoff Invest API භාවිතයෙන් ක්ෂුද්‍ර සේවාවක් සංවර්ධනය කරමින් සිටිමු.

Pavel
Rate author
Add a comment

  1. Isakiiev

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

    Reply