Hvis vi på et diagram har laget to barer som er lavere enn minst de to linjene før, og vi handler en linje tilbake til en bar fra den nåværende linjen som er minst like lav som den nåværende linjen, vil det være høyest bar mellom disse to stolpene. Det glidende gjennomsnittet som jeg vil ønske, er av perioden lengde fra høy bar til gjeldende bar bar lengde, inkludert. Så hvis det er 5 barer fra den høye linjen mellom de to quotconnectedquot-stolpene, inklusiv, vil perioden for MA av interesse være 5. Hvis en annen nedre linje ble generert og den høye linjen mellom den ene og linjen før den var av like lav pris var den samme baren, da ville perioden lengden på MA av interesse være 6. Er det en indikatorEA som produserer denne MA eller kan det være kodet. Kanskje selv noe lignende der ute ville være et godt sted å starte. ja det kan gjøres. men du trenger en metode for å identifisere lav og høyde. mest sannsynlig vil indikatoren gjengi den siste svingen. Hvis du ser på min side, finner du en indikator som gjør nesten det samme Hvordan kommer jeg til siden din Tilpasset høyde og lav: Hvis den nåværende linjen er lavere enn de to foregående linjene, trekker du en linje tilbake fra den nåværende linjen til en bar som er minst like lavt. Deretter finner du linjen mellom den nåværende linjen og den historiske linjen som var minst like lav som er høyere enn alle de andre stolpene i mellom. Det er ankerbaren. Antall barer fra den høye linjen til den nåværende linjen er perioden lengden på MA. Hvis den neste linjen etter at den nåværende linjen er høyere, forblir MA-perioden lengre. Hvis det er lavere, enn du må gjenta alt ovenfor for den nye linjen. I så fall vil indikatoren du ber om, gjenta de siste 3 stolpene. Ps, jeg har sendt deg et pm siden det er ansett som en reklame her at du lager en link. Jeg er ikke sikker på om jeg forsto highlow-metoden. Hvis den nåværende linjen er høyere, har de to foregående oppgangene startet. Hvis den nåværende linjen er lavere, har de to foregående et nedslag startet. Ma-perioden er justert til lengden på svingen. Jeg kan ikke se et system i denne indikatoren: (Jeg prøver å få en enkel VBA-kode som en del av en makro som vil sette i kolonne B gjennomsnittet av verdiene for hver rad. Jeg har kode som genererer en tidsserie og fyller en kolonne per simulering slik at hver kolonne er en tidsserie som begynner i kolonne C. Antall simuleringer varierer, så jeg trenger bare noe som gjennomsnittlig verdien for hvert punkt i tid (dvs. for hver rad over alle simuleringer) mens du justerer for antall simuleringer som kjøres (kolonner som er fylt). Jeg vil så gjerne generere en enkelt graf av alle tidsseriene som markerer de gjennomsnittlige verdiene som er beregnet. Mange takk hvis du kan hjelpe Her er for eksempel koden som tar Verdiene for tiden går fra ark1 og plasserer den i kolonneA-ark2. Jeg vil at makroen nå skal plassere gjennomsnittet i riktig rad ned Kolonne B: spurte 13. juli klokken 1:58 Takk for kommentarene. Jeg vil gjerne innlemme denne funksjonen som en del av en Macro wh Jeg genererer disse tidsseriene automatisk. Siden jeg ikke vet hvor mange kolonner det skal være (kanskje hundrevis), og jeg må kanskje gjenta simuleringen mange ganger, må den bli innlemmet som en del av denne makroen. Jeg har oppdatert spørsmålet og gitt mer detaljert informasjon om du ber om det. ndash Mary Jul 13 12 kl 10:35 Takk for din hjelp. Det vil alltid være data etter kolonne C da jeg planlegger å kjøre tusenvis av tidsserier. Jeg lurer på om du har en kode for automatisk å registrere dataområdet på regnearket for å plotte grafen, dvs. erstatte rekkevidden av den følgende koden med noe som passer jeg ser at du har gitt råd til noe lignende i et tidligere innlegg, men jeg har har ikke vært i stand til å tilpasse den til min. Sub Graph () ActiveSheet. Shapes. AddChart. Select ActiveChart. ChartType xlXYScatterSmoothNoMarkers ActiveChart. SetSourceData Kilde: Range (quotSheet2A1: E101quot) Slutt Sub ndash Mary Jul 13 12 kl 16:03 Hei folkens. Tusen takk. Begge bidragene fungerer veldig bra i beregning av gjennomsnittene for det viste eksemplet. Antallet kolonner vil imidlertid variere, slik at gjennomsnittet må beregnes fra kolonne C til quotxquot avhengig av antall replikater simuleringen genererer. Jeg har problemer med å få det til å gjenkjenne hvor mange kolonner det er som må gjennomsnittlig før du gjør beregningen at kodene dine er ganske bra. Eventuell hjelp med å få grafen til å generere ville også være en god bonus.) Setter virkelig pris på din hjelp på dette. Takk igjen ndash Mary Jul 13 12 på 13: 29 Din indre for er iterating all array så det er derfor du alltid får det samme gjennomsnittet (den for hele gruppen), du bør iterere fra 0 til nåværende nummer av ytre for i stedet . Det bevegelige gjennomsnittet blir oppdatert basert på j i ditt indre, for det betyr at det vil tilsidesette tidligere verdier hver ny sløyfe, dette burde være innenfor det ytre for stedet for det indre som bruker jeg som indeks. Du deler sumj for å beregne gjennomsnitt, hver ny indre sløyfe j du vil dele med 0 første summen. Jeg tror du mente å bruke j1 i stedet, indeksen er ikke den samme som den nåværende lengden. Tips for feilsøking: Unngå å bruke variabler til loop-arrays, du bør bruke array. length i stedet. For å reprodusere problemet kan du gi oss det isolerte problemet i stedet for din nåværende kode. det vil si: Tenk deg om feilen er i dine innganger, hvordan kan vi tro at du virkelig brukte dem Du løper over alle dataene hver gang. Du bør ha for (int j (igteverageLengthi-averageLength2: 0) jlt iaverageLength2 ampamp jltnumDataPoints j) (eller noe lignende) for ditt innerste gjennomsnitt. Også, movingAverageisumj bør modifiseres for å håndtere saken når j er 0. Spesielt bør det sannsynligvis være movingAverageisumaverageLength og det skal påføres movingAveragei-sporet utenfor gjennomsnittsløkken. besvart 4. okt 13 kl 20:42 Neste gang, ta kommentarene til oppgaven ut av spørsmålet før du legger inn det. Men siden du virker ganske ny på dette, tenk på hvordan du ville gå gjennom dataene, og få det til å gjøre det. Du bør prøve å sørge for at hver løkke stopper på det riktige punktet, og husk at hvis du vil stoppe når det ikke er flere tall, (som når du gjør indre sløyfe, og du kan bare få 3 flere tall i stedet for 4) programmet må også stoppe. Kontroller at koden din sjekker etter dette. svarte 4. okt 13 kl. 20:56 Uten ytterligere detaljer, trenger du sannsynligvis et uvevet glidende gjennomsnitt. På et hvilket som helst punkt Ai i inngangsarmen A med lengde N (med 0ltiltN), er det bare middelverdien av de forrige K-oppføringene i gruppen, inntil og med Ai. Hvis det arent K slike verdier, så gjennomsnittlig (i1) verdiene fra A0 til Ai. inklusive. En liten tanke vil vise deg at du ikke trenger å legge opp alle K-verdier hver gang. Bare hold summen, og når du går videre til neste punkt (dette er et glidende gjennomsnitt), trekker du verdien som blir erstattet og legger til den nye verdien som erstatter den. (I løpet av de første K-1 poengene, legger du bare til den nye verdien til summen og øker telleren din med 1.) På hvert punkt i denne prosessen er glidende gjennomsnitt gjeldende sum dividert med gjeldende telleverdi. svarte 4. okt 13 kl 21:05 I et glidende gjennomsnitt må du ha en slags vindusstørrelse. Din vindusstørrelse er gjennomsnittligLengde, slik at den ser slik ut: For-sløyfen starter ved de nåværende dataene og går tilbake gjennomsnittligLengde datapunkter og legger til dem. Du vil bare ha et glidende gjennomsnitt når du har når du har nok datapunkter og gjennomsnittet blir summen delt med gjennomsnittlig lengde. Merk: Ikke testet bare sudo kode, men dette er ideen. svarte 4. okt 13 kl 21:05 Ditt svar 2017 Stack Exchange, Inc
No comments:
Post a Comment