બ્રોકરેજ રિપોર્ટ્સ અને કમિશન ગણતરીને સ્વચાલિત કરવા માટે અમે 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(TOKEN, appName); (async () => {     console.log(sdk.users.getAccounts())ની રાહ જુઓ; })();

પરિણામ: તમારા એકાઉન્ટ્સની સૂચિ કન્સોલમાં પ્રદર્શિત થશે. ઉદાહરણ તરીકે, ચાલો ઘોંઘાટનું વિશ્લેષણ કરીએ:બ્રોકરેજ રિપોર્ટ્સ અને કમિશન ગણતરીને સ્વચાલિત કરવા માટે અમે 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 (સર્વર) બાજુ પર, એક 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. GetBrokerReport
  2. GetDivendsForeignIssuer
  3. GetOperationsByCursor

શરૂઆતથી જ તે જાણવું મહત્વપૂર્ણ છે: 

  • બ્રોકરેજ રિપોર્ટ T-3 મોડમાં જનરેટ થાય છે, એટલે કે. વ્યવહારો તેમના વાસ્તવિક અમલ પછી ત્યાં પ્રદર્શિત થાય છે. 
  • તદનુસાર, જો તમે છેલ્લા બે દિવસથી આ અહેવાલની વિનંતી કરો છો, તો તે ત્રણ દિવસમાં તૈયાર થઈ જશે. 
  • છેલ્લા દિવસો માટે સોદા કરવા માટે, અમે ઓપરેશન્સ પ્રાપ્ત કરવા માટેની પદ્ધતિનો ઉપયોગ કરીએ છીએ, પરંતુ યાદ રાખો કે બ્રોકરેજ રિપોર્ટની રચના પછી તેમની આઈડી અને સામગ્રી બદલાઈ શકે છે.

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() – સબડે);       જો (પ્રારંભ) {         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,                 પૃષ્ઠ,             },         });     } પકડો (e) {         console.log(‘wait’, e);         ટાઈમરની રાહ જુઓ (10000);         વળતરની રાહ getBrokerResponseByTaskId(taskId, પૃષ્ઠ);     } };

પછી એ જ જાદુ થાય છે. અમે અમારી સ્ક્રિપ્ટ બંધ કરીએ છીએ, તેને ફરીથી શરૂ કરીએ છીએ, અમારી પાસે ટાસ્કઆઈડી નથી. અમે taskId વિનંતી સાથે કોડ એક્ઝિક્યુટ કરીએ છીએ, પરંતુ અમને હવે taskId નહીં, પણ તરત જ રિપોર્ટ મળે છે. મેજિક! અને જો તે હંમેશા આના જેવું હોય તો બધું સારું રહેશે. પરંતુ એક મહિનામાં બિલકુલ ડેટા નહીં હોય. ઉપયોગી :

  • સિદ્ધાંતનો થોડો ભાગ અહીં અને અહીં દર્શાવેલ છે .
  • કોડને એકસાથે મૂકીને, ડ્રાફ્ટ કંઈક આના જેવો દેખાશે.

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

  • જો કોઈ આ તરફ આવે છે, તો પછી અંકમાં સ્વાગત છે . તેઓ આ જાદુને સમારકામ કર્યા પછી, તે તેની શક્તિ ગુમાવશે અને કોઈક રીતે અલગ હશે. પરંતુ વર્તમાન ક્ષણે (03/21/2023) તે તેના જેવું જ કામ કરે છે.

GetDivendsForeignIssuer

