מיר אַנטוויקלען אַ מיקראָסערוויס ניצן די Tinkoff Invest API צו אָטאַמייט בראָוקערידזש ריפּאָרץ און קאָמיסיע כעזשבן.

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

די ינספּירערס הינטער דער אַנטוויקלונג פון די סטאַטיסטיק סערוויס פֿאַר Tinkoff ינוועסטמאַנץ זענען:

וואָס וועט זיין דיסקאַסט?

  • בלויז די געווענדט טייל וועגן אַנטוויקלונג.
  • פאַקטיש וויסן און דערפאַרונג, וואָס זענען זייער וויכטיק אין ארבעטן מיט פינאַנציעל ינסטראַמאַנץ.
  • איבערבליק פון ישוז צו אַרבעטן אויף

אַזוי איך ווילן צו רעכענען האַנדל סטאַטיסטיק און טאָן דאָס אויף אַ באַקוועם וועג. 

דעוועלאָפּינג אַ סטאַטיסטיק דינסט שריט דורך שריט: 

  1. קשר צו Tinkoff Invest API
  2. צייכענונג דאַטן פון Tinkoff Invest API אין אַ בלעטערער
  3. ריסיווינג בראָוקערידזש ריפּאָרץ און טראַנזאַקשאַנז
  4. כעזשבן און רעזולטאַט פון אינפֿאָרמאַציע פון ​​אינטערעס
  5. קאַנקלוזשאַנז און פּלאַנז פֿאַר דער צוקונפֿט

קשר צו Tinkoff Invest API

צו פאַרבינדן צו די אַפּי, איר קענען נעמען קיין sdk פון די דאַקיומענטיישאַן https://github.com/Tinkoff/investAPI#sdk . אָדער npm פּעקל ` tinkoff-sdk-grpc-js `. עס איז וויכטיק אַז דער פּעקל איז דערהייַנטיקט צו די לעצטע ווערסיע דורך די דעוועלאָפּערס. ינסטאַלירן

npm און tinkoff-sdk-grpc-js

קאָנטראָלירונג

const {createSdk} = דאַרפן (‘tinkoff-sdk-grpc-js’);   // טאָקען וואָס קענען זיין באקומען ווי דעם  const TOKEN = ‘YOURAPI’;   // די נאָמען פון די אַפּלאַקיישאַן דורך וואָס איר קענען זיין געפֿונען אין די TCS לאָגס. const appName = ‘tcsstat’;   const sdk = createSdk (טאָקען, אַפּפּנאַמע); (אַסינק () => {     console.log (אַווייץ sdk.users.getAccounts ()); }) ();

רעזולטאַט: אַ רשימה פון דיין אַקאַונץ וועט זיין געוויזן אין די קאַנסאָול. פֿאַר בייַשפּיל, לאָזן אונדז אַנאַלייז די נואַנסיז:מיר אַנטוויקלען אַ מיקראָסערוויס ניצן די Tinkoff Invest API צו אָטאַמייט בראָוקערידזש ריפּאָרץ און קאָמיסיע כעזשבן.

  • אין דער רשימה פון אַקאַונץ עס איז אַ “ינוועסטמענט באַנק”, מיט וואָס איר קענען נישט אַרבעטן מיט די אַפּי
  • ביטע טאָן אַז די פעלדער קומען אין 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 און socket.io socket.io-client

מיר גלייך גיינ ווייַטער צו די פרענדשיפּ שריט ווייַטער + כאָלעל + ינוועסטאַפּי, און זען די נוציק אָפּטיילונג פון דעם שריט פֿאַר אַלע די דעטאַילס.  איך וועל באַשרייַבן די פרטים: 

  • אויף די נאָדעדזשס (סערווער) זייַט, עס איז אַ בלעטער/אַפּי/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. באַקומען דיווידענדז פרעמד ישוער
  3. GetOperationsByCursor

פון די אָנהייב עס איז וויכטיק צו וויסן: 

  • די בראָוקערידזש באַריכט איז דזשענערייטאַד אין די T-3 מאָדע, י.ע. טריידז זענען געוויזן דאָרט נאָך זייער פאַקטיש דורכפירונג. 
  • דעריבער, אויב איר בעטן דעם באַריכט פֿאַר די לעצטע צוויי טעג, עס וועט זיין גרייט אין דריי טעג. 
  • צו מאַכן דילז פֿאַר די לעצטע טעג, מיר נוצן דעם אופֿן פֿאַר ריסיווינג אַפּעריישאַנז, אָבער געדענקען אַז זייער שייַן און אינהאַלט קען טוישן נאָך די פאָרמירונג פון די בראָוקערידזש באַריכט.

