Tajaajila istaatiksii Tinkoff Investments akka qophaa’u kan kakaasan :
- barruu Habré irratti “Waan Invastimantiiwwan Tinkoff hin dubbanne”
- xiinxala fedhii fayyadamtoota waltajjii
- barreeffama waa’ee shallaggii komishinii .
- Maaltu irratti mari’atama?
- Tajaajila istaatistiksii tartiiba tartiibaan qopheessuu:
- Walitti hidhamiinsa Tinkoff Invest API
- Deetaa Tinkoff Invest API irraa biraawzari keessatti kaasuun
- Gabaasa daldalaa fi daldala argachuu
- GabaasaBroker argachuu
- Mala guyyaa argachuuf, guyyaa ammaa irraa hir’isuu tilmaama keessa galchuun
- Gaaffii dhaloota gabaasaa
- Bu’aa:
- GetDividendsAbbaa Biyya Alaa
- HojiiwwanKaarsariin Argadhu
- Shallaggii fi oomisha odeeffannoo fedhii qabu
- Gatii waliin hojjechuu
- Baasii waliigalteewwan gara fuula duraa
- Gabaa OTC
- Hojiiwwan herregaa meeshaalee irratti
- Microservice qophaa’eera!
- Xumuraa fi karoora gara fuula duraa
- https://opexbot.info irratti kan argamu
Maaltu irratti mari’atama?
- Kutaa hojiirra oole qofa waa’ee misoomaa.
- Beekumsaa fi muuxannoo dhugaa, kanneen meeshaalee faayinaansii wajjin hojjechuu keessatti baay’ee barbaachisoo ta’an.
- Haala waliigalaa dhimmoota irratti hojjetamuu qaban
Kanaafuu, istaatiksii daldalaa shallagee karaa mijataa ta’een hojjechuu barbaada.
Tajaajila istaatistiksii tartiiba tartiibaan qopheessuu:
- Walitti hidhamiinsa Tinkoff Invest API
- Deetaa Tinkoff Invest API irraa biraawzari keessatti kaasuun
- Gabaasa daldalaa fi daldala argachuu
- Shallaggii fi oomisha odeeffannoo fedhii qabu
- Xumuraa fi karoora gara fuula duraa
Walitti hidhamiinsa Tinkoff Invest API
API waliin walqabsiisuuf, sdk kamiyyuu galmee https://github.com/Tinkoff/investAPI#sdk irraa fudhachuu dandeessa . Yookiin paakeejii npm ` tinkoff-sdk-grpc-js `. Paakeejiin kun warra hojjetaniin gara version isa haaraatti fooyya’uun barbaachisaa dha. Itti fe’uu
npm ani tinkoff-sdk-grpc-js
Sakatta’uu
const { uumuuSdk } = barbaadu (‘tinkoff-sdk-grpc-js’); // Mallattoo akka kanaa argamuu danda’u const TOKEN = ‘YOURAPI’; // Maqaa aplikeeshinii galmeewwan TCS keessatti ittiin argamuu dandeessu. const Maqaa app = ‘tcsstat’; const sdk = Sdk uumuu (TOKEN, Maqaa app); (async () => { konsolii.log (sdk.fayyadamtoota.herrega argachuu () eegaa); }) ();
Bu’aa: tarreen herrega keetii konsolii keessatti ni mul’ata. Fakkeenyaaf, mee nuances haa xiinxallu:
- Tarree herregaa keessatti “Baankii invastimantii” jira, kan API fayyadamuun waliin hojjechuu hin dandeenye
- Hubadhaa man’eewwan camelCase keessatti kan dhufan yoo ta’u, galmee keessatti man’eewwan kun qabxii_jalaatiin dhiyaataniiru.
- Bakka hundatti akkas ta’a, kanaaf dirree tokko galmee irraa fudhachuu fi waraabuu qofa hin dandeessu.
Kan nama fayyadu:
- Koodii kana damee pirojektii keessatti argachuu dandeessu
https://github.com/pskucherov/tcsstat/muka/tarkaanfii1 https://github.com/pskucherov/tcsstat/wal bira qabi/tarkaanfii1
Deetaa Tinkoff Invest API irraa biraawzari keessatti kaasuun
Next.js fi socket.io fudhadhe. Kun gorsa cimaa miti, akka fedhii keessaniitti filadhaa.
npx uumuu-itti aanu-app@latest npm i socket.io socket.io-maamila
Achumaan gara tarkaanfii hiriyummaa next+socket+investapi tti ceena, bal’ina hundaaf kutaa Faayidaa tarkaanfii kanaa ilaalla. Bal’inaan ibsa:
- Gama nodejs (tarjaa) irratti, faayilii pages/api/investapi.js jira. Kunis bakka socket.io server uumnee investapi waliin wal qunnamnudha.
- Gama biraawzari (maamila)tiin karaa socket server waliin wal qunnamnee daataa herregaa broker irraa gaafanna.
- Daataa daldalaa sarvarii irratti argamu irraa arganna, sana booda gara maamilaatti ergina. Yeroo maamila irratti fudhataman, biraawzari keessatti agarsiifamu.
Bu’aan: browser console keessatti odeeffannoo waa’ee accounts arguu dandeenya. Kunis, tarkaanfii isa dhumaa irratti, odeeffannoo waa’ee herrega konsoolii sarvarii (nodejs) keessatti argine, tarkaanfii ammaa keessatti, odeeffannoo kana gara maamilaatti (browser) dabarsine.
Amma akkaawuntii biraawzari irraa filachuu dandeessanitti haa goonu, yoo token hin jirre immoo dogongorri gara konsooliitti ergama. Hojiin salphaa fi waan haaraa miti, kanaaf ani hidhaa commits qofa kenna
- https://github.com/pskucherov/tcsstat/commit/7e1ac57061e5e971588479015b06d8814d6609a9 irratti kan argamu ta’uu ibsameera
- https://github.com/pskucherov/tcsstat/commit/b28ac973a57494f5232589b4cb6b9fb13b8af759 Afaan Oromoo fi Jechoota Dinqisiiso Afaan Oromoo
Kan nama fayyadu:
- Akkaataa itti aansee fi socket hiriyyaa itti argannu bal’inaan asitti ibsameera .
- Koodii hiriyummaa itti aanu+socket+investapi:
https://github.com/pskucherov/tcsstat/commit/a443a4ac1bb4f0aa898f638128755fe7391ee381 Kan armaan olii kun ulfaataa ta’eef, sana booda sadarkaa kanarra hafnee koodii waliin ilaalla. Gaaffii yoo qabaattan – gaafadhaa. https://github.com/pskucherov/tcsstat/muka/tarkaanfii2ffaa https://github.com/pskucherov/tcsstat/wal bira qabi/tarkaanfii1…tarkaanfii2
Gabaasa daldalaa fi daldala argachuu
Gabaasa daldalaa fi daldalaa argachuuf maloonni sadii jiru
Jalqabarraa kaasee beekuun barbaachisaadha:
- Gabaasni daldalaa haala T-3 keessatti uuma, i.e. daldaltoonni erga qabatamaan raawwatamanii booda achitti agarsiifamu.
- Haaluma kanaan gabaasa kana guyyoota lamaan darbaniif yoo gaafattan guyyoota sadii booda qophii ta’a.
- Guyyoota dhumaatif daldala argachuuf, mala daldala fudhachuuf fayyadamna, garuu id fi qabiyyeen isaanii erga gabaasni daldalaa uumamee booda jijjiiramuu akka danda’u yaadadhu.
GabaasaBroker argachuu
Gabaasa daldalaa argachuuf id herregaa, guyyaa jalqabaa fi guyyaa xumura gabaasaa fudhachuu qabda, garuu guyyoota 31 hin caalle. Gaaffii gabaasa uumuuf gara API generate _broker_report_request keessatti ergina , deebii taskId arganna. Sana booda, taskId kana fayyadamuun, get _broker_report_response irraa deetaa arganna .
- TaskID bara baraan sirriitti guyyoota kanaaf saaguu qabda.
- Yoo dhabde, sana booda guyyoota gaafatamaniif gabaasaan jalqaba gaaffii dhalootaaf deebii ta’ee waan dhufuuf, .
- Sana booda immoo tasuma hin dhufu.
Mala guyyaa argachuuf, guyyaa ammaa irraa hir’isuu tilmaama keessa galchuun
const getDateSubDay = (Guyyaa xiqqaa = 5, jalqaba = dhugaa) => { const guyyaa = Guyyaa haaraa (); guyyaa.setUTCDate (guyyaa.getUTCDate () – Guyyaa xiqqaa); yoo (jalqaba) { guyyaa.setUTCHours (0, 0, 0, 0); } else { guyyaa.setUTCHours (23, 59, 59, 999); } guyyaa deebisuu; };
Gaaffii dhaloota gabaasaa
const Gabaasa daldalaa = eegaa (sdk.operations.getBrokerReport)({ GaaffiiGabaasaBroker uumuu: { Id herregaa, irraa, gara, }, });
Bu’aa:
- Bu’aa raawwii jalqabaa ajajichaa irraa kan ka’e taskId arganna.
- Gabaasni gama daldalaatiin uumamuu jalqaba. Yeroo qophaa’u hin beekamu, eegnee yeroo yeroon taskId gabaasa eeguun harkifna.
- Maalif? Sababni isaas yoo gabaasni qophii hin taane dogongora darbata. Yoo gabaasaan gama daldalaatiin qophaa’uu baate, kana booda kun dogongora koodii kee keessatti mul’ata. Mee adeemsi: 30058|INVALID_ARGUMENT|hojiin ammallee hin xumuramne, maaloo booda irra deebi’ii yaali
Koodiin gabaasa eeguu fi fudhachuu waan kana fakkaata.
const timer = yeroo async => { Waadaa haaraa deebisuu (furmaata => setTimeout(furmaata, yeroo)); } const getBrokerResponseByTaskId = async (taskId, fuula = 0) => { try { return eegaa (sdk.operations.getBrokerReport)({ GaaffiiGabaasaBroker argachuu: { taskId, fuula, }, }); } qabachuu (e) { konsoolii.log (‘eegaa’, e); sa’aatii eeguu(10000); deebi’i eegaa getBrokerResponseByTaskId (Id hojii, fuula); } };
Sana booda sihrii wal fakkaataan ni raawwatama. Iskiriiptii keenya dhaabna, irra deebi’ee jalqabna, taskId hin qabnu. Koodii gaaffii taskId waliin raawwanna, garuu kana booda taskId hin argannu, garuu battalumatti gabaasa. Sihrii! Yeroo hunda osoo akkas ta’ee wanti hundi gaarii ta’a. Garuu ji’a tokko booda daataa tasumaa hin jiraatu. Faayidaa qaba : .
- Tiyoorii xiqqoo asii fi asitti ibsameera .
- Koodii walitti qabuun wixineen sun waan akkanaa fakkaata.
https://github.com/pskucherov/tcsstat/muka/tarkaanfii3.1 https://github.com/pskucherov/tcsstat/wal bira qabi/tarkaanfii3.1
- Yoo namni tokko kana qunname, sana booda baga gara dhimmicha dhufte . Erga falfala kana suphanii booda humna dhabee haala kamiinuu adda ta’a. Garuu yeroo ammaa (03/21/2023) akkasitti hojjeta.
GetDividendsAbbaa Biyya Alaa
Namni tokko malli sun isa duraa wajjin wal fakkaata jedhee yaaduu danda’a akkasumas mala tokko kan maqaa hojiiwwanii qofa jijjiirtu fayyadamuu dandeessa. Garuu hin tilmaamne! Moggaasni achitti kennamu malawwanii fi odeeffannoo deebi’e keessatti baay’ee adda. Akkasumas lakkoofsi fuula 0 irraa jalqaba, achiis 1. Kana hunda keessatti akka hin burjaajofneef mala adda addaa lama barreessuun salphaadha. Kan nama ajaa’ibu, sababni isaas loojiki hojiis tokkuma. Yeroo dheeraaf tufe yeroon mala tokko hojjechuuf yaalu koodii xiqqaa ta’e. Asirratti fakkeenyi hin jiraatu.
HojiiwwanKaarsariin Argadhu
Sadan keessaa kan ani jaalladhu. Irra caalaa sirrii ta’uu baatus, garuu hunda caalaa gahaa ta’e. Jalqaba herrega uumuu irraa kaasee hanga guyyaa guddaa danda’amutti (akkaawuntii cufuu ykn kan ammaa) gaaffii ni dhiheessina. Deebii arganna, cursor fudhannee hanga data jirutti irra deebiin gaafanna. Akkasumas koodii fakkeenyota armaan olii caalaa gabaabaa dha.
const timer = yeroo async => { Waadaa haaraa deebisuu (furmaata => setTimeout(furmaata, yeroo)); } const getOperationsByCursor = async (sdk, Id herregaa, irraa, gara, qaree = ”) => { yaali { const reqData = { Id herregaa, irraa, gara, daangaa: 1000, haalata: sdk.OperationState.OPERATION_STATE_EXECUTED, withoutCommissions: soba, withTrades: soba, maleeOvernights: soba, qaree, }; deebi’i eegaa sdk.operations.getOperationsByCursor(reqData); } qabachuu (e) { sa’aatii eegaa (60000); deebi’i eegaa getOperationsByCursor(sdk, accountId, irraa, gara, qaree = ”); } };
Wixineen hojjetamuu qabu kunooti: https://github.com/pskucherov/tcsstat/tree/step3.3 https://github.com/pskucherov/tcsstat/compare/step3.3 Amma hojiiwwan fudhachuu itti dabaluuf qophii taane iyyata keenya. Yoo sirritti hojjetame, sana booda gabaasa daldalaa guutuu jiraachuu herregaa argachuu qabda. Akkasumas daataa dhabameef, T-3n sun, hojiiwwan irraa deebi’anii fe’u. Garuu kun barruu addaatti addaan baafamuu danda’a. Nuances ijoo isin qunnaman keessaa hojiiwwan fi gabaasa daldalaa daldalaa maxxanuudha.
- Har’a gabaasa daldalaa fi daldala guyyoota barbaadamaniif yoo isin qaqqabe, hunda isaa kuusdeetaa keessa kaa’aa, sana booda rakkoon hin jiru.
- Boru yeroo kutaa itti aanu deetaa gabaasaa fi hojiiwwan irraa fudhattee kuusdeetaa jiru waliin walsimsiisuuf murteessite rakkoon si mudata.
- Waa’ee wal hin simne ykn id erga adeemsifamee booda jijjiiruu irratti nuances baay’ee
- Sana booda gabaa OTC’f id’n tasuma wal hin simne.
- Akkasumas nuances meeshaalee walsimsiisaa, kan ammas wal hin simne, sababa addaa API irraa kan ka’e. Garuu sun seenaa biraati.
Mee odeeffannoo waa’ee hojii argachuu application keenyatti haa dabalu. Gaaffiin guddaan daataa eessatti akka hojjetamuu fi kuufamu kan ta’u ta’a.
- Yoo ofii keessaniif gootan meeshaalee adda addaa irraa daataa walfakkaataa ni fayyadamtu. Sana booda deetaa server irratti process fi store gochuu qabda.
- Yoo daataa adda addaa baay’ee fayyadamtoota adda addaa hedduudhaan fayyadaman qabaatte, sana booda maaltu caalaatti barbaachisaa akka ta’e murteessuu qabda: saffisa fayyadamtootaa ykn qusannaa sibiilaa gama keetiin. Namni haardwaara daangaa hin qabne bitachuu danda’u waan hunda server isaa irratti lakkaa’ee fayyadamtootaaf super fast akka ta’u taasisa, qabeenya fayyadamaa kan akka baatirii fi tiraafikaa qusata, kunis bilbiloota irratti baay’ee barbaachisaadha.
Dabareen isaas, browser keessatti lakkaa’uun furmaata hunda caalaa gaarii ta’e miti seera bu’uuraatiin. Kanaaf wanti qaala’aa hin taane, server keenya irratti ilaalla. Kan hafe maamilaaf dhiifna. Dhuguma komishinii server irratti fudhadhee shallaguu barbaada. Garuu kunoo nuance “interactivity” jedhamu dhufa. Mee opereshinii kumaatamaan lakkaa’amu qabda haa jennu, fudhachuuf daqiiqaa shan fudhata. Yeroo kanatti fayyadamaan maal qabaata? Spinner? Fooyya’iinsa? Infa waa’ee meeqa olkaa’ame? Yeroo fayyadamaan adeemsa keessa jiru duraan waan tokko arguu danda’utti “active waiting” fayyadamuun gaariidha. Bu’aan isaa kunooti :
- Fuula fe’amaa jira
- Invoice hunduu ni gaafatama
- Sana booda, daldalli komishinii daldala raawwatameef qabu hundi herrega hundaaf ni gaafatama. Akkuma deetaan fudhatameen, biraawzari keessatti ni agarsiifama.
Yeroo hunda deetaa taateewwan keessa jiru akka hin calaleessineef, tokkoon tokkoon herregaaf taatee mataa keenyaa harkisna. Akkanatti:
socket.emit (‘sdk:Bu’aaKomishinii Hojiiwwan argachuu_’ + accountId, { wantoota: deetaa?.wantoota, Adeemsa keessa jiran: Boolean(Cursor itti aanu), });
Wixineen eegaluuf jiru kunooti: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…step3 Itti fufna. Sarara kana dubbisuun keessan waan guddaadha!
Shallaggii fi oomisha odeeffannoo fedhii qabu
Eenyuutu odeeffannoo akkamii akka barbaadu irratti hundaa’a. Kanaaf, battaluma sanatti nuances ijoo isin qunnaman isinitti hima.
Gatii waliin hojjechuu
Daldalli maallaqaa lakkoofsa guutuu qofaan raawwatamuu akka qabu namni faayinaansii waliin hojjetu hundi ni beeka. Sababa sirrii ta’uu dhabuu gatiiwwan qabxii kurnyee boodaa fi dogongora kuufamaa hojiiwwan baay’ee wajjin. Kanaafidha gatiiwwan hundi bifa MoneyValue armaan gadiitiin kan dhiyaatan
dirree | akaakuu | Ibsa |
---|---|---|
maallaqa | hidhaa | Koodii maallaqaa ISO dhangii |
yuunitii | int64 | Lakkoofsa guutuu kutaa walitti qabama, lakkoofsa negaatiivii ta’uu danda’a |
naannoo | int32 | Kutaa firaakshinii hanga, lakkoofsa negaatiivii ta’uu danda’a |
Adda addaan adeemsifna, sana booda gara gatii gatiitti fidna:
caqasa.yunitii + caqasa.naano / 1e9
Baasii waliigalteewwan gara fuula duraa
Gatiin fuulduraa qabxiidhaan kan dhiyaatu yoo ta’u, yeroo egeree maallaqaa qabdu, reetii beekuu qabda. Akkasumas beekamaadha gatii qabxii fi tarkaanfii gatii. Bu’aa daldala irraa argamu yeroo shallagdu, kun dhukaasu danda’a, sababni isaas. yoo gatii baay’inaan baay’isuudhaan hanga waliigalaa shallagde. Asirratti of eeggannoo gochuu qabda. Ammaaf akkamitti akka deemu ilaalla. Kun currency futures ilaallata, bakka biraatti wanti hundi kanaan ok dha.
Gabaa OTC
Gabaa kun waan addaa baay’ee qaba, kanaaf hojiiwwan addatti irratti haa qorannu.Yeroo hojiiwwan walsimsiisuu jalqabdu meeshaa sana sirritti walsimsiisuuf figi / ticker bifa walfakkaatutti fiduu akka qabdu ni mul’ata. Yeroo kana gabaasa daldalaa wajjin walsimsiisuu jalqabdu, tradeID daldala walfakkaataa jalqaba irratti qubee daldala keessatti qabaachuu fi gabaasa daldalaa keessatti akka hin jirre ni mul’ata. Kanaaf wal bira qabuun … ahem-ahem … wal bira qabuun hin danda’amu! Yeroo daldalaa, ticker fi walsimsiisuun tradeId tokko kan biraa keessatti akka argamu walsimsiiseera. Sirriidha, ani hin beeku. Kan kanaan mudatee fi kan dhimma itti bahu gara dhimmicha koottaa ykn haaraa jalqabi.
Hojiiwwan herregaa meeshaalee irratti
Tarree guutuu waliin hojiiwwan herregaa raawwachuun osoo hin ilaalin hin danda’amu. Ho’aa lallaafaa irratti akka hin daballeef, yeroo hunda maallaqaa fi adeemsa isaa kan ilaallu yoo maallaqni walsimsiisuu isaa mirkaneeffanne qofa, qabxiileen gara maallaqa barbaadameetti jijjiiramu. Beekumsa waa’ee lakkoofsa baankii waliin hojjechuu hidhannee komishinii tokkoon tokkoon herrega irratti bahu ni shallagna. Akkanatti: https://github.com/pskucherov/tcsstat/muka/tarkaanfii4 https://github.com/pskucherov/tcsstat/wal bira qabi /tarkaanfii3…tarkaanfii4
Microservice qophaa’eera!
https://github.com/pskucherov/tcsstat Akka hojii manaa tajaajilli sun walitti hidhamiinsa suuta jedhu, yeroo walitti hidhamiinsi addaan citu, yeroo interneetiin addaan citu, yeroo dogongorri ykn daangaa yeroon isaa darbe gama daldalaatiin hojjechuu isaa ilaaluu dandeessu.
Xumuraa fi karoora gara fuula duraa
- Waa’ee hojiiwwan bu’uuraa fi Invest API waliin hojjechuu barate
- Yeroo ~ sa’aatii 10 dabarsan
- Sadarkaa rakkinaa ~ junior+ / low middle
Yoo microservice fooyyessuu itti fufte, dhumarratti waan akkanaa argachuu dandeessa
https://opexbot.info irratti kan argamu
Kun guddina kooti, warra dadhaboo ta’aniif ofumaan hubachuu, fiiguu fi lakkaa’uuf. Gaaffii fayyadamtootaatiin achitti xiinxala dabaluudhaaf karoorfadheera. Barreeffamichi yoo isinitti tole, telegram channel koo subscribe godhaa .
Полезная статья. Не могу представить, сколько усилий автора потребовалось, чтобы все описать. Благодарю.