Tinkoff Investments ukan servicio de estadística ukan lurañapatak ch’amanchirinakax akanakawa:
- Habré tuqit qillqata “Kuntix Tinkoff Investments ukax jan siski”
- plataforma apnaqirinakan munañanakap uñakipaña
- mä qillqata comisiones ukanakan jakthapiwipata .
- ¿Kunatsa yatjjatasini?
- Mä servicio de estadísticas ukax mä juk’a pacharuw lurasi:
- Tinkoff Invest API ukar uñt’ayaña
- Tinkoff Invest API ukan yatiyawinakap mä navegador ukan apsuña
- Corredor yatiyawinak katuqaña ukhamaraki transacciones ukanaka katuqaña
- BrokerReport ukax mä juk’a pachanakanwa
- Uka uru apsuñataki thakhi, jichha uruta apsutanaka amuyt’asa
- Yatiyawi generación mayiwi
- Utjiri:
- GetDividendosAnqäx markankirEmisora
- GetOperationsByCursor ukax mä juk’a pachanakanwa
- Jakhuwi ukatxa mistuwi yatiyawi interés
- Chaninakampi irnaqaña
- Futuros contratos ukanakan qullqipa
- OTC ukax mä qhathuwa
- Herramientas ukanakan operaciones matemáticas ukanaka
- ¡Microservicio ukax wakicht’atawa!
- Tukuyañataki ukhamaraki jutïri pachataki amtanaka
- https://opexbot.info ukan uñt’ayata
¿Kunatsa yatjjatasini?
- Desarrollo tuqit aplicat chiqakiw utji.
- Chiqpach yatiñanaka ukhamaraki yatxatatanaka, ukaxa wali wakiskiriwa qullqituqita instrumentunakampi irnaqañataki.
- Irnaqañatakix kuna jan walt’awinakas utji ukanak uñakipaña
Ukhama, nayax estadísticas comerciales ukanakat jakthapiñ munta ukat mä conveniente ukham lurañ munta.
Mä servicio de estadísticas ukax mä juk’a pacharuw lurasi:
- Tinkoff Invest API ukar uñt’ayaña
- Tinkoff Invest API ukan yatiyawinakap mä navegador ukan apsuña
- Corredor yatiyawinak katuqaña ukhamaraki transacciones ukanaka katuqaña
- Jakhuwi ukatxa mistuwi yatiyawi interés
- Tukuyañataki ukhamaraki jutïri pachataki amtanaka
Tinkoff Invest API ukar uñt’ayaña
API ukar mantañatakix, kuna sdk ukax documentación ukan apsusispaw https://github.com/Tinkoff/investAPI#sdk . Jan ukax npm ukax ` tinkoff-sdk-grpc-js `. Wali askiw uka paquete ukax qhipa versión ukar machaqar tukuyata, ukax lurayirinakan luratawa. Uchaña
npm nayax tinkoff-sdk-grpc-js ukat juk’ampinaka
Uñakipt’aña
const { lurañaSdk } = mayiwi (‘tinkoff-sdk-grpc-js’); // Token ukax akham jikxatasi const TOKEN = ‘YOURAPI’; // Aplicación ukan sutipax kunatix TCS registros ukan jikxatasi. const appName = ‘tcsstat’ ukax mä jach’a uñacht’äwiwa; const sdk = lurañaSdk (TOKEN, appSuti); (async () => { consola.log (suyt’añani sdk.users.getAccounts ()); }) ();
Ukax akhamawa: mä lista de cuentas ukaw consola ukan uñacht’ayasini. Amuyt’añataki, kuna matices ukanakas utji uk uñakipt’añäni:
- Cuentas ukan listapanx mä “banco de inversión” ukaw utji, ukampirus janiw API apnaqañax irnaqañjamäkiti
- Uñt’apxañani, yapunakax camelCase ukan juti, ukampirus documentación ukanx uka yapunakax under_score ukan uñacht’ayatawa.
- Taqi chiqanw ukham utjani, ukhamax janiw documentación ukan mä yapu apsuñakikiti ukat copiañas wakisispati.
Wakiskiri:
- Aka código ukax proyecto sucursal ukan jikxatasi
https://github.com/pskucherov/tcsstat/quqa/paso1 https://github.com/pskucherov/tcsstat/comparar/paso1
Tinkoff Invest API ukan yatiyawinakap mä navegador ukan apsuña
Nayax next.js ukat socket.io ukanak apsuwaytwa. Akax janiw mä ch’aman iwxt’awikiti, jumatakix ajlliñamawa.
npx luraña-jutir-app@qhipa npm i socket.io socket.io-cliente
Jank’akiw next+socket+investapi amistat lurañ thakhir sarapxta, ukatx aka thakhin Util t’aqap uñakipt’apxta taqi yatiyawinakataki. Nayax uka tuqit qhanañcht’ä:
- nodejs (servidor) tuqinx mä pages/api/investapi.js qillqataw utji. Akax kawkhantix socket.io servidor ukax lurasiski ukatx investapi ukaruw uñt’ayasi.
- Navegador (cliente) tuqinxa, mä socket tuqiw servidor ukarux mantapxta ukatx corredor ukan cuentan datos ukanakap mayipxta.
- Servidor ukan corredor ukan datos ukanakax katuqapxta, ukatx cliente ukar apayapxta. Kunawsatix cliente ukan katuqatäki ukhax navegador ukan uñacht’ayatawa.
Resultado: consola de navegador ukanx cuentas ukanakat yatiyawinak uñjaraksnawa. Mä arunxa, qhipa t’aqapanx consola de servidor (nodejs) ukan cuentanakat yatiyawinak uñjapxta, jichha pachanx uka yatiyawinak cliente (navegador) ukar apayapxta.
Jichhax lurañäni ukhamat mä cuenta navegador ukan ajlliñamataki, ukat jan token utjkchi ukhax mä pantjasiw consola ukar apayani. Irnaqawix sapurukiwa ukatx janiw kuna machaqäkiti, ukatwa commits ukar enlaces ukanakak churta
- Ukhamaraki, ukaxa mä juk’a pachanakwa lurasirakispa.. 1588479015b06d8814d6609a9
- Ukhamaraki, ukaxa mä juk’a pachanakwa lurasirakispa
Wakiskiri:
- Kunjamas jutïrin amigonak jikxatañax ukat socket ukax aka chiqanw sum qhanañchasi .
- Código de amistad ukax jutir+socket+investapi:
https://github.com/pskucherov/tcsstat/commit/a443a4ac1bb4f0aa898f638128755fe7391ee381 Khitinakatix aka pata tuqinx ch’amawa, ukhamax aka pachanx qhipararaktanwa ukatx código ukamp apasxaraktanwa. Jiskt’awinaka utjipanxa – jiskt’añani. https://github.com/pskucherov/tcsstat/quqa/2 t’aqa https://github.com/pskucherov/tcsstat/comparar/paso1…paso2
Corredor yatiyawinak katuqaña ukhamaraki transacciones ukanaka katuqaña
Kimsa thakhiw utji corretaje ukan yatiyawinakap katuqañataki ukhamarak transacciones ukanaka
- BrokerReport ukax mä juk’a pachanakanwa
- GetDividendosAnqäx markankirEmisora
- GetOperationsByCursor ukax mä juk’a pachanakanwa
Qalltatpachaw aka yatiñax wali aski:
- Uka corretaje ukan yatiyawipax T-3 ukan luratawa, i.e. comercionakax chiqpachan phuqhasiñapatakix ukan uñacht’ayatawa.
- Ukarjamaxa, aka qhipa pä urutaki aka yatiyawi mayipxäta ukhaxa, kimsa urutxa wakicht’atäxaniwa.
- Qhipa urunakatakix tratos lurañatakix, operaciones ukanakar katuqañatakix método ukampiw apnaqapxta, ukampis amtañani, id ukat contenido ukax mayjt’aspawa informe de corretaje ukan luratapat.
BrokerReport ukax mä juk’a pachanakanwa
Mä informe de corretaje uka apsuñatakixa, id de cuenta, qalltawi uru ukhamaraki tukuyaña uru yatiyawi apsuñawa, ukampisa janiwa 31 urunakatxa jiläñapäkiti. Mä mayiw apayanipxta mä yatiyaw lurañataki API ukar generate _broker_report_request , mä taskId jaysañataki. Uka qhipatxa, aka taskId apnaqasa, get _broker_report_response ukan yatiyawinak apsusipxta .
- TaskID ukax wiñayatakiw chiqaparu uka urunakatak imañax wakisi.
- Kunjamatixa chhaqhayata ukhaxa, ukatxa mayita urunakatakixa yatiyawixa nayraqata jutaniwa generación mayiwiru jaysañataki,
- Ukat ukapachax janiw kunjamatsa jutkaniti.
Uka uru apsuñataki thakhi, jichha uruta apsutanaka amuyt’asa
const getDateSubDay = (subDay = 5, qalltaña = chiqa) => { const uru = machaq Uraqi (); uru.setUTCDate (uru.getUTCDate () – jisk’a uru); ukaxa (qalltaña) { uru.setUTCHours (0, 0, 0, 0); } else { uru.setUTCHours (23, 59, 59, 999); } kutt’ayaña uru; };
Yatiyawi generación mayiwi
const brokerReport = suyt’aña (sdk.operations.getBrokerReport)({ generateBrokerReportRequest: { cuentaId, ukat, ukat, }, });
Utjiri:
- Nayrïr phuqhawi kamachirjamaxa, taskId ukax jikxatasiwayi.
- Yatiyäwix corredor ukan uñstayañ qalltawayi. Kunawsatix wakicht’atäki ukhax jan uñt’atäki ukhax suyt’apxta ukatx sapa kutiw taskId ukx yatiyäw suyt’asax jaqukipapxta.
- Kunata? Kunatix yatiyawix jan wakicht’atäkchi ukhax mä pantjasiw jaquntawayi. Yatiyäwix jan wakicht’atäkchi ukhax corredor tuqinxa, ukax mä pantjasiwiwa código ukanxa. Uñakipt’aña: 30058|INVALID_ARGUMENT|luräwix janiw tukuykiti, qhipat mayamp yant’aña
Mä yatiyäw suyt’añatakis ukat katuqañatakis código ukax mä juk’a uñtasitawa.
const timer = async pacha => { kutt’ayaña machaq Promesa (askichaña => setTimeout (askichaña, pacha)); } const getBrokerResponseByTaskId = async (taskId, página = 0) => { yant’aña { kutt’ayaña suyt’aña (sdk.operations.getBrokerReport)({ getBrokerReportRequest: { taskId, página, }, }); } katjaña (e) { consola.log (‘suyt’aña’, e); suyt’aña pacha(10000); kutt’ayaña suyt’aña getBrokerResponseByTaskId (taskId, panka); } };
Ukatxa pachpa magia ukaw lurasi. Jiwasan script ukax sayt’ayatawa, wasitat qalltañawa, janiw taskId ukax utjkiti. Jiwasax taskId mayiwimpiw código phuqhapxta, ukampis janiw taskId ukax jikxatasxiti, jan ukasti jank’akiw yatiyaw katuqapxta. ¡Magia! Ukat sapa kuti ukhamakïspa ukhaxa, taqi kunas walikïspawa. Ukampis mä phaxsitxa janiw kuna datos ukanakas utjkaniti. Ukax wali askiwa :
- Mä juk’a teoría ukax akan ukat akan uñacht’ayatawa .
- Código ukar mayacht’asax, borrador ukax mä juk’a uñtasitawa.
https://github.com/pskucherov/tcsstat/quqa/paso3.1 https://github.com/pskucherov/tcsstat/comparar/paso3.1
- Maynitix aka tuqit jikxataschi ukhaxa, uka jan walt’äwirux walikpun jutapxtaxa . Uka magia askichañ tukuyatatxa, ch’amapax chhaqtxaniwa ukat kunjamatsa mayjäxaniwa. Ukampis jichha pachanx (03/21/2023) ukhamakiw irnaqaski.
GetDividendosAnqäx markankirEmisora
Maynix amuyt’aspawa, uka lurawix nayrïr lurawimp kikipawa ukatx mä sapa lurawimpiw apnaqasispa, ukanx lurawinakan sutipakiw mayjt’ayasispa. Ukampis ¡janiw amuyapkänti! Ukan sutichañax wali mayjawa, kunayman lurawinakans ukhamarak kutt’ayat yatiyawinakansa. Ukatx panka jakthapiwix 0 ukhat qalltawayi, ukatx 1. Taqi ukanakan jan ch’axwañatakix pä yaqha thakhi qillqt’añax juk’amp jasakiwa. Ukax muspharkañawa, kunatix irnaqawin lógica ukax pachpakïskiwa. Nayax jaya pachaw thuqt’asta kunapachatix mä método lurañ yant’kayäta ukatx juk’a código ukaw utjäna. Aka chiqanx janiw kuna uñacht’äwinakas utjkaniti.
GetOperationsByCursor ukax mä juk’a pachanakanwa
Kimsatxa nayatakix wali munatänwa. Janis jukʼamp chiqapäkchixa, ukampis jukʼamp sumäki. Mä cuenta lurañ qalltawitpach mä mayiw lurapxta, kuna pachas (mä cuenta jist’antañ jan ukax jichha pacha jist’antañkama). Jiwasax jaysäwi katuqtanwa, cursor apsuñasa ukat wasitat mayiñasa kunapachatix datos utjki ukhakama. Ukat uka códigox jukʼamp jiskʼakiwa, uka uñachtʼäwinakat sipansa.
const timer = async pacha => { kutt’ayaña machaq Promesa (askichaña => setTimeout (askichaña, pacha)); } const getOperationsByCursor = async (sdk, cuentaId, ukat, ukat, cursor = ”) => { yant’aña { const reqData = { cuentaId, ukat, ukat, límite: 1000, estado: sdk.OperationState.OPERATION_STATE_EXECUTED, janComisiones: k’ari, janTrades: k’ari, janOvernights: k’ari, cursor, }; kutt’ayaña suyt’aña sdk.operaciones.getOperacionesByCursor (reqData); } katjaña (e) { suyt’aña pacha (60000); kutt’ayaña suyt’aña getOperationsByCursor (sdk, cuentaId, ukat, ukat, cursor = ”); } };
Irnaqañatakix borrador ukax akankiwa: https://github.com/pskucherov/tcsstat/tree/step3.3 https://github.com/pskucherov/tcsstat/compare/step3.3 Jichhax katuqañ lurawinakamp yapxatañatakix wakicht’atätanwa jiwasana mayiwisa. Chiqapa luratächi ukhaxa, ukaxa wakisiwa yatiyawinakxa corretaje ukaxa taqpacha utjatapata cuenta ukataki. Ukat chhaqhat datos ukatakix uka pachpa T-3s, operaciones ukanakat recargar. Ukampis ukajj yaqha yatichäwiruw jaljasispa. Uka jach’a matices ukanakax uñt’ayasiñatakix operaciones de pegamento ukat mä informe de corretaje ukanakaw utji.
- Jichhürunakanx mä informe de corretaje ukat transacciones ukanak katuqapxtaxa kuna urunakas wakisi, taqi ukanakx base de datos ukar uchañaw wakisi, ukhamax janiw kuna jan walt’awinakas utjkiti.
- Qhipürux jan walt’awinakaw utjani, kunapachatix yatiyäwit ukhamarak lurawinakat jutir chimpunak katuqapkäta ukatx utjki uka base de datos ukamp sincronización lurañ amtapxäta.
- Walja matices ukanakax mismatched jan ukax id mayjt’ayañ tuqitwa proceso ukat qhipatxa
- Ukat OTC qhathutakix id ukax janiw kunas kikipäkiti.
- Ukhamarakiw matices de instrumentos sincronizados, ukax wasitat janiw coincidikiti, kunatix peculiaridades de la API. Ukampis ukajj yaqha sarnaqäwiwa.
Jiwasan aplicación ukar operaciones ukanakat yatiyawinak katuqañ yapxatañäni. Jilïr jiskt’awix kawkhans datos ukax lurasini ukatx kawkhans imatäni ukawa.
- Juma pachpa lurañamaxa, kunaymana dispositivonakatxa pachpa datos ukanakxa manq’añamawa. Ukatxa, servidor ukan datos ukanakax lurañaw wakisi ukat imañawa.
- Walja kunayman datos ukanak walja kunayman apnaqirinakan manq’antatächi ukhaxa, kunas juk’amp wakiskirïki uk amtañamawa: apnaqirinakan jank’akïtapa jan ukax hierro ladoman qhispiyatapa. Khitinakatix mä jan tukuskir hardware ukar aljañ yatipki ukax taqi kuns servidor ukan jakthapi ukat apnaqirinakatakix super rápido ukham tukuyi, apnaqirin yänakap qhispiyañataki, kunjamakitix pila ukat tráfico, ukax teléfonos ukanx wali wakiskiriwa.
Ukatxa, navegador ukan jakthapiwix janiw principio tuqitx juk’amp suma solución ukhamäkiti. Ukatwa, kunatix jan jila qullqin utjki ukax servidor ukan uñjtanwa. Jilt’irinakax clienteruw jaytapxta. Chiqpachans servidor ukan comisión apsuñ munta ukat jakthapiñ munta. Ukampis akanx “interactividad” sata matiz ukaw juti. Waranq waranq operacionanakaw utji sañani ukat phisqa minutos ukjaw ukanak katuqañatakix munasispa. ¿Kunas apnaqirix aka pachanx utjani? ¿Spinner ukax? Jiltäwi? Infa tuqitxa qawqha qullqis apkatata? “Suyt’añ activo” apnaqañax wali askiwa, kunawsatix proceso ukan apnaqirix nayratpach kuns uñjkaspän ukhaxa. Akax Resultado ukawa:
- Ukax mä juk’a pachanakanwa
- Taqi facturas ukanakaxa mayitawa
- Uka qhipatxa, taqi lurawinakawa comisiones ukanakampi lurata lurawinakata taqi cuentas ukanakataki mayitarakini. Kunjamatix datos ukax katuqatäki ukhamarjamax navegador ukan uñacht’ayatawa.
Sapa kuti lurawinakan yatiyawinak jan filtrañatakix sapa cuentatakix jiwasan lurawinakas apsusipxta. Akax akhamawa:
socket.emit (‘sdk:getOperationsCommissionResult_’ + accountId, { yänaka: datos?. yänaka, inProgreso: Boolean (jutir Cursor), });
Uñstayañatakix borrador ukax akankiwa: https://github.com/pskucherov/tcsstat/tree/step3 https://github.com/pskucherov/tcsstat/compare/step2…paso3 Nayrar sartaña. ¡Aka línea uñxatt’añax wali askipuniwa!
Jakhuwi ukatxa mistuwi yatiyawi interés
Khitinakas kuna yatiyäwinaksa munapxi ukarjamaw lurasi. Ukatwa, jank’akiw kuna jach’a matices ukanakas utji ukanak yatiyapxsma.
Chaninakampi irnaqaña
Taqi khitinakati qullqichasiwimpi irnaqapki jupanakaxa yatipxiwa qullqi alxañanakaxa taqpacha jakhunakampikiwa luratäñapa. Kunalaykutixa jani chiqapa valores ukatxa punto decimal ukatxa pantjasiwi acumulativo ukaxa walja operaciones ukanakampi. Ukatpï taqi chaninakax aka formato MoneyValue ukan uñacht’ayata
pata | kasta | Qillqawi |
---|---|---|
sinsillu | karina | Cadena ISO qullqi chimpunaka |
unidades ukanaka | int64 | Integer parte de la suma, ukax mä negativo jakhüwiwa |
nano | int32 | Fraccional parte de la cantidad, ukax mä negativo jakhüwiwa |
Jiwasax sapa mayniw lurapxta, ukatx chaniparjamaw apanipxta:
cita.unidades + cita.nano / 1e9.Ukaxa mä juk’a pachanakwa lurasi
Futuros contratos ukanakan qullqipa
Futuros ukan chanipax puntos ukan uñacht’ayatawa, kunapachatix qullqi jutïr utjki ukhax tasa uñt’añamawa. Ukat chiqans precio en puntos ukat precio paso. Kunawsatix transacciones ukanakat ganancias ukanakax jakthapitax ukhax akax ch’axwaspawa, kunatix. ukaxa taqpacha qullqixa jakhthapitawa, ukaxa chanipampi waljaptayañawa. Aka chiqanx wali amuyumpiw sarnaqañama. Jichhax kunjamsa sarantaski uk uñjañäni. Ukax qullqi futuros ukanakatakiw apnaqasi, yaqha chiqanakanx taqi kunas walikiw akampi.
OTC ukax mä qhathuwa
Aka qhathux walja peculiaridades ukaniwa, ukhamax operaciones ukanakat sapa maynit yatxatañäni.Kunapachatix operaciones sincronizar qalltawayktan ukhax figi / ticker ukax pachpa formulario ukar apaniñaw wakisi, ukhamat instrumento ukar sum uñt’ayañataki. Kunawsatix sincronizar ukax qalltawayk ukhax corredor yatiyawimp chika, ukax uñstawayiwa tradeID ukax pachpa lurawinx qalltawinx qillqatanakaw utji lurawinakanxa ukatx janiw corretaje yatiyawinx utjkiti. Ukatwa, jupanakax janiw uñtaskaspati … ahem-ahem … uñtasiwimpi! Nayax alxañ pacha, ticker ukat chikancht’asiwaytwa ukax mä tradeId ukax yaqha ukan utji. Chiqawa, janiw yatkti. Khitinakatix akamp jikisipki ukat khitinakati ukat llakisipki, uka jan walt’äwir jutapxam jan ukax machaq jan walt’äw qalltapxam.
Herramientas ukanakan operaciones matemáticas ukanaka
Janiwa, jan uñakipt’asaxa, operaciones matemáticas ukanakaxa taqpacha listampi lurañaxa wakiskiti. Jan junt’u llamp’u yapxatañatakixa, sapa kutiwa qullqi uñakipt’aña ukatxa lurawixa qullqixa chiqaparu uñjata ukhamakiwa, ukatxa puntos ukaxa munata qullqiru jaqukipatawa. Banco jakhunakampi irnaqaña yatiñanakampi armatäsaxa, sapa cuentanakaru comisión gastata ukxa jakhthapiñäni. Ukhama: https://github.com/pskucherov/tcsstat/quqa/pasa4 https://github.com/pskucherov/tcsstat/comparar/paso3…paso4
¡Microservicio ukax wakicht’atawa!
https://github.com/pskucherov/tcsstat Mä tarea ukhama, uñakipt’asmawa servicio ukax mä juk’a conexión ukamp irnaqaskiti, kunapachatix conexiones ukanakax p’akintata, kunapachatix Internet ukax desconectatäki, kunawsatix pantjasiwinakax jan ukax límites expirados ukanakax corredor ukan chiqapa.
Tukuyañataki ukhamaraki jutïri pachataki amtanaka
- Operaciones básicas ukanakat yatxatawayta ukat Invest API ukamp irnaqawayta
- Tiempo ukaxa ~ 10 pachanakawa
- Nivel de dificultad ~ junior+ / jisk’a chika taypinkiri
Microservicio ukar refinar sarantaskakini ukhaxa, inas ukham tukuychisma
https://opexbot.info ukan uñt’ayata
Akax nayan nayrar sartawijawa, khitinakatix sinti q’ixu q’ixunak amuyañataki, t’ijt’añataki ukat jupanakpacha jakthapiñataki. Nayax ukan análisis ukar yapxatañ amtasta, apnaqirinakan mayitaparjama. Uka qillqatax jumatakix wali askiwa, ukhamax canal de telegrama ukar qillqt’asiñamawa .
Полезная статья. Не могу представить, сколько усилий автора потребовалось, чтобы все описать. Благодарю.