GetBrokerReport

צו באַקומען אַ בראָוקערידזש באַריכט, איר דאַרפֿן צו נעמען די חשבון שייַן, אָנהייב טאָג און סוף טאָג פון די באַריכט, אָבער ניט מער ווי 31 טעג. מיר שיקן אַ בקשה צו דזשענערייט אַ באַריכט צו די אַפּי אין דזשענערייט _בראָקער_רעפּאָרט_רעקוועסט , באַקומען אַ טאַסקיד אין ענטפער. נאָך דעם, ניצן דעם טאַסקיד, מיר באַקומען דאַטן פֿון באַקומען _בראָקער_רעפּאָרט_רעספּאָנסע. [ספּוילער טיטל = “אזוי די דאַקיומענטיישאַן זאגט, אין פאַקט עס זענען נואַנסיז. היט דיין הענט:”]

  • איר דאַרפֿן צו ראַטעווען די טאַסקיד אויף אייביק פּונקט פֿאַר די דאַטעס. 
  • זינט אויב איר פאַרלירן עס, פֿאַר די געבעטן דאַטעס דער באַריכט וועט ערשטער קומען אין ענטפער צו די דור בעטן, 
  • און דעמאָלט עס וועט נישט קומען אין אַלע.

[/ ספּוילער] לאָמיר אָנהייבן שרייבן קאָד

אופֿן צו באַקומען די דאַטע, גענומען אין חשבון די כיסער פון די קראַנט דאַטע

const getDateSubDay = (סובדייַ = 5, אָנהייב = אמת) => {     קאָנסט דאַטע = נייַ טאָג ();     date.setUTCDate(date.getUTCDate() – סובדייַ);       אויב (אָנהייב) {         date.setUTCHours (0, 0, 0, 0);     } אַנדערש {         date.setUTCHours(23, 59, 59, 999);     }       צוריקקומען דאַטע; };

מעלדונג דור בעטן 

const brokerReport = await (sdk.operations.getBrokerReport) ({         generBrokerReportRequest: {             accountId,             from,             to,         }, });

רעזולטאט:

  • ווי אַ רעזולטאַט פון דער ערשטער דורכפירונג פון די באַפֿעל, מיר באַקומען די taskId. 
  • דער באַריכט סטאַרץ צו זיין דזשענערייטאַד אויף די מעקלער ס זייַט. ווען עס איז גרייט איז אומבאַקאַנט, מיר וואַרטן און פּיריאַדיקלי ציען די טאַסקיד אין אַנטיסאַפּיישאַן פון דעם באַריכט.
  • פארוואס? ווייַל אויב דער באַריכט איז נישט גרייט, עס ווארפט ער אַ טעות. אויב דער באַריכט איז נישט גרייט אויף די מעקלער ס זייַט, דאָס איז אַ טעות אין דיין קאָד. ביטע פּראָצעס: 30058|INVALID_ARGUMENT|אַרבעט נאָך נישט געענדיקט, ביטע פּרובירן ווידער שפּעטער

דער קאָד פֿאַר ווארטן און באַקומען אַ באַריכט קוקט עפּעס ווי דאָס.

קאָנסט טייַמער = אַסינק צייט => {     צוריקקומען נייַ צוזאָג (לייזן => סעטטימעאָוט (באַהאַלטן, צייט)); }   const getBrokerResponseByTaskId = אַסינק (טאַסקיד, בלאַט = 0) => {     פּרובירן {         return await (sdk.operations.getBrokerReport)({             getBrokerReportRequest: {                 taskId,                 page,             },         });     } כאַפּן (E) {         console.log (‘וואַרטן’, E);         דערוואַרטן טייַמער (10000);         צוריקקומען אַווייץ getBrokerResponseByTaskId (taskId, בלאַט);     } } ;