કોઈ એવું વિચારી શકે છે કે પદ્ધતિ પાછલી પદ્ધતિ જેવી જ છે અને તમે એક પદ્ધતિનો ઉપયોગ કરી શકો છો જેમાં તમે ફક્ત ઓપરેશન્સનું નામ બદલી શકો છો. પરંતુ તેઓએ ધાર્યું ન હતું!  ત્યાં નામકરણ પદ્ધતિઓ અને પરત કરેલી માહિતી બંનેમાં ખૂબ જ અલગ છે. અને પૃષ્ઠની ગણતરી 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,             કમીશન વિના, ખોટા:             વેપાર વિના: ખોટા,             રાતોરાત વગર: ખોટા,             કર્સર,         };           વળતરની રાહ જુઓ sdk.operations.getOperationsByCursor(reqData);     } પકડો (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-3, કામગીરીમાંથી ફરીથી લોડ કરો. પરંતુ આને એક અલગ લેખમાં અલગ કરી શકાય છે. તમે જે મુખ્ય ઘોંઘાટનો સામનો કરશો તે છે ગુંદર કામગીરી અને બ્રોકરેજ રિપોર્ટ.

  •  જો આજે તમને જરૂરી તારીખો માટે બ્રોકરેજ રિપોર્ટ અને વ્યવહારો પ્રાપ્ત થયા છે, તો તે બધું ડેટાબેઝમાં મૂકો, પછી કોઈ સમસ્યા નથી. 
  • આવતીકાલે જ્યારે તમે રિપોર્ટ અને ઓપરેશન્સમાંથી ડેટાનો આગળનો ભાગ પ્રાપ્ત કરશો અને તેમને હાલના ડેટાબેઝ સાથે સિંક્રનાઇઝ કરવાનું નક્કી કરશો ત્યારે તમને સમસ્યાઓ થશે. 
  • પ્રક્રિયા કર્યા પછી મેળ ન ખાતી અથવા બદલાતી આઈડી વિશે ઘણી બધી ઘોંઘાટ
  • પછી ઓટીસી માર્કેટ માટે, આઈડી બિલકુલ મેળ ખાતા નથી.
  •  તેમજ સુમેળ સાધનોની ઘોંઘાટ, જે ફરીથી એકરૂપ થતી નથી, API ની વિચિત્રતાને કારણે. પરંતુ તે બીજી વાર્તા છે.

ચાલો અમારી એપ્લિકેશનમાં ઓપરેશન્સ વિશેની માહિતી મેળવીએ. મુખ્ય પ્રશ્ન એ હશે કે ડેટા ક્યાં પ્રોસેસ અને સ્ટોર કરવામાં આવશે.

  •  જો તમે તે તમારા માટે કરો છો, તો તમે વિવિધ ઉપકરણોમાંથી સમાન ડેટાનો ઉપયોગ કરશો. પછી તમારે સર્વર પર ડેટાની પ્રક્રિયા અને સંગ્રહ કરવાની જરૂર છે.
  • જો તમારી પાસે ઘણાં વિવિધ વપરાશકર્તાઓ દ્વારા ઘણાં વિવિધ ડેટાનો ઉપયોગ કરવામાં આવે છે, તો તમારે તે નક્કી કરવાની જરૂર છે કે વધુ મહત્વનું શું છે: વપરાશકર્તાઓની ઝડપ અથવા તમારી બાજુ પર આયર્નની બચત. જે કોઈપણ હાર્ડવેરની અમર્યાદિત રકમ પરવડી શકે છે તે તેના સર્વર પરની દરેક વસ્તુની ગણતરી કરે છે અને તેને વપરાશકર્તાઓ માટે સુપર ફાસ્ટ બનાવે છે, વપરાશકર્તા સંસાધનોની બચત કરે છે, જેમ કે બેટરી અને ટ્રાફિક, જે ફોન પર ખૂબ જ મહત્વપૂર્ણ છે.

બદલામાં, બ્રાઉઝરમાં ગણતરી એ સિદ્ધાંતમાં સૌથી શ્રેષ્ઠ ઉકેલ નથી. તેથી, જે ખર્ચાળ નથી, અમે તેને અમારા સર્વર પર ધ્યાનમાં લઈએ છીએ. અમે બાકીનું ક્લાયંટ પર છોડીએ છીએ. હું ખરેખર સર્વર પર કમિશન લેવા અને તેની ગણતરી કરવા માંગુ છું. પરંતુ અહીં “ઇન્ટરએક્ટિવિટી” તરીકે ઓળખાતી સૂક્ષ્મતા આવે છે. ધારો કે તમારી પાસે હજારો ઑપરેશન્સ છે અને તે મેળવવામાં પાંચ મિનિટ લાગે છે. આ સમયે વપરાશકર્તા પાસે શું હશે? સ્પિનર? પ્રગતિ? કેટલી અપલોડ કરવામાં આવી હતી તે વિશે ઇન્ફા? જ્યારે પ્રક્રિયામાં વપરાશકર્તા પહેલેથી જ કંઈક જોઈ શકે ત્યારે “સક્રિય પ્રતીક્ષા” નો ઉપયોગ કરવો આદર્શ છે. અહીં પરિણામ છે:બ્રોકરેજ રિપોર્ટ્સ અને કમિશન ગણતરીને સ્વચાલિત કરવા માટે અમે Tinkoff Invest API નો ઉપયોગ કરીને માઇક્રોસર્વિસ વિકસાવી રહ્યા છીએ.

  • પૃષ્ઠ લોડ થઈ રહ્યું છે
  • તમામ ઇન્વોઇસની વિનંતી કરવામાં આવે છે
  • તે પછી, એક્ઝિક્યુટેડ ટ્રાન્ઝેક્શન માટે કમિશન સાથેના તમામ વ્યવહારો તમામ એકાઉન્ટ્સ માટે વિનંતી કરવામાં આવે છે. જેમ જેમ ડેટા પ્રાપ્ત થાય છે, તે બ્રાઉઝરમાં રેન્ડર થાય છે.

દરેક વખતે ઇવેન્ટમાં ડેટા ફિલ્ટર ન કરવા માટે, અમે દરેક એકાઉન્ટ માટે અમારી પોતાની ઇવેન્ટ ખેંચીએ છીએ. આની જેમ:

socket.emit(‘sdk:getOperationsCommissionResult_’ + accountId, {                 આઇટમ્સ: ડેટા?. આઇટમ્સ,                 ઇનપ્રોગ્રેસ: બુલિયન(નેક્સ્ટ કર્સર), });

લોંચ કરવા માટેનો ડ્રાફ્ટ અહીં છે: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…step3 આગળ વધવું. તમે આ પંક્તિ વાંચી તે ખૂબ સરસ છે! 

રસની માહિતીની ગણતરી અને આઉટપુટ

કોને કઈ માહિતીની જરૂર છે તેના પર આધાર રાખે છે. તેથી, હું તરત જ તમને મુખ્ય ઘોંઘાટ કહું છું જેનો તમે સામનો કરશો.

ભાવ સાથે કામ 

દરેક વ્યક્તિ જે ફાઇનાન્સ સાથે કામ કરે છે તે જાણે છે કે પૈસાની લેવડ-દેવડ માત્ર પૂર્ણ સંખ્યાઓ સાથે જ થવી જોઈએ. દશાંશ બિંદુ પછીના મૂલ્યોની અચોક્કસતાને કારણે અને મોટી સંખ્યામાં કામગીરી સાથે સંચિત ભૂલ. તેથી જ તમામ કિંમતો નીચેના મનીવેલ્યુ ફોર્મેટમાં રજૂ કરવામાં આવી છેબ્રોકરેજ રિપોર્ટ્સ અને કમિશન ગણતરીને સ્વચાલિત કરવા માટે અમે Tinkoff Invest API નો ઉપયોગ કરીને માઇક્રોસર્વિસ વિકસાવી રહ્યા છીએ.

ક્ષેત્ર પ્રકાર વર્ણન
ચલણ તાર સ્ટ્રિંગ ISO ચલણ કોડ
એકમો int64 સરવાળાનો પૂર્ણાંક ભાગ, નકારાત્મક સંખ્યા હોઈ શકે છે
નેનો int32 રકમનો અપૂર્ણાંક ભાગ, નકારાત્મક સંખ્યા હોઈ શકે છે

અમે તેમને અલગથી પ્રક્રિયા કરીએ છીએ, પછી તેમને કિંમત મૂલ્ય પર લાવીએ છીએ:

quotation.units + quotation.nano / 1e9

ફ્યુચર્સ કોન્ટ્રાક્ટની કિંમત

ફ્યુચર્સની કિંમત પોઈન્ટ્સમાં રજૂ કરવામાં આવે છે, જ્યારે તમારી પાસે ચલણનું ભાવિ હોય, ત્યારે તમારે દર જાણવાની જરૂર છે. અને અલબત્ત પોઈન્ટમાં કિંમત અને કિંમત પગલું. જ્યારે તમે વ્યવહારોમાંથી નફાની ગણતરી કરો છો, ત્યારે આ શૂટ કરી શકે છે, કારણ કે. જો તમે કિંમતને જથ્થા દ્વારા ગુણાકાર કરીને કુલ રકમની ગણતરી કરો છો. અહીં તમારે સાવચેત રહેવાની જરૂર છે. હમણાં માટે, અમે જોઈશું કે તે કેવી રીતે જાય છે. આ કરન્સી ફ્યુચર્સને લાગુ પડે છે, અન્ય સ્થળોએ આની સાથે બધું બરાબર છે.બ્રોકરેજ રિપોર્ટ્સ અને કમિશન ગણતરીને સ્વચાલિત કરવા માટે અમે Tinkoff Invest API નો ઉપયોગ કરીને માઇક્રોસર્વિસ વિકસાવી રહ્યા છીએ. બ્રોકરેજ રિપોર્ટ્સ અને કમિશન ગણતરીને સ્વચાલિત કરવા માટે અમે Tinkoff Invest API નો ઉપયોગ કરીને માઇક્રોસર્વિસ વિકસાવી રહ્યા છીએ.

ઓટીસી બજાર

આ માર્કેટમાં ઘણી બધી વિશિષ્ટતાઓ છે, તેથી ચાલો તેના પરની કામગીરીનો અલગથી અભ્યાસ કરીએ. જ્યારે તમે કામગીરીને સિંક્રનાઇઝ કરવાનું શરૂ કરો છો, ત્યારે તે બહાર આવશે કે તમારે સાધનને યોગ્ય રીતે મેચ કરવા માટે ફિગી/ટીકરને સમાન સ્વરૂપમાં લાવવાની જરૂર છે. જ્યારે તમે આને બ્રોકરેજ રિપોર્ટ સાથે સિંક્રનાઇઝ કરવાનું શરૂ કરશો, ત્યારે તે બહાર આવશે કે સમાન વ્યવહારના ટ્રેડઆઈડીમાં વ્યવહારોની શરૂઆતમાં અક્ષરો છે અને તે બ્રોકરેજ રિપોર્ટમાં નથી. તેથી, તેમની તુલના કરી શકાતી નથી … અહેમ-અહેમ … સરખામણી દ્વારા! મેં વેપારનો સમય, ટિકર અને મેચિંગ સાથે મેળ ખાય છે કે એક ટ્રેડઆઈડી બીજામાં સમાયેલ છે. સાચું, મને ખબર નથી. જે કોઈ આનો સામનો કરે છે અને જે તેની પરવા કરે છે, તે મુદ્દા પર આવો અથવા નવી શરૂઆત કરો.બ્રોકરેજ રિપોર્ટ્સ અને કમિશન ગણતરીને સ્વચાલિત કરવા માટે અમે 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