En automatisk kryptosalgsbot til Robinhood-API skal besvare et snævrere spørgsmål end, om en tokens pris er faldet eller har nået et mål: Hvilke berettigede enheder må denne konto sælge nu, på hvilke vilkår, og hvordan ved systemet, hvad der faktisk skete? Prisbetingelsen kan være enkel, mens ordre- og beholdningslivscyklussen forbliver kompleks. En korrekt udløser med forkert mængde kan stadig give det forkerte resultat.
Vejledningen vedrører det officielle Robinhood Crypto-konto-API, ikke tokenswaps på Robinhood Chain eller automatiseret værdipapirhandel. Alle priser, mængder og omkostninger i de gennemregnede eksempler er fiktive. Fokus er et salg, der forbliver forklarligt gennem delvis udførelse, kommunikationsfejl og ændringer foretaget gennem andre understøttede kontogrænseflader.
Begynd med kontoen og det understøttede produkt
Robinhoods supportvejledning til Crypto API beskriver adgang for Robinhood Crypto-kunder i USA og skelner aktuelle ordreversioner. Verificer faktisk konto, adgangstilladelser og gældende grænseflade, før et ønsket salg behandles som tilgængeligt. En fungerende markedsdataforbindelse fastslår ikke ordrebeføjelser.
Aktivet skal også være berettiget gennem det valgte API. Udled ikke understøttelse fra tokenpopularitet, en kædekontrakt eller en observationsliste i appen. Den relevante produktregistrering og kontotilstand skal fastslå, at det tilsigtede instrument kan bruges til den foreslåede handling på det tidspunkt.
Vejledningen til Robinhood-API-integration dækker den bredere forbindelsesmodel. For salgsstyringen er det vigtige resultat et konkret omfang: konto, instrument, tilladt operation og aktuelle begrænsninger. Alt uafklaret ved grænsen bør forblive synligt, før strategien skaber en salgsforpligtelse.
Omsæt salgsmålet til en mængderegel
En instruktion om at reducere risiko er endnu ikke en gyldig ordremængde. Afgør, om salget vedrører et fast antal enheder, en procentdel af en defineret beholdning eller nok enheder til at søge et målkontantbeløb. Reglerne kan give forskellige mængder fra samme kontosaldo.
For en fiktiv konto med 2.000 berettigede enheder betyder salg af tredive procent af den oprindelige udpegede position 600 enheder. Salg af tredive procent af den resterende position efter en tidligere reduktion på 400 enheder ville i stedet betyde 480 enheder, hvis referencen er de aktuelle 1.600. Ordet procentdel er ufuldstændigt, indtil beregningsgrundlaget er navngivet.
Hold målet og den afrundede mængde, der kan udføres, særskilt. Målet forklarer brugerens ønske; det udførbare beløb afspejler produktets aktuelle begrænsninger. Hvis et minimum eller trin forhindrer et præcist match, bør politikken sige, om der skal afrundes inden for den godkendte grænse, efterlades en rest eller afvises. Den må aldrig stiltiende øge salget ud over mandatet.
Ordredimensionering i en automatisk kryptosalgsbot til Robinhood-API
Disponibel beholdning bør afspejle eksisterende forpligtelser og kontoændringer, ikke blot den senest viste totalbeholdning. En salgsstyring skal vide, hvilke enheder der allerede er reserveret af andre uafklarede salg, og hvilke der hører til strategiens tilladte fordeling. Afstem billedet før godkendelse af endnu en reduktion.
Antag, at den fiktive konto har 2.000 enheder, hvoraf 500 er bundet til et eksisterende åbent salg og 300 udelukket fra strategiens fordeling. Højst 1.200 er tilbage under antagelserne før andre begrænsninger. Et nyt forslag på 1.500 enheder bør afvises, selv om det er mindre end den overordnede beholdning.
Den aktuelle API-reference beskriver understøttede USD-par, omsættelighedsstatus og mængdebegrænsninger. Læs aktuelle produktdetaljer frem for at kopiere ét aktivs præcision til et andet. Vejledningen til Robinhood-beholdning forklarer, hvorfor totale beholdninger, disponibel kapacitet og uafklarede forpligtelser kræver særskilte registreringer.
Brug markedets salgsside set fra kontoens perspektiv
En prisvisning kan vise seneste handel, et midtpunkt eller et bedste tilbud, der ikke afspejler den tilsigtede størrelse. Ved et salg er det relevante økonomiske spørgsmål den forventede kreditering for levering af den foreslåede aktivmængde. Et tilbud på anskaffelsessiden besvarer et andet spørgsmål og kan overvurdere kontoens modtagelse.
Den officielle reference identificerer estimater fra købstilbudssiden til salgsforberedelse og skelner bedste priser fra størrelsesbevidste anslåede resultater. Skønnene forbliver skøn. Bevar observationstid, mængde og inkluderede opkrævninger, så styringen kan sammenligne den endelige udførelse med belægget ved godkendelsen.
I et fiktivt marked med et købstilbud på 0,98 og et salgstilbud på 1,02 ville værdiansættelse af et salg på 600 enheder ved salgstilbuddet antyde 612 dollar før omkostninger. Multiplikation af købstilbuddet med samme mængde giver 588, også før størrelsesvirkninger og omkostninger. Forskellen på fireogtyve dollar kommer fra valg af forkert markedsside, ikke en senere udførelsesfejl.
Beregn nettomodtagelse uden dobbelt gebyrfradrag
En nyttig beregning før handel skelner bruttoudvekslingsværdi, anslåede opkrævninger og forventet nettokreditering. Identificer, om en returneret værdi allerede indeholder et gebyr, før gebyret trækkes fra igen. Kontoens faktiske ordreversion og gældende gebyrbehandling bør styre skønnet, ikke en husket sats fra et andet produkt.
Antag for et fiktivt salg på 600 enheder et størrelsesbevidst bruttoskøn på 582 dollar og anslåede opkrævninger på tre dollar. Forventet nettokreditering er 579. Hvis et andet felt allerede rapporterer 579 som anslået samlet kreditering, ville endnu et fradrag af de tre dollar fejlagtigt sænke skønnet til 576.
Sammenlign anslået nettokreditering med politikkens mål, og bevar usikkerhed om endelig udførelse. Et mål på mindst 580 ville fejle dette illustrative skøn, selv om bruttoværdien overstiger 580. Det gør den økonomiske grænse udtrykkelig før afsendelse af ordren og forhindrer et overfladisk vellykket salg i at misse det faktiske kontantmål.
Vælg ordreadfærd, der matcher målet
En hurtig reduktion og en mindste acceptabel salgspris er forskellige mål. Den understøttede ordretype og dens vilkår bestemmer, hvilke begrænsninger der udtrykkes til tjenesten. En lokalt observeret udløser bør ikke forveksles med en udførelsesgrænse, der kan håndhæves.
En limit kan bevare en angivet prisbetingelse og samtidig efterlade noget eller hele mængden ugennemført. En udløserbaseret instruktion kan blive handlingsklar, efter at markedet allerede har bevæget sig forbi den observerede tærskel. Botten skal forklare konsekvenserne i den faktisk understøttede ordreadfærds kontekst frem for at love, at enhver beskyttende regel sætter loft over tabet.
Vejledningen til automatisk salg på Robinhood drøfter disse salgsvalg. Det vigtige designtrin er at angive, hvad styringen skal gøre, hvis prisbeskyttelse og øjeblikkelig reduktion ikke begge kan opnås. Afvejningen bør afgøres gennem en afgrænset politik, ikke improviseres ved gentagne lempelser af ordren, indtil den udføres.
Adskil autentificering fra økonomisk godkendelse
Autentificering fastslår, at en anmodning kommer fra autoriserede adgangsoplysninger efter tjenestens signeringsregler. Den beviser ikke, at det ønskede salg passer til strategiens mængde-, pris- eller risikopolitik. En korrekt autentificeret anmodning kan stadig udtrykke en forkert økonomisk instruktion.
Den aktuelle reference bruger API-nøgle, signatur og tidsstempel til autentificering. Applikationen bør følge den dokumenterede anmodningssignering og holde hemmeligt materiale ude af logfiler og strategiinput. En prisanalysekomponent bør ikke skulle se signeringshemmeligheden blot for at foreslå et salg.
Valider tilsigtet konto, symbol, side, mængde og vilkår, før den autentificerede anmodning bygges. Sørg efter konstruktion for, at anmodningen stadig repræsenterer den godkendte hensigt. Adskillelsen fanger almindelige integrationsfejl, eksempelvis forældet mængde eller forkert side, før gyldige adgangsoplysninger gør dem til en kontohandling.
Giv salget en varig identitet før indsendelse
Skab en intern salgshensigt, før en anmodning med mulig kontovirkning sendes. Registreringen bør identificere, hvorfor salget blev godkendt, og hvilken beholdning det reserverer. Bevar forholdet mellem hensigten, dens klientidentifikator og enhver tjenesteside-ordreidentifikator, der returneres bagefter.
Den officielle reference beskriver en UUID-klientordreidentifikator til idempotensvalidering. Funktionen understøtter dublethåndtering, men fjerner ikke applikationens ansvar for at spore hensigt og afstemme usikre svar. En nygenereret identifikator repræsenterer et andet forsøg for tjenesten og bør ikke bruges letsindigt, blot fordi første svar er forsinket.
Hvis et prisfeed udsender samme udløser gentagne gange, bør beskederne henvise til den eksisterende hensigt, mens den er aktiv. De bør ikke hver skabe et fuldt salg. Varig identitet forbinder en strategibeslutning med senere belæg, især når lokal hukommelse eller netværksforbindelse afbrydes.
Fortolk et svar efter det, det fastslår
Et svar kan fastslå, at en anmodning blev accepteret, afvist eller forbliver i en bestemt ordretilstand. Det fastslår ikke automatisk, at hele den tilsigtede mængde blev udført til den anslåede pris. Bevar både tilstand og tilhørende mængdeinformation frem for at flade dem ud til én succesindikator.
En timeout er forskellig fra en udtrykkelig afvisning. Efter en timeout bør styringen afstemme den oprindelige hensigt gennem understøttede ordre- og kontoaflæsninger. Straks afsendelse af endnu et fuldt salg kan duplikere den tilsigtede reduktion, hvis første anmodning blev accepteret trods det manglende svar.
Fejlhåndtering bør også bevare årsagen. Ugyldige parametre, utilgængelige beføjelser og midlertidige tjenesteproblemer kræver forskellige reaktioner. En fejlformet mængde repareres ikke med hurtigere genforsøg, og en tilladelsesfejl bør ikke få systemet til automatisk at anmode om bredere beføjelser. Bevar det oprindelige økonomiske mål, mens det afgøres, om en understøttet handling stadig er mulig.
Følg delvis udførelse fra mængde til kontanter
Overvej en fiktiv hensigt om salg af 600 enheder. Den første observerede udførelse sælger 240 til 0,97 og giver 232,80 før relevante opkrævninger. Tre hundrede tres enheder er tilbage inden for det oprindelige mængdemål, men resten kan stadig være repræsenteret af en aktiv ordre. Styringen bør ikke indsende yderligere 360 uden først at forstå den eksisterende ordres tilstand.
Senere udførelser kan ske til forskellige priser. Hvis yderligere 90 sælges til 0,96, er deres bruttoværdi 86,40. Samlet bruttoprovenu for de 330 udførte enheder er 319,20. Et gennemsnit af faktiske udførelser er meningsfuldt for den udførte mængde; det bør ikke tildeles de ugennemførte 270, som om de allerede var solgt.
Regnskabet bør vedligeholde udført mængde, ugennemført forpligtelse og resterende kontobeholdning særskilt. Værdierne besvarer forskellige spørgsmål: Hvad ændrede sig, hvad kan stadig ændre sig, og hvad har kontoen aktuelt? Afstemning af dem er mere nyttig end en fremskridtsbjælke, der skjuler enhederne bag en procentdel.
Annullering i en automatisk kryptosalgsbot til Robinhood-API
Annullering vedrører en ordres ikke-udførte rest. Den vender ikke tidligere salg, og en lokal annulleringsanmodning er ikke belæg for, at resten allerede er annulleret. Udførelse og annullering kan konkurrere tidsmæssigt, så det endelige udfald skal afstemmes mod faktiske ordre- og udførelsesregistreringer.
Fortsæt det fiktive eksempel, hvor annullering anmodes, efter at de første 240 enheder er udført. Yderligere 90 udføres, før de resterende 270 bekræftes annulleret. Det endelige afsluttede salg er 330 enheder. En rapport med kun de 240 observeret ved anmodningen undervurderer reduktionen; en rapport, der markerer alle 600 annulleret, sletter reelle handler.
Bevar beholdningsreservationen, mens annulleringsudfaldet er uafklaret. Når belægget fastslår de endelige udførte og annullerede mængder, frigives kun den forpligtelse, der ikke længere findes. Styringen kan derefter vurdere, om yderligere salg er passende under det aktuelle mål og den disponible beholdning.
Genberegn en erstatning ud fra det resterende mål
En erstatning er en ny økonomisk beslutning, selv hvis den stammer fra en tidligere ordre. Kontroller aktuel beholdning, uafklarede forpligtelser, tilbud og godkendelse igen før konstruktion. Det oprindelige mål er måske ikke længere ønskeligt eller opnåeligt under aktuelle markedsforhold.
Hvis det fiktive mål fortsat er en samlet reduktion på 600 enheder, og 330 allerede er solgt, er den uopfyldte mængde 270. En erstatning for alle 600 ville udvide den tilsigtede reduktion til 930, hvis den blev gennemført. Det er en mængdefejl, selv hvis hver enkelt ordre ellers er gyldig.
Politikken kan i stedet afslutte efter annullering eller kræve manuel gennemgang. Den bør også medregne andre ændringer siden første hensigt, eksempelvis et særskilt salg eller en overførsel. En erstatning, der ignorerer ændringerne, kan bryde brugerens faktiske mål og samtidig se ud til at afslutte den oprindelige automatiseringsopgave.
Fordel grundlag til de faktisk solgte enheder
Overskudsberegninger bør bruge omkostningsgrundlaget knyttet til den udførte mængde og det faktiske nettoprovenu. Antag i en proportional undervisningsfordeling, at den oprindelige position på 2.000 enheder har et samlet grundlag på 1.600 dollar. Hver enhed bærer 0,80 i grundlag under denne forenklede metode.
Salget på 330 enheder bærer derfor et grundlag på 264 dollar. Hvis det faktiske bruttoprovenu er 319,20, og henførbare salgsopkrævninger i alt er 1,20, er nettoprovenuet 318 og realiseret overskud 54. De resterende 1.670 enheder bevarer et grundlag på 1.336 før andre transaktioner under samme metode.
Eksemplet er en regnskabsillustration, ikke et udsagn om kontoens skattemæssige partibehandling. Styringen bør bevare tjenestens faktiske registreringer og den valgte rapporteringsmetode. Et gennemsnitligt anskaffelsestal til strategianalyse bør ikke stiltiende erstatte en anden krævet grundlagsmetode eller præsenteres som et endeligt skatteresultat.
Håndter manuelle ændringer uden at modarbejde brugeren
En bruger kan sælge, købe eller overføre samme aktiv gennem en anden understøttet grænseflade, mens botten kører. Automatiseringen bør observere ændringerne og opdatere disponibel beholdning. Den bør ikke antage, at enhver saldoafvigelse er en midlertidig datafejl eller en instruktion om at gendanne den tidligere position.
Antag, at en strategi kun er tildelt en fast reduktion på 600 enheder. Hvis brugeren manuelt sælger 100 af de udpegede enheder, før en automatisk erstatning godkendes, skal politikken angive, om det manuelle salg tæller mod målet. Begge fortolkninger kan registreres, men et underforstået valg kan skabe en utilsigtet ekstra reduktion.
En nyttig registrering skelner strategiens egne udførelser fra anden kontoaktivitet uden at ignorere nogen af delene. Førstnævnte forklarer algoritmens adfærd; sidstnævnte påvirker det disponible og brugerens mulige nye ønske. Gennemgå målet ved væsentlige kontoændringer frem for at lade forældede antagelser drive en fortsat ordrekæde.
Afstem fuldstændige registreringer frem for én bekvem side
Ordrehistorik og beholdningsaflæsninger kan være sideinddelte eller beskrive forskellige observationstider. Én tom side beviser ikke fravær af tidligere ordrer, og et beholdningsøjebliksbillede fra før en gennemførelse kan ikke modbevise den. Bevar omfang og tidspunkt for hver aflæsning brugt i afstemningen.
Opbyg et genopretningsbillede omkring aktive salgshensigter og deres tilknyttede ordrer. Medtag derefter relevante kontoændringer, indtil mængder og kontantvirkninger kan forklares. Hvis to kilder fortsat er inkonsekvente, identificeres den uafklarede forskel, og afhængige salg begrænses frem for at tvinge regnskabet til at balancere ved at kassere én observation.
Det betyder noget efter en genstart, hvor den lokale hændelsesstrøm kan have huller. Gendannelse af den sidst lagrede beholdning er kun et udgangspunkt. Applikationen behøver også udestående ordrer, afsluttede udførelser siden øjebliksbilledet og manuelle ændringer, der påvirker tilgængelighed. Genopretningen er afsluttet, når forholdene er forstået, ikke blot når forbindelsen vender tilbage.
Planlæg en rest, der ikke kan sælges som ønsket
Produkttrin, minimumsbeløb og en ændret pris kan efterlade en lille rest, der ikke passer til den ønskede ordre. Bevar mængden udtrykkeligt. Øg ikke et salg ud over den disponible beholdning, og opfind ikke en afsluttet nulsaldo for at forenkle rapporteringen.
En fiktiv regel kan sigte mod salg af 10,005 enheder, mens det relevante aktuelle trin tillader en anden udførbar mængde. Den præcist tilladte justering afhænger af den faktiske produktdefinition og godkendelse. En politik kan vælge et beløb inden for grænsen og bevare resten eller afvise, hvis resultatet ikke ville opfylde målet.
Reststyring bør også være økonomisk fornuftig. Gentagne salgsforsøg med et meget lille beløb kan bruge opmærksomhed og omkostninger uden at forbedre kontoudfaldet. Definer, hvornår resten gennemgås igen, og hvilket belæg der ville gøre endnu et salg passende. En kendt restmængde er mere ærlig end en nominelt afsluttet opgave med uforklaret beholdning.
Kontrolspor i en automatisk kryptosalgsbot til Robinhood-API
Kontrolsporet bør forbinde udløser, godkendt mængde, markedsskøn, autentificeret anmodning, ordreidentitet, udførelser og endelige kontovirkninger. Det bør også bevare politikversion og manuelt indgreb. Dermed kan en kontrollant skelne strategiens beslutning fra den mekanik, der udførte den.
Test registreringen med hele den fiktive livscyklus: et mål på 600 enheder, 240 solgt først, yderligere 90 under annullering, 270 annulleret og en senere beslutning om det uopfyldte mål. Tilføj et tabt svar og en manuel kontoændring. Forventede mængder og reservationer bør forblive konsekvente gennem hver hændelse.
En automatisk kryptosalgsbot til Robinhood-API er kun pålidelig i det omfang, den kan forklare det salg, den faktisk udførte. Det nyttige udfald er en nøjagtig reduktion under godkendte vilkår med afstemt restbeholdning og provenu. En udløst alarm, accepteret anmodning eller et attraktivt skøn er et mellemtrin, og hvert kræver det senere belæg, der fuldender betydningen.