דעמאָלט דער זעלביקער מאַגיש כאַפּאַנז. מיר האַלטן אונדזער שריפט, אָנהייבן עס ווידער, מיר טאָן ניט האָבן אַ טאַסקאיד. מיר ויספירן דעם קאָד מיט די טאַסקיד בעטן, אָבער מיר ניט מער באַקומען די טאַסקיד, אָבער גלייך די באַריכט. מאַגיש! און אַלץ וואָלט זיין פייַן אויב עס איז שטענדיק אַזוי. אָבער אין אַ חודש עס וועט זיין קיין דאַטן. נוציק :

  • א ביסל פון טעאָריע איז אַוטליין דאָ און דאָ .
  • שטעלן דעם קאָד צוזאַמען, דער פּלאַן וועט קוקן עפּעס ווי דאָס.

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

  • אויב עמעצער קומט אַריבער דעם, ברוכים הבאים צו דעם אַרויסגעבן . נאָך זיי פאַרריכטן דעם מאַגיש, עס וועט פאַרלירן זייַן מאַכט און וועט זיין עפעס אַנדערש. אָבער אין דעם מאָמענט (21/03/2023) עס אַרבעט פּונקט אַזוי.

באַקומען דיווידענדז פרעמד ישוער

עמעצער קען טראַכטן אַז דער אופֿן איז ענלעך צו די פריערדיקע און איר קענען נוצן אַ איין אופֿן אין וואָס איר נאָר טוישן די נאָמען פון די אַפּעריישאַנז. אבער זיי האבן נישט טרעפן!  די נאָמען דאָרט איז זייער אַנדערש סיי אין די מעטהאָדס און אין די אומגעקערט אינפֿאָרמאַציע. און די בלעטער ציילן הייבט זיך אן פון 0, דערנאך פון 1. כדי נישט צו צעמישן זיך אין דעם אלעם, איז גרינגער צו שרייבן צוויי פאַרשידענע מעטאדן. וואָס איז מאָדנע, ווייַל די לאָגיק פון אַרבעט איז די זעלבע. איך קאַמאַש פֿאַר אַ לאַנג צייַט ווען איך געפרוווט צו מאַכן איין אופֿן און עס איז געווען ווייניקער קאָד. עס וועט נישט זיין קיין ביישפילן דאָ.

GetOperationsByCursor

מיין באַליבט פון די דריי. כאָטש ניט די מערסט פּינטלעך, אָבער די מערסט טויגן. מיר מאַכן אַ בקשה פון די אָנהייב פון שאַפֿן אַ חשבון צו די מאַקסימום מעגלעך דאַטע (קלאָוזינג אַ חשבון אָדער די קראַנט איינער). מיר באַקומען די ענטפער, נעמען די לויפֿער און ריקוועטשן ווי לאַנג ווי עס זענען דאַטן.  און דער קאָד איז מער קאַנסייס ווי אין די ביישפילן אויבן.

קאָנסט טייַמער = אַסינק צייט => {     צוריקקומען נייַ צוזאָג (לייזן => סעטטימעאָוט (באַהאַלטן, צייט)); }   const getOperationsByCursor = async (sdk, accountId, from, to, cursor = ”) => {     פּרובירן {         const reqData = {             accountId,             from,             to,             limit: 1000,             state: sdk.OperationState.OPERATION_STATE_EXECUTED,             withoutcommissions: false,             אָן טראַדעס: פאַלש,             אָן אָווערניגהטס: פאַלש,             לויפֿער,         };           צוריקקומען דערוואַרטן sdk.operations.getOperationsByCursor(reqData);     } כאַפּן (E) {         אַווייט טייַמער (60000);         צוריקקומען דערוואַרטן געאָפּעראַטיאָנס ביי קורסאָר (סדק, אַקאַונטיד, פֿון, צו, לויפֿער = ”);     } } ;

