Wednesday, 4 October 2017

Ciss Eksponensiell Moving Average


En mulig tilnærming her er å ha en metode som returnerer kjernen. Fra det jeg kan se, vil innspill til denne metoden være kjernetype. Jeg. og otherInputs. En enkel tilnærming ville være: Dette er selvfølgelig veldig, veldig rått, og mye forbedring kan gjøres, men det er ment å bare få poenget på tvers. Jeg vil bruke et grensesnitt til å representere en kjernen, og ha klasser utledet per kjerne. I min erfaring, som produserer tilstrekkelig lesbar og vedlikeholdsbar kode, men det er alltid rom for forbedring. besvart august 1 14 kl 20: 39Eksponentiell flytende gjennomsnitt - EMA BREAKING DOWN Eksponensiell flytende gjennomsnitt - EMA De 12 og 26-dagers EMAene er de mest populære kortsiktige gjennomsnittene, og de brukes til å skape indikatorer som den bevegelige gjennomsnittlige konvergensdivergensen ( MACD) og prosentvis pris oscillator (PPO). Generelt brukes 50- og 200-dagers EMAer som signaler for langsiktige trender. Traders som ansetter teknisk analyse, finner glidende gjennomsnitt veldig nyttige og innsiktige når de brukes riktig, men skaper kaos når de brukes feil eller blir feilfortolket. Alle de bevegelige gjennomsnittene som vanligvis brukes i teknisk analyse, er av sin natur sakende indikatorer. Følgelig bør konklusjonene fra å bruke et glidende gjennomsnitt til et bestemt markedskart være å bekrefte et markedskryss eller for å indikere dets styrke. Svært ofte, etter hvert har en glidende gjennomsnittlig indikatorlinje endret seg for å reflektere et betydelig trekk i markedet, og det optimale punktet for markedsinngang har allerede gått. En EMA tjener til å lette dette dilemmaet til en viss grad. Fordi EMA-beregningen plasserer mer vekt på de nyeste dataene, klemmer prishandlingen litt strammere og reagerer derfor raskere. Dette er ønskelig når en EMA brukes til å utlede et handelsinngangssignal. Tolke EMA Som alle bevegelige gjennomsnittsindikatorer, er de mye bedre egnet for trending markeder. Når markedet er i en sterk og vedvarende opptrinn. EMA-indikatorlinjen vil også vise en uptrend og vice versa for en nedtrend. En årvåken handelsmann vil ikke bare være oppmerksom på retningen til EMA-linjen, men også forholdet mellom endringshastigheten fra en linje til den neste. For eksempel, da prisvirkningen av en sterk opptrend begynner å flate og reversere, vil EMAs endringshastighet fra en linje til den neste begynne å redusere til den tid som indikatorlinjen flater og endringshastigheten er null. På grunn av den slanke effekten, ved dette punktet, eller til og med noen få barer før, bør prishandlingen allerede ha reversert. Det følger derfor at observere en konsistent reduksjon i endringshastigheten til EMA, kunne seg selv brukes som en indikator som ytterligere kunne motvirke dilemmaet forårsaket av den bølgende effekten av bevegelige gjennomsnitt. Vanlige bruksområder til EMA-EMAer brukes ofte i forbindelse med andre indikatorer for å bekrefte betydelige markedsbevegelser og å måle deres gyldighet. For handelsmenn som handler intradag og rasktflyttende markeder, er EMA mer anvendelig. Ofte bruker handelsmenn EMAer for å bestemme en handelspartiskhet. For eksempel, hvis en EMA på et daglig diagram viser en sterk oppadgående trend, kan en intraday traderstrategi være å handle kun fra den lange siden på en intradagskjema. Det ser ut som om bruk av dagens EMA når den er den første dagen ( og derfor er det ikke i går) kan være basert på forskjellige data, avhengig av hvilke artikler du leser. Jeg er ikke en lagerekspert, så jeg går bare på hva jeg har lest. Jeg leste i Dummies-artikkelen som jeg koblet til, at det kan gjøres slik jeg viste deg, og det er å starte med den første dagens sluttverdi som quotyesterdays EMAquot. Du kan også bruke et gjennomsnitt av sluttdager over perioden (SMA, jeg antar). men det ser ut til at jeg bare bruker den første verdien som er beregnet (og brukes som quotyesterdays EMAquot i formelen), ikke slik du har gjort det. Så, i skjermbildet fra ditt forrige innlegg, vil ikke SMA3-verdien på 1020, 27.733, bli plassert i kolonnen for EMA3 i 1020, men den vil bli brukt i beregningen for EMA3 på 1018 som quotyesterdays EMAquot. Så mens SMA3 har null for 1018 og 1019, ville EMA3 IKKE ha nuller der. EMA3 for de to datoene skal være 28.017 og 27.909. Så, i min kode der jeg har standard de tidligere EMAene til SMVClose, kan vi endre det på følgende måte: Igjen, dette er basert på det jeg leser og i Dummies-artikkelen viser det det også. Jeg tror virkelig dette er hva du vil. Bonnie DeWitt C MVP Merket som svar av newandold Søndag 21 desember 2014 5:33 Torsdag 18. desember 2014 16:52 Dette vil bli så mye enklere hvis du endrer koden din til å bruke ListltEmaDatagt, som jeg allerede nevnte i en forrige svar. Heres hva jeg tidligere hadde foreslått: gtgtadd SMA egenskaper til dataklassen. Jeg ringte klassen EmaData, men det var fordi jeg trodde du bare hadde beregnet EMA-verdier, men du kan gå videre og legge til SMA-egenskapene til det også. Deretter endrer du metodene dine for å bruke samme ListltEmaDatagt for å beregne første SMA og deretter EMA (du trenger sannsynligvis flere sløyfer gjennom listen).ltlt Så snart du har slått gjennom listen og beregnet dine SMA-verdier, bruker du den riktige SMA-verdien for din startende EMA vil bli mye lettere. Bare bruk samme looping kode som jeg viste i et tidligere svar for å beregne EMA (men bruk en annen start EMA basert på SMA, i stedet for hvordan jeg gjorde det). Bonnie DeWitt C MVP Markert som svar av newandold 21. desember 2014 klokken 17:20 Fredag ​​19. desember 2014 11:28 Når du finner deg selv som trenger å forenkle koden, tenk alltid å lage en ny metode for å sette noen av kode i. Det jeg gjorde var å sette den repeterende koden til en ny metode: Så, i stedet for å gjøre alt det i din opprinnelige sløyfe, kaller du bare den nye metoden i stedet: Er ikke så mye renere Bonnie DeWitt C MVP Merket som svar fra newandold Søndag 21 desember 2014 5:33 AM Lørdag 20. desember 2014 17:44 Alle svar Ifølge tittelen din har du nevnt eksponentiell flytende gjennomsnitt, mener du EMA i PowerPivot. I så fall er det et spesielt forum for problemet ditt, her er koblingen, SQL Server gt Power Pivot. gtgt Jeg prøver, men jeg har ikke den i c som jeg gjorde i vb (også det er veldig veldig veldig sakte i vb) og resultatet i c er annerledes enn vb Så hva vil du oppnå Du vil endre koden du postet til Cor noe annet Ha en fin dag Vi prøver å bedre forstå kundeopplevelser på sosial støtteopplevelse, så din deltakelse i dette intervjuprosjektet vil bli verdsatt hvis du har tid. Takk for at du hjelper til med å gjøre fellesskapsfora et flott sted. Klikk HER for å delta i undersøkelsen. Onsdag 3. desember 2014 07:03 Om dine spørsmål i sammendrag 1. C - og VB-kode for samme EMA-algoritme-implementering gir et annet resultat. 2. Du VB-koden er veldig treg. For første spørsmål. Returner C et feilresultat Hvis det er tilfelle, kan du dele C-koden for hvordan du implementerer EMA-algoritmen for å la meg gjøre en lokal test. Det ville være veldig verdsatt hvis du gir mer detaljert informasjon. For den andre spørsmålet Vi prøver å bedre forstå kunders syn på sosial støtteopplevelse, så din deltakelse i dette intervjuprosjektet vil bli verdsatt hvis du har tid. Takk for at du hjelper til med å gjøre fellesskapsfora et flott sted. Klikk HER for å delta i undersøkelsen. Torsdag 04. desember 2014 10:17 Jeg er fortsatt ikke sikker på hva ditt spørsmål er, men jeg mistenker at det har noe å gjøre med cellefarge basert på sammenligning av noen beregninger. Jeg tror du sier at sammenligningen er forskjellig i C enn i VB. Det eneste jeg kan tenke på å spørre deg er: er dine verdier lagret som dobbel eller desimal. Fordeler er ikke gode når du gjør sammenligninger, mens du ikke har det problemet med decimaler. Du bør definitivt lagre dataene som desimalvariabler. Heres et blogginnlegg jeg skrev om emnet: Bonnie DeWitt C MVP Fredag ​​05. desember 2014 16:40 Tidspunkter 3 Multiplikator: (2 (Tidsperioder 43 1)) EMA x multiplikator 43 EMA (forrige dag) Jeg vil gjerne å bruke EMA formel ved hjelp av kommas txt-fil og vise den i datagridview 1- ved enkelt element som strøm 2- av alle elementene (vil få den siste hendelsen av posten) som strøm etter beregning vil jeg bruke strømtilstanden for å få fargen på datagridvisningen dataene som brukes som txt-fil Du fortsetter å vise de samme tingene igjen og igjen. Det hjelper ikke noen av oss å finne ut nøyaktig hvor du har et problem. Kan du bare forklare hvor du er fast og ikke gjenta bildene eller dataene igjen. Vi har allerede sett det som en gazillion ganger. Hvis sammenligningene ikke stemmer, kan det ha noe å gjøre med dobbelt mot desimal, som jeg sa tidligere. Hvis du sitter fast på å få dataene inn fra en tekstfil, hvilken del er du fast på Hvis du står fast, viser data i et rutenett, så hvor er problemet nøyaktig Hvis det ikke er noen av disse tingene, hva er spørsmålet du trenger? Jeg er sikker på at jeg ikke er den eneste som forvirret av dette. Bonnie DeWitt C MVP Fredag, desember 05, 2014 10:19 Du fortsetter å vise de samme tingene igjen og igjen. Det hjelper ikke noen av oss å finne ut nøyaktig hvor du har et problem. Kan du bare forklare hvor du er fast og ikke gjenta bildene eller dataene igjen. Vi har allerede sett det som en gazillion ganger. Hvis sammenligningene ikke stemmer, kan det ha noe å gjøre med dobbelt mot desimal, som jeg sa tidligere. Hvis du stakk på å få dataene inn fra en tekstfil, hvilken del er du fast på Hvis du står fast, viser data i et rutenett, så hvor er problemet nøyaktig Hvis det ikke er noen av disse tingene, hva er spørsmålet du trenger å svare på Jeg er sikker på at jeg ikke er den eneste som forvirret av dette. Bonnie DeWitt C MVP hvordan å beregne EMA (eksponentiell glidende gjennomsnitt) kildedata er komma txt fil Lørdag 06 desember 2014 5:24 Jeg forstår formelen nå fra lenken du postet, selve formelen er ganske enkel. Men hvilken del av dette har du et problem med å lese fra tekstfilen Eller hva skal du gjøre med tallene når du har lest dem fra tekstfilen Eller hvordan å vise dem i et nettramme Hva med dette. hvorfor du ikke viser oss deler av koden din, spesielt den delen du har problemer med. Det kan være lettere for alle, slik at vi ikke trenger å fortsette å gjette om hva du trenger å vite. Og bare for å tømme det, citerer jeg Googled ema cquot og fant noen koblinger som kan hjelpe. Jeg vet ikke sikkert, fordi jeg ikke kan finne ut hvilken del du sitter fast på, men sjekk dem ut: Den siste artikkelen benytter seg av et gratis Open Source-bibliotek kalt TA-Lib, Technical Analysis Library (det er en link å klikke på i artikkel). Bonnie DeWitt C MVP Redigert av BonnieB MVP, Moderator Lørdag 6. desember 2014 kl 06:06 Forklaring Lørdag 6. desember 2014 6:05 AM Har du prøvd å gå gjennom koden din i feilsøkeren Like etter å ha lest i tekstfilen, Foreach gjennom linjene, hvis: Hvis (ComName SplitString0) alltid vil være feil, har du initialisert ComName til en tom streng. ComSize vil derfor alltid være null og din neste for sløyfe vil heller ikke gjøre noe. Så, det er problemet ditt der. Jeg prøvde å kjøre koden din og det første jeg gjorde var satt til en debugger-brytepunkt etter at den hadde lest i tekstfilen. Det er hvordan jeg fant dette problemet. Prøv å bruke debuggeren til å gå gjennom koden din. Det vil hjelpe deg å finne problemene lettere selv. Bonnie DeWitt C MVP Lørdag 6. desember 2014 15:39 Jeg endrer koden bare ComName-showet i DataGridView3 og resten ikke vises, men når jeg klikker i cellen, vil den vise, og hvis jeg klikker på den andre, vil den vise og den forrige vil bli skjult igjen, det resultat jeg får er SMA (enkelt glidende gjennomsnitt) ikke for EMA (eksponentielt glidende gjennomsnitt) Lørdag, 6. desember 2014 17:26 Bare ComName-showet i DataGridView3 og resten ikke viser men når jeg klikker i cellen vil den vise, og hvis jeg klikker på den andre, vil den vise, og den forrige blir gjemt igjen. Jeg ser ikke atferden. Alt ser bra ut i rutenettet mitt. I designeren har jeg bare droppet en DataGridView på skjemaet mitt, gikk inn i egenskapene til rutenettet, deretter til kolonnekolleksjonen og lagt til de 6 kolonnene. Jeg gjorde ingenting annet, og alt ser bra ut. Du må gjøre noe annet i rutenettet som forårsaker atferden du ser, men jeg er ikke sikker på, fra toppen av hodet mitt, hva som kan forårsake det. Kanskje kolonnene dine ikke er nok nok, eller har du gjort noen formatering i dem, eller har du noen form for rad - eller cellehendelser som kan gjøre noen rare ting? Bonnie DeWitt C MVP 6. desember 2014 17:58 Jeg vil sjekke det takk lørdag 06 desember 2014 18:19 Du er velkommen. Hold oss ​​oppdatert på fremdriften Bonnie DeWitt C MVP Lørdag 6. desember 2014 10:14 PM for DataGridView3 jobber nå for formelen virker ikke, og jeg prøver også denne, men begge jobber ikke med det jeg ikke klarer å oppnå. Den første EMA ( forrige dag) (summen av de siste tre (lukkekurs) 3) Jeg bør bruke nærprisen som EMAs begynnelse, slik at den vil være 27,1) på 27.733 den grønne) med hensyn til slutten av perioden EMA på 3 dager vil ha den siste to linjen som (0) fordi er mindre 3 jeg tror at du sier at den grønne for EMA3 skal være 27,1 i stedet for 27,33, men de to siste er riktig på 0. Er det riktig Hvis If så jeg har en enkel løsning for deg. Jeg er ikke sikker på hvilken av de to kodestykker du bare viste i ditt siste innlegg, er de du bruker nå, men jeg bruker koden fra ditt forrige innlegg (før den siste). du må gjøre er å gjøre følgende endringer: Det burde gjøre det. Det fungerte for meg med versjonen av koden jeg bruker. Bonnie D eWitt C MVP søndag 07 desember 2014 16:46 Det virker ikke, men under er dataene fra tekstfil og trikset i EMA (forrige dag) hvordan får begynnelsen av det 1- ved å bruke nær pris som du gjorde i ditt siste innlegg 2- ved å bruke enkle glidende gjennomsnitt vil du gjerne omkode den. Jeg gir opp Tidsperioder 3 Multiplikator: (2 (Tidsperioder 43 1)) EMA x multiplikator 43 EMA (forrige dag) Jeg vil gjerne bruke EMA formel ved hjelp av komma-txt-fil og vise den i datagridview 1- ved enkelt element som flyt 2 - etter alt element (vil få den siste hendelsen av posten) som flyt dataene som bruker som txt-fil for mer informasjon om EMA ikke når jeg bruker all koden som jeg gjorde i stor txt-fil, vil det bli veldig tregt Takk så mye for all hjelp jeg virkelig setter pris på det ja, men ikke jobber for tekstfil og dette er det første innlegget som løser EMA-lesing fra komma-fil. Jeg søker på Internett, men jeg fant ikke. selv om jeg gjorde det ved koden ovenfor som fortsatt ikke gjorde det riktig gjorde jeg det enkle glidende gjennomsnittet i c måten jeg kodet over, men det er ikke effektivt. det er veldig sakte for stor plate det er jQuery, men jeg trenger det som c så jeg ser etter forskjellig kode som kan håndtere veldig stor plate med tilstanden til datagridview cellefarge som under int DLaetRow DataGridView3. Rader. Count - 2 if (ema3 gt Math. Abs ((((2) (smvClose)) 100) 43 (smvClose))) DataGridView3. Rader DLaetRow. Celler 3. Stil. BackColor Color. LightGreen annet hvis (ema3 lt Math. Abs ((((2) (smvClose)) 100) - (smvClose))) DataGridView3. Rader DLaetRow. Celler 3. Stil. BackColor Color. Rød redigert av newandold Tirsdag 9. desember 2014 21:33 Tirsdag 9. desember 2014 21:32 OK, jeg fikk endelig litt tid til å gjøre dette, og jeg burde ha tenkt på å gjøre det som dette fra begynnelsen. Opprett en EmaData-klasse for å holde de beregnede verdiene for hver rad av data, og bruk en ListltEmaDatagt for å holde dem alle. Da kan du gjøre alle beregningene i en sløyfe gjennom dataene. Heres hva jeg endte med: Bonnie DeWitt C MVP Lørdag 13. desember 2014 05:59 Takk for din tid og hjelp det er rask kode det ble gjort ved å bruke nær pris, men det var ikke den siste lukkeprisen som starter den trenger noen endringer, vær så snill, takk dette flotte arbeidet, og vær så snill, kan jeg også ha dette for 2 - av alt elementet (får den siste hendelsen av posten) som strømmen, takk så mye jeg virkelig setter pris på det. Redigert av newandold lørdag 13. desember , 2014 21:59 Jeg fikk informasjonen om hvordan å beregne EMA fra denne linken: Jeg betrakter at quotDummiesquot-bøkene er autoritative kilder. Hvis du ser på rutenettene de viser for beregningen, er det ingen nuller for noen av EMA-beregningene. Så det er derfor du ser det ikke med koden min. Hvis du vil gjøre dem null, er alt du trenger å gjøre, endre koden for å sette den til null for riktig oppføring (jeg vet egentlig ikke hvorfor du vil ha det selv om det ikke ser ut som et standardresultat for EMA): Din Det andre spørsmålet er ganske enkelt et spørsmål om å få de siste dagene til å gå ut av SMVListen, som ville være SMVListSMVList. Count - 1. Jeg er sikker på at du kan finne ut hvordan du får det og legg det i det andre nettverket (EMA Analysis). Bonnie DeWitt C MVP lørdag 13. desember 2014 10:17 Beklager, jeg postet noe feil i mitt forrige innlegg. Siden SMVListen er i omvendt kronologisk rekkefølge, vil den siste datooppføringen faktisk være første i listen, så du vil se som SMVList0. Jeg ønsket også å legge til min kommentar om nullene som ikke tilhører EMA-beregningene. Det ser ut til å være fornuftig med SMA-beregningene du gjorde tidligere, men jeg ser fortsatt ikke det fornuftig med EMA-beregninger (igjen, dette er i henhold til Dummies-boklen, fordi jeg personlig vet absolutt ingenting om EMA). Bonnie DeWitt C MVP Søndag 14. desember 2014 2:42 Hva med denne en 2- av alt elementet (får den siste hendelsen av posten) som strømmen får siste hendelsen for alle elementene som ovenfor, jeg tester det, men som du ser under redigert av newandold søndag 14. desember 2014 klokken 04:02 søndag 14. desember 2014 03:51 Ja, vel, jeg har åpenbart fått dem begge bakover, gjorde jeg ikke beklager, men du burde nok ha kunnet finne ut dette deg selv. Men jeg vil bare påpeke at dette skruer opp alle de andre beregningene, siden formelen er avhengig av tidligere EMA-beregning (som ikke burde være null. Men det er når du legger inn denne endringen). Jeg tror virkelig ikke dette er fornuftig. Kikket du på lenken jeg postet til Dummies-artikkelen Plug inn verdiene fra tabellen fra den linken til tekstfilen din og du vil se at min opprinnelige kode samsvarer med det han viser i tabellen. Men hvis du insisterer på å gjøre dem null, antar jeg at vi kunne komme seg rundt ved å alltid lage de tidligere dagene EMA. Gjør det på denne måten i stedet: Jeg er fortsatt ikke enig med det skjønt, men hva vet jeg. Bonnie DeWitt C MVP Søndag 14. desember 2014 05:47 Takk for din innsats, resultatet var ikke som jeg trenger eller rett. men for koden var det veldig bra for hastigheten på lasting i datagradview. 1- få det enkle glidende gjennomsnittet 2- opprett liste over (enkelt glidende gjennomsnitt) la oss ta EMA3 a - vil bruke verdien av den siste sma som den første verdien av ema i beregning, men begge har samme periode som 3 jeg legger til bilde for å forklare det mer også jeg prøver å gjøre det ved hjelp av koden Redigert av newandold Mandag 15. desember 2014 19:56 Beklager at jeg ikke kan bruke mer tid på dette akkurat nå. Du fortsetter å endre hva du vil, eller i det minste virker det slik for meg. Det beste jeg kan si akkurat nå er å legge til SMA-egenskapene i dataklassen. Jeg ringte klassen EmaData, men det var fordi jeg trodde du bare hadde beregnet EMA-verdier, men du kan gå videre og legge til SMA-egenskapene til det også. Deretter endrer du metodene dine for å bruke samme ListltEmaDatagt for å beregne første SMA og deretter EMA (du vil sannsynligvis trenge flere sløyfer gjennom listen). Jeg tror ikke at det blir for vanskelig å gjøre, jeg kan ikke rote med det akkurat nå. Men jeg tror du kan finne ut det. Bonnie DeWitt C MVP Tirsdag 16. desember 2014 12:25 Du fortsetter å forandre det du vil, eller i det minste virker det slik for meg fra mitt gamle innlegg Den første EMA (forrige dag) siste lukkede pris eller (summen av de siste tre (Lukk pris) 3) Også fra gammelt innlegg for mer informasjon om EMA hvis du liker at jeg merker innlegget ditt som svar, vil jeg gjøre det, men for andre hvem som leter etter EMA vil få feilresultat Redigert av newandold Tirsdag 16. desember 2014 5 : 24.00 Det ser ut som om bruk av gårdsdagens EMA når den første dagen (og dermed ikke er i går) kan være basert på forskjellige data, avhengig av hvilke artikler du leser. Jeg er ikke en lagerekspert, så jeg går bare på hva jeg har lest. Jeg leste i Dummies-artikkelen som jeg koblet til, at det kan gjøres slik jeg viste deg, og det er å starte med den første dagens sluttverdi som quotyesterdays EMAquot. Du kan også bruke et gjennomsnitt av sluttdager over perioden (SMA, jeg antar). men det ser ut til at jeg bare bruker den første verdien som er beregnet (og brukes som quotyesterdays EMAquot i formelen), ikke slik du har gjort det. Så, i skjermbildet fra ditt forrige innlegg, vil ikke SMA3-verdien på 1020, 27.733, bli plassert i kolonnen for EMA3 i 1020, men den vil bli brukt i beregningen for EMA3 på 1018 som quotyesterdays EMAquot. Så mens SMA3 har null for 1018 og 1019, ville EMA3 IKKE ha nuller der. EMA3 for de to datoene skal være 28.017 og 27.909. Så, i min kode der jeg har standard de tidligere EMAene til SMVClose, kan vi endre det på følgende måte: Igjen, dette er basert på det jeg leser og i Dummies-artikkelen viser det det også. Jeg tror virkelig dette er hva du vil. Bonnie DeWitt C MVP Merket som svar av newandold Søndag 21 desember 2014 05:33 Torsdag 18. desember 2014 16:52 Tusen takk for denne utmerkelsen for å forklare det Redigert av newandold Fredag ​​19. desember 2014 2:00 PM Fredag ​​19. desember 2014 13:51 Jeg deler c-koden Redigert av newandold Fredag ​​19. desember 2014 kl. 22:09 Fredag ​​19. desember 2014 10:08 PM Jeg får den siste verdien av SMA (enkelt glidende gjennomsnitt ) for å være starten på EMA-beregningen som bildet nedenfor ikke bra som din måte å kode på, vil det ikke være raskt som koden din, men henne for å fjerne hvor du skal begynne å beregne EMA (den første (ema3prev) nå hvordan du bruker rad. ema3 Math. Round ((rad. SMVClose k3) 43 (ema3prev (1 - k3)), 3. MidpointRounding. AwayFromZero) Fredag ​​19. desember 2014 10:23 Dette vil bli så mye enklere hvis du endrer koden din til å bruke ListltEmaDatagt, som jeg allerede nevnte i et tidligere svar. Heres hva jeg tidligere hadde foreslått: gtgtadd SMA-egenskapene til dataklassen. Jeg ringte klassen EmaDa Ta, men det var fordi jeg trodde du bare hadde beregnet EMA-verdier, men du kan gå videre og legge til SMA-egenskapene til det også. Deretter endrer du metodene dine for å bruke samme ListltEmaDatagt for å beregne første SMA og deretter EMA (du trenger sannsynligvis flere sløyfer gjennom listen).ltlt Så snart du har slått gjennom listen og beregnet dine SMA-verdier, bruker du den riktige SMA-verdien for din startende EMA vil bli mye lettere. Bare bruk samme looping kode som jeg viste i et tidligere svar for å beregne EMA (men bruk en annen start EMA basert på SMA, i stedet for hvordan jeg gjorde det). Bonnie DeWitt C MVP Merket som svar fra newandold søndag 21 desember 2014 klokken 5:33 Fredag ​​19. desember 2014 klokka 11:28 Dette er det jeg gjorde og jobber nå Jeg prøver å legge til EMA5 EMA9 EMA10 og så videre var koden veldig lenge er det kort vei og profesjonell måte jeg trenger berøre dette koden som i ekte er koden, jeg er takknemlig for din hjelp. Lørdag 20. desember 2014 15:43 Når du finner deg selv som trenger å forenkle koden, tenk alltid på lage en ny metode for å sette inn noe av koden. Hva jeg gjorde var å sette den repeterende koden inn i en ny metode: Så, i stedet for å gjøre alt det i den opprinnelige sløyfen, kaller du bare den nye metoden i stedet: Er ikke så mye renere Bonnie DeWitt C MVP Merket som svar av newandold Søndag 21 desember 2014 5:33 Lørdag 20. desember 2014 17:44 Hvordan får jeg det til å være alt indeks som å få siste hendelse for alle elementene som ovenfor når jeg prøver det Jeg får alle poster av både (DATATWO OG ONEDATA) takk for din støtte og jeg tester koden din modifisering i l arge data for singal element og var rask nok Lørdag 20. desember 2014 10:23 Når du vil få dataene for begge elementene, kan du bruke en Ordliste til å lagre flere lister. Du må endre metoden MAByItem () for å returnere en ListltEmaDatagt, slik at det ser slik ut: Og da vil du kalle denne metoden litt annerledes enn du ringte det før: Du må kanskje endre noen andre ting i MAbyitem () - metoden, fordi jeg ikke vet hvordan du vil vise det andre nettverket vi har jobbet med. Kanskje kaller AddDataToGrid () - metoden her i stedet for i MAbyitem () - metoden. Og kanskje passere rutenettet du vil ha som en parameter for metoden AddDataToGrid (). Men uansett bør du kunne finne ut resten av det, håper jeg. Bonnie DeWitt C MVP Søndag 21 desember 2014 12:28 Jeg prøver å bruke koden, men jeg har mer enn 300 artikler, men ikke jobbet Redigert av newandold søndag 21 desember 2014 kl. 12:10 søndag 21. desember 2014 11 : 43 AM Jeg sa at du må endre koden litt mer, hovedpunktet i mitt siste svar handlet om å bruke en ordbok for å lagre lister for begge elementene. Jeg visste ikke om AllItems () - metoden din, men det må åpenbart være litt annerledes enn MAbyitem () - metoden din. Gå tilbake til bruk av ordlisten, som jeg viste i mitt forrige svar, men bruk det i AllItems () - metoden din slik: Bonnie DeWitt C MVP Søndag 21 desember 2014 16:34 Jeg legger til koden som under denne feilen jeg har søndag 21 desember 2014 kl 19:32 Hvilken metode er det unntaket som forekommer i Jeg forstår ikke hvorfor du ikke bruker koden min, den delen der alle disse beregningene er innkapslet i en metode, CalcEmaX () - metoden som blir kalt fra CalcEma () - metoden. Jeg trodde du var enig i at det fungerte OK, så hvorfor bruker du annen kode Hva er svmTmpInt200 Det er noe nytt. Basert på dine navngivningskonvensjoner, synes det å tyde på at den har en verdi på 200. Jeg tror problemet er at SMVList. Count - svmTmpInt200 er negativt (fordi din greve er mindre enn 200), så siden du slår bakover, er jeg vil alltid være større enn den verdien, og følgelig har sløyfen ingen stopppunkt, og jeg fortsetter å minske til det er negativt også, så får du unntaket. Legg inn noen relevant kode, vennligst. Bonnie DeWitt C MVP Søndag 21 desember 2014 21:02 Jeg legger bare til mer Periode og all koden er her, så det fungerer for signalelementet til (i SMVList. Count - svmTmpInt200) jeg prøver å erstatte det med forskjellige så det vil ikke være begrenset til bestemt periode ja jeg prøver en annen måte å ta koden din som min referanse Redigert av newandold søndag 21 desember 2014 21:44 søndag 21 desember 2014 21:28 i gammel kode som var sakte , jeg brukte overskriften til datagridview søndag 21 desember 2014 10:16 Du har allerede prøvd koden min. Du sa at det fungerte bra og var fort. Og likevel, du bruker det ikke slik jeg har skrevet det. Du vil være mye bedre med CalcEmaX () og AddDataToGrid () metoder som inneholder all den overflødige koden (hovedsakelig alle IFS). Koden din er for rotete ellers (og du ønsket å unngå det). Men det er ikke der ditt nåværende problem er, fordi problemet ligger der du prøver å beregne smaX å bruke som ditt emaX utgangspunkt. Jeg tror at du kan lage en CalcSmaX () - metode for å gjøre SMA-beregningskoden litt renere også, men igjen er ikke problemet. Problemet er at du ikke har 200 rader i listen, og likevel har du en loop som antar at du gjør. Du må sjekke dine grenser: endre dette: for (i SMVList. Count - 1 i SMVList. Count - svmTmpInt200 jeg -) til dette: int max SMVList. Count - svmTmpInt200 if (max lt 0) max 0 for (int i SMVList. Count - 1 i gt max i--) Bonnie DeWitt C MVP mandag 22. desember 2014 12: 11 AM takk for din hjelp ja koden er ikke så bra, men jeg vil starte på nytt mandag 22. desember 2014 20:35 Du er velkommen Jeg håper du kan få dette til å fungere snart 0) Bonnie DeWitt C MVP Tirsdag 23. desember, 2014 4:42 PM Microsoft gjennomfører en online-undersøkelse for å forstå din mening på Msdn-nettstedet. Hvis du velger å delta, vil onlineundersøkelsen bli presentert for deg når du forlater nettstedet Msdn. Vil du delta? Hjelp oss med å forbedre MSDN. Besøk vår UserVoice-side for å sende inn og stemme på ideer Dev-sentre Læringsressurser Hvis denne koden er avgjørende, kan det være fornuftig å unngå heapallokeringer for Candle s. Jeg tror den mest fornuftige måten å gjøre det ville være, gjør Candle til en struktur. Selv om mutable verdi typer er onde. så jeg ville også refactor Candle for å være uforanderlig. Dette innebærer også at implementeringen av newestCandle måtte byttes, sannsynligvis til et par doble felt (eller alternativt en separat, omstillbar og resettbar klasse). Jeg ser ikke noe annet potensielt ytelsesproblem i koden din. Men når det gjelder ytelse, bør du alltid stole på profilering, ikke din (eller noen elses) intuisjon. Også, jeg liker ikke noen navn på metodene dine. Spesifikt: ValueUpdated. Metode navn skal vanligvis være i skjemaet gjør noe, ikke noe skjedde. Så jeg tror et bedre navn ville være UpdateValue. Legg til. Endre. Dette er de to grunnleggende operasjonene til MovingAverage, og jeg tror at disse navnene ikke uttrykker meningen godt. Jeg vil kalle dem noe som MoveAndSetCurrent og SetCurrent. henholdsvis. Selv om en slik navngivning indikerer at de grunnleggende operasjonene snarere skal være Move and SetCurrent.

No comments:

Post a Comment