En Solana-handelsalgoritme er lettere at forstå, når én regel følges fra dens input til dens endelige kontopost. Brede beskrivelser som køb momentum eller automatisér exits lader for meget være uspecificeret. De nyttige detaljer handler om, hvilke observationer der indgår i reglen, hvornår den afstår, hvordan et forslag godkendes, og hvordan den resulterende handling gennemgås.
Denne artikel udvikler ét bevidst enkelt eksempel på positionsreduktion. Det er ikke en anbefalet strategi eller en påstand om rentabilitet. Formålet er at demonstrere en fuldstændig specifikation, som en læser kan beregne i hånden og sammenligne med en implementering.
Den fiktive regel, kaldet R1 i denne artikel, overvåger en eksisterende tokenposition. Under definerede betingelser foreslår den at sælge en fast del, efter at en salgskurs for en bestemt mængde er steget i forhold til en kort, afsluttet basislinje. Forslaget kræver stadig særskilt kontogodkendelse og aktuel udførelsesdokumentation.
Et gennemregnet eksempel på en Solana-handelsalgoritme kræver et formål
R1's formål er at frembringe et forslag om delvis reduktion, som kan gennemgås, for en position, arbejdsgangen allerede forvalter. Den opdager ikke nye tokens, udleder ikke traderhensigt og vælger ikke en hel portefølje. Dette snævre omfang holder eksemplet fokuseret på relationen mellem observationer og én handlingstype.
Algoritmen bruger en fast tokenmint og en understøttet markedsfortolkning. Den observerer kurser for salg af præcis 100 tokens til et navngivet noteringsaktiv. Hver sammenligning bruger samme retning og mængde. En kurs for køb af 100 tokens eller salg af en anden mængde indgår ikke i basislinjen, som om den var tilsvarende.
Den tidligere vejledning til Solana-handelsbottens arkitektur adskiller observation, strategi, godkendelse og afstemning. R1 følger disse grænser. En regeludløsning er en foreslået beslutning, mens kontoresultatet kræver dokumentation fra de senere trin.
Angiv observationspakken
Hver observationspakke indeholder mintidentiteten, noteringsaktivet, inputmængden eller inputbeløbet, det forventede output, observationstidspunktet, kilde- eller ruteomfanget og fortolkningsstatus. Den angiver også, hvilke omkostninger der allerede afspejles i outputtet. Pakken bør gemmes, før den bliver et input til reglen.
For R1 er outputtet en salgskurs for en bestemt mængde, ikke en generel tokenpris. Det gør sammenligningen tættere forbundet med den tilsigtede reduktionsmængde og efterlader stadig udførelsesusikkerhed. En kurs er dokumentation for forhold på et tidspunkt, ikke en garanti for et senere kontoresultat.
Pakken kræver et tydeligt tilgængelighedstidspunkt. En kurs indhentet fra historikken efter beslutningsgrænsen kan ikke indgå i en genafspilning, som om den var kendt tidligere. Dokumentationssporet for én algoritme begynder med det, systemet faktisk kunne undersøge, da reglen kørte.
Definér et afsluttet basisvindue
R1 sammenligner den seneste kvalificerede kurs med gennemsnitsoutputtet fra tre foregående afsluttede observationer valgt under en fast tidsplan. Tidsplanen og aktualitetspolitikken er en del af regelversionen. De vælges ikke senere for at gøre basislinjen gunstig.
Alle tre basisobservationer skal opfylde de samme krav til identitet, mængde, retning og understøttelse. Hvis én mangler eller er ugyldig, afstår R1 i dette eksempel. Den forkorter ikke lydløst basislinjen og erstatter ikke den manglende værdi med den seneste kurs.
En mere kompleks algoritme kunne bruge en anden beregning, men specifikationen ville kræve samme tydelighed. Pointen er ikke, at tre observationer udgør en stærk forudsigelsesmodel. Pointen er, at en lille fast beregning gør inputgrænsen let at undersøge og viser, hvordan manglende data ændrer beslutningen.
Fastlæg gennemgangsrytmen for eksemplet
Forestil dig i denne gennemregnede specifikation gennemgange planlagt hvert femte minut. En gennemgang kl. 10:00 bruger de registrerede kurspakker fra kl. 09:45, 09:50 og 09:55 som sin basislinje plus en særskilt seneste kurs til den aktuelle gennemgang. Hver pakke skal have opfyldt en aktualitetsgrænse på ét minut, da den blev accepteret på sit eget gennemgangstidspunkt; den seneste pakke skal stadig opfylde denne grænse ved den aktuelle beslutning.
Disse intervaller er illustrative indstillinger, ikke anbefalede handelsfrekvenser. De gør eksemplet reproducerbart og forhindrer implementeringen i at vælge de tre historiske observationer, som giver en bekvem basislinje. Hvis en planlagt pakke var utilgængelig, gælder R1's regel for manglende input frem for at række længere tilbage uden et udtrykkeligt versionsskift.
Angiv udløseren i almindeligt sprog
R1 foreslår en reduktion, når det seneste kvalificerede output er mindst 5 % over gennemsnittet af de tre basisoutput. Tærsklen er kun valgt til illustration. Lighed kvalificerer under denne regel, og beregningen bruger de uafrundede registrerede værdier før formatering til visning.
Betingelsen beskriver en relativ ændring i det noterede provenu for samme mængde på 100 tokens. Den hævder ikke, at hele positionen kan sælges til denne implicitte kurs, eller at yderligere prisbevægelse kan forudsiges. Det ville være andre spørgsmål, som kræver anden dokumentation.
Vejledningen til Solana-handelssignaler forklarer, hvorfor en registreret hændelse eller en forudsigelse ikke automatisk er en økonomisk fordel. R1's udløser er blot en defineret kobling fra hændelse til forslag. Dens nytte ville kræve en særskilt vurdering af udfald, omkostninger og den alternative adfærd, den erstatter.
Beregn udløseren i hånden
Antag, at de fiktive basisoutput er halvtreds, tooghalvtreds og enoghalvtreds noteringsenheder. Deres gennemsnit er enoghalvtreds. Det seneste output er fireoghalvtreds. Den relative stigning er tre divideret med enoghalvtreds, cirka 5,88 %, så den numeriske udløser er opfyldt under R1's tærskel på 5 %.
Beregningen bør gemmes med inputidentifikatorerne. En reviewer kan derefter reproducere den uden at kræve den aktuelle markedsside. Hvis et input senere korrigeres, bevares den oprindelige beslutning, og det registreres, hvordan den korrigerede beregning afviger, frem for lydløst at omskrive det tidligere output.
Dette regnestykke beviser ikke, at det foreslåede salg er fordelagtigt. Det fastslår kun, at de registrerede observationer opfylder den angivne udløser. De næste trin kontrollerer, om positionen findes, mængden er tilgængelig, kursen fortsat er aktuel, og handlingen passer til kontopolitikken.
Regelgennemgang af en Solana-handelsalgoritme omfatter kvalifikation
R1 fungerer kun på en forvaltet position med mindst 300 tilgængelige tokens før den foreslåede reduktion på 100 tokens. Eksemplet efterlader derfor mindst 200 tokens efter en vellykket reduktion. Denne mængderegel er illustrativ og hører til strategidefinitionen, ikke en universel størrelsesanbefaling.
Reglen kræver også understøttet token- og markedsfortolkning, en fuldstændig basislinje, en aktuel seneste observation og ingen uafklaret reduktionshensigt, som reserverer samme beholdning. Hvis noget krav ikke opfyldes, angiver outputtet grunden til afståelse frem for at returnere en vildledende nulscore.
Regelgennemgang af en Solana-handelsalgoritme bør verificere disse krav, før tærskelberegningen undersøges. Et matematisk korrekt resultat på 5,88 % kan ikke opveje en forkert mint, forældet dokumentation eller utilgængelig beholdning. Kvalifikation afgør, om beregningen er meningsfuld for den tilsigtede handling.
Hold forslaget inden for beføjelsesgrænsen
Når R1 udløses, skaber den et forslag om at reducere positionen med 100 tokens. Forslaget omfatter regelversionen, dokumentationsreferencer, mængde, aktuel kurssammenhæng og udløb. Det signerer eller indsender ikke selv en transaktion.
Et særskilt godkendelsestrin kontrollerer kontopolitik og aktuel tilstand. Kontoen kan afvise forslaget, fordi en anden handling har reserveret beholdningen, beføjelser er utilgængelige, eller den foreslåede rute er uden for omfanget. Afvisningen er et gyldigt udfald, selv når R1's observationsregel var opfyldt.
Vejledningen til et Solana-handelssystem forklarer varigt ejerskab af disse poster. Når forslag og godkendelse holdes adskilt, kan en reviewer skelne en strategiafståelse fra en kontoafvisning. Disse udfald peger på forskellige forbedringer og bør ikke sammenpresses til et generelt antal tilfælde uden handel.
Kontrollér kursen igen før et forsøg
Den kurs, som udløste R1, kan udløbe, før handlingen er klar til indsendelse. Arbejdsgangen bør indhente aktuel dokumentation og anvende en angivet politik for væsentlige ændringer. En gammel udløsning fastslår ikke, at det oprindeligt observerede output fortsat er tilgængeligt.
Hvis den nye kurs ikke længere opfylder forslagets betingelser, kan handlingen afvises eller sendes tilbage til ny vurdering. Politikken bør forklare, om den oprindelige udløserbetingelse stadig skal gælde, eller om en særskilt godkendt udførelsesgrænse styrer forsøget. Eksemplet overlader ikke dette valg til en ad hoc-beslutning hos en arbejder.
Bevar udløserkursen og den senere udførelseskurs særskilt. Deres forskel er nyttig dokumentation om forsinkelse og gennemførlighed. Hvis den oprindelige kurs blev erstattet med den senere, ville det blive sværere at forklare, hvorfor algoritmen overhovedet blev udløst.
Reservér beholdning til den godkendte reduktion
Antag, at kontoen har 500 tilgængelige tokens, når forslaget om 100 tokens godkendes. Arbejdsgangen reserverer den foreslåede mængde, så en anden exitregel ikke uafhængigt kan antage, at alle 500 fortsat er tilgængelige. Hvis handlingen afsluttes som tilsigtet, er 400 tokens tilbage, før eventuelle andre separate kontoændringer tages i betragtning.
Reservationen består gennem forsøgets uafklarede periode efter afstemningspolitikken. Den kan frigives, når et ikke-indsendt forslag udløber, eller når understøttet dokumentation fastslår et udfald, som tillader frigivelse. Planlæggeren bør ikke frigive den, blot fordi et nyt interval begynder.
Den tidligere vejledning til koordinering af Solana-take-profit og stop-loss behandler konkurrerende exitbetingelser. R1 er én mulig kilde til et reduktionsforslag. Dens implementering skal samarbejde med hver anden kilde gennem den fælles positionspost frem for at forvalte beholdning isoleret.
Registrér indsendelse som et forsøg
Udførelseskomponenten registrerer den godkendte hensigt og det resulterende transaktionsforsøg. Den bevarer den identitet og timing, som kræves til at følge udfaldet. Et vellykket indsendelsessvar er ikke i sig selv et afstemt salg; Solanas sendTransaction-dokumentation gør denne forskel udtrykkelig. Solanas indsendelsesdokumentation.
Hvis svaret er usikkert, bør arbejdsgangen undersøge det eksisterende forsøg. Den bør ikke køre R1 igen og skabe en ny salgshensigt, blot fordi den tidligere anmodning ikke returnerede en bekvem slutstatus. Det oprindelige forslag og dets reserverede beholdning forbliver en del af kontotilstanden.
Denne adskillelse forbedrer også research. Et udløst forslag, et godkendt forslag og en afsluttet reduktion er forskellige antal. Algoritmens driftsmæssige gennemførlighed kan kun vurderes, når registreringen bevarer overgangene og grundene til, at nogle forslag aldrig bliver kontoændringer.
Afstem positionen efter udfaldet
Når transaktionsudfaldet er fastslået under den valgte politik, sammenlignes kontovirkningen med hensigten. Registrér den reducerede mængde, provenu, omkostninger og resterende forvaltet beholdning. Hvis resultatet afviger fra forventningen, bevares forskellen og afklares, før afhængige handlinger antager en ren tilstand.
Positionen bør ikke markeres som fuldt lukket efter en reduktion på 100 tokens fra 500. Den forbliver åben med den afstemte mængde. En status for afsluttet forsøg og en status for lukket position beskriver forskellige objekter og bør forblive adskilte i brugerfladen og eksporten.
Den resterende position påvirker også næste R1-vurdering. Reglen bør bruge den aktuelt tilgængelige beholdning, herunder andre reservationer og eksterne ændringer. Hvis den oprindelige mængde på 500 tokens kopieres ind i hvert fremtidigt forslag, ville det bryde netop den kvalifikationsbetingelse, specifikationen fastlagde.
Definér, hvornår reglen kan udløses igen
Uden en politik for genaktivering kan R1 udsende endnu en reduktion, hver gang den observerer samme vedvarende betingelse. Afgør, om algoritmen tillader gentagne reduktioner, venter på, at betingelsen lukkes, eller kræver en ny basisepisode, før et andet forslag kan åbnes.
I denne illustrative specifikation kan én udløserepisode kun have én åben reduktionshensigt. Efter at hensigten afklares, kræver R1 en ny, fuldstændig gennemgang, hvis seneste output højst er 2 % over sin kvalificerede basislinje, før en anden episode kan begynde. Denne nulstilling lukker den gamle betingelse; en senere gennemgang skal igen opfylde åbningstærsklen på 5 % for at skabe en ny episode. Kravene til beholdning og beføjelser gælder stadig uafhængigt.
Det forhindrer, at gentagne observationer bliver utilsigtede ophobninger af exithensigter. Det definerer også researchenheden: én episode har en åbningsbetingelse, et forslagsudfald og en lukning eller nulstilling. Meddelelsesantal og observationsantal kan derefter adskilles fra antallet af faktiske algoritmebeslutninger.
Test et tilfælde med ufuldstændig basislinje
Fjern den midterste basisobservation, mens det seneste output holdes på fireoghalvtreds. Under R1 er det forventede resultat afståelse, fordi den krævede basislinje på tre observationer er ufuldstændig. Systemet bør ikke beregne gennemsnittet af halvtreds og enoghalvtreds og hævde, at den oprindelige regel stadig kørte.
Posten bør navngive det manglende input og bevare den seneste gyldige observation til senere research. Når den manglende observation ankommer, kan systemet rekonstruere den tidligere beregning, men det er et retrospektivt resultat. Det bliver ikke et signal, som var tilgængeligt live på det oprindelige beslutningstidspunkt.
Dette tilfælde tester informationsgrænsen frem for regnestykket. Et program kan beregne et gennemsnit korrekt og samtidig bryde reglen ved at bruge et ufuldstændigt eller sent datasæt. Meningsfuld validering kontrollerer, at inputtene var kvalificerede, før det numeriske output kontrolleres.
Test et tilfælde med forældet kurs og ændret beholdning
Hold derefter basislinjen fuldstændig, men gør den seneste kurs ældre end R1's aktualitetsgrænse. Det forventede resultat er afståelse eller forslagsudløb afhængigt af trinnet. En nyligt gengivet skærm bør ikke forny den underliggende kurs' alder.
Gendan derefter en aktuel kurs, mens den tilgængelige beholdning reduceres til under 300 gennem en kontrolleret ekstern ændring. Den numeriske udløser kan stadig gælde, men positionens kvalifikation fejler. Posten bør identificere mængdebetingelsen frem for at foregive, at signalet forsvandt, fordi markedet ændredes.
Disse tilfælde viser, hvorfor observationsregler og kontotilstand fortsat skal være forbundet. Samme markedspakke kan give forskellige tilladte udfald, når beholdning eller beføjelser ændres. Det er ikke inkonsekvens; det er den tilsigtede adfærd for en fuldstændig algoritmearbejdsgang med udtrykkelige forudsætninger.
Sammenlign R1 med et defineret alternativ
For at vurdere R1's nytte vælges en basisadfærd under samme konto-, observations- og omkostningsantagelser. Alternativet kan være en planlagt fast reduktion eller ingen reduktion før en senere på forhånd angivet gennemgang. Valget bør passe til researchspørgsmålet og undgå bagklogskab.
Vejledningen til Solana-handelsalgoritmer udvikler retfærdige sammenligninger mellem regler. R1 bør ikke få gunstigere kurser, et større budget eller en anden exithorisont end alternativet, medmindre denne forskel udtrykkeligt er en del af studiet.
Sammenligningen bør omfatte foreslåede, men ikke udførte reduktioner, resterende beholdning og omkostninger. Hvis kun afsluttede reduktioner undersøges, kan tilfælde skjules, hvor reglen blev udløst, men handlingen ikke kunne gennemføres. Et fuldstændigt kontoforløb er mere informativt end en samling isolerede vellykkede eksempler.
Fastfrys reglen før en senere gennemgang
Den endelige R1-specifikation omfatter sit univers, kursmængde, basisudvælgelse, tærskel, kvalifikation, udløb, genaktivering, overdragelse til godkendelse og udfaldsregnskab. Fastfrys hele denne definition, før en senere vurderingsperiode undersøges. Ændring af blot én skjult forudsætning kan ændre resultatet væsentligt.
Den tidligere vejledning til Solana-researcharbejdsgangen forklarer, hvorfor tidsskæringer og faste regler betyder noget. Hvis den senere periode afslører en fejl eller et uattraktivt resultat, dokumenteres revisionen som R2, og det identificeres, hvilken dokumentation der blev brugt til at vælge den.
En regel, som revideres efter undersøgelse af et vurderingsvindue, bør ikke bevare en påstand om, at samme vindue uafhængigt validerede den reviderede version. Registreringen kan stadig være værdifuld udviklingsdokumentation. Ærlig versionsstyring bevarer det, researchen lærte, uden at få den endelige regel til at fremstå valgt på forhånd.
Opdel udfaldsgennemgangen
Gennemgå, om R1 modtog fuldstændig dokumentation, beregnede udløseren korrekt, frembragte det tilsigtede forslag, bestod godkendelse, nåede et fastslået forsøgsudfald og afstemte positionen. En fejl på hvert trin betyder noget forskelligt. En korrekt formel fastslår ikke en korrekt fuldstændig arbejdsgang.
Vurdér derefter det økonomiske spørgsmål særskilt: hvad ændrede reduktionen sammenlignet med det definerede alternativ efter omkostninger og under samme kontoforløb? Svaret kan være gunstigt, ugunstigt eller uafklaret. Algoritmens fortolkelighed garanterer ikke dens værdi.
En nyttig rapport kan derfor sige, at implementeringen matchede specifikationen, mens strategien ikke opfyldte sit researchmål. Den kan også identificere en driftsfejl, før nogen økonomisk påstand fremsættes. Når disse konklusioner holdes adskilt, rettes forbedring mod det trin, dokumentationen faktisk peger på.
Bevar et fuldstændigt eksempel til fremtidige ændringer
Bevar den gennemregnede kursrækkefølge på halvtreds, tooghalvtreds, enoghalvtreds og fireoghalvtreds med dens forventede beregning på 5,88 % og de tilknyttede kvalifikationstilfælde. Tilføj forslags-, godkendelses-, forsøgs- og afstemningsposterne fra en kontrolleret kørsel. Det skaber en kompakt reference til senere implementeringsændringer.
Referencen bør omfatte udfald uden handling såvel som det vellykkede forløb. Fremtidige versioner kan kontrolleres mod de tilsigtede forskelle og samtidig bevare de grænser, som bør forblive stabile. En regressionsgennemgang er nyttigst, når den verificerer meningsfuld adfærd frem for blot at spejle den seneste implementering.
En Solana-handelsalgoritme kan gennemgås, når hele dens kæde er udtrykkelig. Én enkel regel kan demonstrere denne disciplin: observeret dokumentation indgår i en fast beregning, kvalifikation begrænser dens brug, beføjelser styrer handlingen, og kontoafstemning fastslår konsekvensen. Samme tydelighed forbliver værdifuld, når den senere algoritme er mere kompleks.