דער פּלאַן צו לויפן איז דאָ: https://github.com/pskucherov/tcsstat/tree/step3.3 https://github.com/pskucherov/tcsstat/compare/step3.3 איצט מיר זענען גרייט צו לייגן ריסיווינג אַפּעריישאַנז צו אונדזער אַפּלאַקיישאַן. אויב געטאן ריכטיק, איר דאַרפֿן צו באַקומען בראָוקערידזש ריפּאָרץ פֿאַר די גאנצע עקזיסטענץ פון די חשבון. און פֿאַר די פעלנדיק דאַטן, די זעלבע T-3 ס, רילאָוד פֿון אַפּעריישאַנז. אָבער דאָס קען מען אָפּטיילן אין אַ באַזונדערן אַרטיקל. פון די הויפּט נואַנסיז אַז איר וועט טרעפן איז צו קליי אַפּעריישאַנז און אַ בראָוקערידזש באַריכט.

  •  אויב הייַנט איר באקומען אַ בראָוקערידזש באַריכט און טראַנזאַקשאַנז פֿאַר די פארלאנגט דאַטעס, שטעלן עס אַלע אין די דאַטאַבייס, עס זענען קיין פראבלעמען. 
  • איר וועט האָבן פּראָבלעמס מאָרגן ווען איר באַקומען די ווייַטער חלק פון דאַטן פון די באַריכט און אַפּעריישאַנז און באַשליסן צו סינגקראַנייז זיי מיט די יגזיסטינג דאַטאַבייס. 
  • א פּלאַץ פון נואַנסיז וועגן מיסמאַטשט אָדער טשאַנגינג שייַן נאָך פּראַסעסינג
  • דערנאָך פֿאַר די אָטק מאַרק, די שייַן איז נישט פּאַסיק.
  •  ווי געזונט ווי די נואַנסיז פון סינגקראַנייזינג ינסטראַמאַנץ, וואָס ווידער טאָן ניט צונויפפאַלן, רעכט צו די פּיקיוליעראַטיז פון די אַפּי. אבער דאָס איז אן אנדער געשיכטע.

לאָמיר לייגן אינפֿאָרמאַציע וועגן אַפּעריישאַנז צו אונדזער אַפּלאַקיישאַן. די הויפּט קשיא וועט זיין ווו די דאַטן וועט זיין פּראַסעסט און סטאָרד.

  •  אויב איר טאָן דאָס פֿאַר זיך, איר וועט פאַרנוצן די זעלבע דאַטן פון פאַרשידענע דעוויסעס. דערנאָך איר דאַרפֿן צו פּראָצעס און קראָם דאַטן אויף די סערווער.
  • אויב איר האָבן אַ פּלאַץ פון פאַרשידענע דאַטן קאַנסומד דורך פילע פאַרשידענע ניצערס, איר דאַרפֿן צו באַשליסן וואָס איז מער וויכטיק: די גיכקייַט פון די ניצערס אָדער די שפּאָרן פון פּרעסן אויף דיין זייַט. ווער עס יז קענען פאַרגינענ זיך אַ ינפאַנאַט סומע פון ​​ייַזנוואַרג ציילן אַלץ אויף זיין סערווער און מאכט עס סופּער שנעל פֿאַר ניצערס, שפּאָרן די באַניצער רעסורסן, אַזאַ ווי באַטאַרייע און פאַרקער, וואָס איז זייער וויכטיק אויף פאָנעס.

אין קער, קאַונטינג אין דעם בלעטערער איז נישט די מערסט אָפּטימאַל לייזונג אין פּרינציפּ. דעריבער, וואָס איז נישט טייַער, מיר באַטראַכטן עס אויף אונדזער סערווער. מיר לאָזן די מנוחה צו דעם קליענט. איך טאַקע ווילן צו נעמען און רעכענען די קאָמיסיע אויף די סערווער. אבער דאָ קומט די נואַנס גערופן “ינטעראַקטיוויטי”. זאל ס זאָגן איר האָבן טויזנטער פון אַפּעריישאַנז און עס נעמט פינף מינוט צו באַקומען זיי. וואָס וועט דער באַניצער האָבן אין דעם צייט? ספּינער? פּראָגרעס? אינפֿאָרמאַציע וועגן ווי פיל איז געווען ופּלאָאַדעד? עס איז ידעאַל צו נוצן “אַקטיוו ווארטן” ווען דער באַניצער אין דעם פּראָצעס קען שוין זען עפּעס. דאָ איז דער רעזולטאַט:מיר אַנטוויקלען אַ מיקראָסערוויס ניצן די Tinkoff Invest API צו אָטאַמייט בראָוקערידזש ריפּאָרץ און קאָמיסיע כעזשבן.

  • בלאַט לאָודינג
  • אַלע ינווויסיז זענען געבעטן
  • נאָך דעם, אַלע טראַנזאַקשאַנז מיט קאַמישאַנז פֿאַר עקסאַקיוטאַד טראַנזאַקשאַנז זענען פארלאנגט פֿאַר אַלע אַקאַונץ. ווי דאַטן זענען באקומען, עס איז רענדערד אין דעם בלעטערער.

כּדי נישט צו פילטער די דאַטן אין די געשעענישן יעדער מאָל, מיר ציען אונדזער אייגענע געשעעניש פֿאַר יעדער חשבון. אזוי:

socket.emit(‘sdk:getOperationsCommissionResult_’ + accountId, {                 ייטאַמז: דאַטן?.יטעמס,                 inProgress: Boolean(nextCursor), });

דער פּלאַן צו קאַטער איז דאָ: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…step3 מאַך אויף. עס איז גרויס אַז איר האָט לייענען דעם שורה! 

כעזשבן און רעזולטאַט פון אינפֿאָרמאַציע פון ​​אינטערעס

דעפּענדס אויף ווער דאַרף וואָס אינפֿאָרמאַציע. דעריבער, איך גלייך זאָגן איר די הויפּט נואַנסיז אַז איר וועט טרעפן.

ארבעטן מיט פּרייסאַז 

אַלעמען וואס אַרבעט מיט פינאַנצן ווייסט אַז געלט טראַנזאַקשאַנז זאָל זיין געטאן בלויז מיט גאַנץ נומערן. רעכט צו דער ינאַקיעראַסי פון וואַלועס נאָך די דעצימאַל פונט און די קיומיאַלאַטיוו טעות מיט אַ גרויס נומער פון אַפּעריישאַנז. אַז איז וואָס אַלע פּרייסאַז זענען דערלאנגט אין די פאלגענדע MoneyValue פֿאָרמאַטמיר אַנטוויקלען אַ מיקראָסערוויס ניצן די Tinkoff Invest API צו אָטאַמייט בראָוקערידזש ריפּאָרץ און קאָמיסיע כעזשבן.

פעלדטיפּבאַשרייַבונג
קראַנטקייַטשטריקלשטריקל יסאָ קראַנטקייַט קאָד
וניץint64ינטאַדזשער טייל פון די סאַכאַקל, קענען זיין אַ נעגאַטיוו נומער
נאַנאָint32פראַקשאַנאַל טייל פון די סומע, קענען זיין אַ נעגאַטיוו נומער

מיר פּראָצעס זיי סעפּעראַטלי, און ברענגען זיי צו די פּרייַז ווערט:

quotation.units + quotation.nano / 1e9

די פּרייַז פון פיוטשערז קאַנטראַקץ

דער פּרייַז פון פיוטשערז איז דערלאנגט אין ווייזט, ווען איר האָבן אַ קראַנטקייַט צוקונפֿט, איר דאַרפֿן צו וויסן דעם קורס. און פון קורס די פּרייַז אין ווייזט און די פּרייַז שריט. ווען איר רעכענען די נוץ פון טראַנזאַקשאַנז, דאָס קענען דרייען, ווייַל. אויב איר רעכענען די גאַנץ סומע דורך מאַלטאַפּלייינג די פּרייַז דורך די קוואַנטיטי. דאָ איר דאַרפֿן צו זיין אָפּגעהיט. איצט מיר וועלן זען ווי עס גייט. דאָס אַפּלייז צו קראַנטקייַט פיוטשערז, אין אנדערע ערטער אַלץ איז גוט מיט דעם.מיר אַנטוויקלען אַ מיקראָסערוויס ניצן די Tinkoff Invest API צו אָטאַמייט בראָוקערידזש ריפּאָרץ און קאָמיסיע כעזשבן.מיר אַנטוויקלען אַ מיקראָסערוויס ניצן די Tinkoff Invest API צו אָטאַמייט בראָוקערידזש ריפּאָרץ און קאָמיסיע כעזשבן.

אָטק מאַרק

דער מאַרק האט אַ פּלאַץ פון פּיקיוליעראַטיז, אַזוי לאָמיר לערנען אַפּעריישאַנז אויף אים סעפּעראַטלי ווען איר אָנהייבן סינגקראַנייזינג דעם מיט די בראָוקערידזש באַריכט, עס וועט זיין געוויזן אַז די TradeID פון די זעלבע טראַנסאַקטיאָן האט אותיות אין די אָנהייב אין די טראַנזאַקשאַנז און זיי זענען נישט אין די בראָוקערידזש באַריכט. דערפאר קען מען זיי נישט פארגלייכן… אהמ-אהם… אין פארגלײך! איך מאַטשט די האַנדל צייט, טיקער און גלייַכן אַז איין האַנדליד איז קאַנטיינד אין אנדערן. רעכט, איך טאָן ניט וויסן. ווער עס טרעפט דאס און ווער ס’זעט דערפון, קומט צו די נושא אדער הייבט אן א נייעם.מיר אַנטוויקלען אַ מיקראָסערוויס ניצן די 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