Sunday, October 9, 2016

Php bereken bewegende gemiddelde

Hier is 'n oplossing vir 'n 5-dag (eenvoudige) bewegende gemiddelde: Dit oplossing is gebasseer op 'n 5-dag interval. Vir 'n 5-ry interval, probeer om hierdie plaas: maksimum 1 Voeg aan die einde net die laaste rekord te bereken. Vir die eksponensiële gemiddelde (van slegs die laaste rekord), wat 'n spesiale geval van 'n geweegde gemiddelde, gebruik hierdie stelling, vervang die korrekte koëffisiënte vir die onderstreping: wysig: 'n eksponensiële bewegende gemiddelde is afhanklik van al die vorige waardes, sodat 'n ander benadering is nodig. As dit kan uitgedruk word as 'n nie-rekursiewe funksie van die afgelope vyf waardes, kan jy dit bereken soos volg: arraysum As jy wil om te kyk of daar byvoorbeeld net snare in 'n skikking, kan jy 'n kombinasie van arraysum gebruik en arraymap soos volg: (.. cat bar verskeidenheid ()). funksie onlystringsinarray (arr) terugkeer arraysum (. arraymap (isstring arr)) tel (arr) arr1 verskeidenheid (.. een twee drie) arr2 verskeidenheid arr3 verskeidenheid (cat verskeidenheid () , bar) arr4 verskeidenheid (array (), cat bar) vardump (onlystringsinarray (arr1), onlystringsinarray (arr2), onlystringsinarray (arr3), onlystringsinarray (arr4)) GT Dit sal u die volgende resultaat:. Bool (ware) Bool (valse) Bool (valse) Bool (valse) Home → Prestaties artikels → Prestaties Web Development → Prestaties die berekening van die mediaan amp gemiddelde waardes van 'n skikking met PHP berekening van die mediaan amp gemiddelde waardes van 'n skikking met PHP Hier 'n paar handige klein PHP funksies wat ek geskryf het om die mediaan amp gemiddelde waardes van 'n skikking van getalle te bereken. Die mediaan waarde is letterlik die middelste getal, dit is nuttig in baie gevalle, dikwels in Real Estate statistieke byvoorbeeld as dit kan help wys wat mense betaal vir 'n huis, sonder die waarde wat skeef deur 'n paar lae-end of hoë-end transaksies. Neem die volgende huis verkope getalle byvoorbeeld Die gemiddeld van die huis verkoop pryse 321875 sou wees, kan ons sien dat die hoë-end huis prys dramaties skeef die ware prys die meeste mense betaal. Nou met behulp van die mediaan berekening, kan ons bepaal wat die mediaanprys 168500 sou wees. Die onderstaande funksies hoef te doen enige foutopsporing, sodat jy dalk wil tjeks voeg om seker te maak 'n skikking word geslaag, of die waardes numeriese, ens Die gevolglike uitset van die bogenoemde sal wees Mediaan huis waarde: 168500 Gemiddelde huis waarde: 321875 TagsMoving gemiddeldes - Eenvoudige en Eksponensiële Bewegende gemiddeldes - Eenvoudige en Eksponensiële Inleiding bewegende gemiddeldes glad die prys data om 'n tendens volgende aanwyser vorm. Hulle het nie die prys rigting voorspel nie, maar eerder die huidige rigting met 'n lag te definieer. Bewegende gemiddeldes lag omdat hulle op grond van vorige pryse. Ten spyte hiervan lag, bewegende gemiddeldes te help gladde prys aksie en filter die geraas. Hulle vorm ook die boustene vir baie ander tegniese aanwysers en overlays, soos Bollinger Bands. MACD en die McClellan Ossillator. Die twee mees populêre vorme van bewegende gemiddeldes is die Eenvoudige bewegende gemiddelde (SMA) en die eksponensiële bewegende gemiddelde (EMA). Hierdie bewegende gemiddeldes gebruik kan word om die rigting van die tendens te identifiseer of definieer potensiaal ondersteuning en weerstand vlakke. Here039s n grafiek met beide 'n SMA en 'n EMO daarop: Eenvoudige bewegende gemiddelde Berekening 'n Eenvoudige bewegende gemiddelde is wat gevorm word deur die berekening van die gemiddelde prys van 'n sekuriteit oor 'n spesifieke aantal periodes. Die meeste bewegende gemiddeldes is gebaseer op sluitingstyd pryse. 'N 5-dag eenvoudig bewegende gemiddelde is die vyf dag som van die sluiting pryse gedeel deur vyf. Soos die naam aandui, 'n bewegende gemiddelde is 'n gemiddelde wat beweeg. Ou data laat val as nuwe data kom beskikbaar. Dit veroorsaak dat die gemiddelde om te beweeg langs die tydskaal. Hieronder is 'n voorbeeld van 'n 5-daagse bewegende gemiddelde ontwikkel met verloop van drie dae. Die eerste dag van die bewegende gemiddelde dek net die laaste vyf dae. Die tweede dag van die bewegende gemiddelde daal die eerste data punt (11) en voeg die nuwe data punt (16). Die derde dag van die bewegende gemiddelde voort deur die val van die eerste data punt (12) en die toevoeging van die nuwe data punt (17). In die voorbeeld hierbo, pryse geleidelik verhoog 11-17 oor 'n totaal van sewe dae. Let daarop dat die bewegende gemiddelde styg ook 13-15 oor 'n driedaagse berekening tydperk. Let ook op dat elke bewegende gemiddelde waarde is net onder die laaste prys. Byvoorbeeld, die bewegende gemiddelde vir die eerste dag is gelyk aan 13 en die laaste prys is 15. Pryse die vorige vier dae laer was en dit veroorsaak dat die bewegende gemiddelde te lag. Eksponensiële bewegende gemiddelde Berekening eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Die gewig van toepassing op die mees onlangse prys hang af van die aantal periodes in die bewegende gemiddelde. Daar is drie stappe om die berekening van 'n eksponensiële bewegende gemiddelde. Eerstens, bereken die eenvoudige bewegende gemiddelde. 'N eksponensiële bewegende gemiddelde (EMA) moet iewers begin so 'n eenvoudige bewegende gemiddelde word gebruik as die vorige period039s EMO in die eerste berekening. Tweede, bereken die gewig vermenigvuldiger. Derde, bereken die eksponensiële bewegende gemiddelde. Die onderstaande formule is vir 'n 10-dag EMO. 'N 10-tydperk eksponensiële bewegende gemiddelde van toepassing 'n 18,18 gewig na die mees onlangse prys. 'N 10-tydperk EMO kan ook 'n 18,18 EMO genoem. A 20-tydperk EMO geld 'n 9,52 weeg om die mees onlangse prys (2 / (201) 0,0952). Let daarop dat die gewig vir die korter tydperk is meer as die gewig vir die langer tydperk. Trouens, die gewig daal met die helfte elke keer as die bewegende gemiddelde tydperk verdubbel. As jy wil ons 'n spesifieke persentasie vir 'n EMO, kan jy hierdie formule gebruik om dit te omskep in tydperke en gee dan daardie waarde as die parameter EMA039s: Hier is 'n spreadsheet voorbeeld van 'n 10-dag eenvoudig bewegende gemiddelde en 'n 10- dag eksponensiële bewegende gemiddelde vir Intel. Eenvoudige bewegende gemiddeldes is reguit vorentoe en verg min verduideliking. Die 10-dag gemiddeld net beweeg as nuwe pryse beskikbaar raak en ou pryse af te laai. Die eksponensiële bewegende gemiddelde begin met die eenvoudige bewegende gemiddelde waarde (22,22) in die eerste berekening. Na die eerste berekening, die normale formule oorneem. Omdat 'n EMO begin met 'n eenvoudige bewegende gemiddelde, sal sy werklike waarde nie besef tot 20 of so tydperke later. Met ander woorde, kan die waarde van die Excel spreadsheet verskil van die term waarde as gevolg van die kort tydperk kyk terug. Hierdie sigblad gaan net terug 30 periodes, wat beteken dat die invloed van die eenvoudige bewegende gemiddelde het 20 periodes om te ontbind het. StockCharts gaan terug ten minste 250-tydperke (tipies veel verder) vir sy berekeninge sodat die gevolge van die eenvoudige bewegende gemiddelde in die eerste berekening volledig verkwis. Die sloerfaktor Hoe langer die bewegende gemiddelde, hoe meer die lag. 'N 10-dag eksponensiële bewegende gemiddelde pryse sal baie nou omhels en draai kort ná pryse draai. Kort bewegende gemiddeldes is soos spoed bote - ratse en vinnige te verander. In teenstelling hiermee het 'n 100-daagse bewegende gemiddelde bevat baie afgelope data wat dit stadiger. Meer bewegende gemiddeldes is soos see tenkwaens - traag en stadig om te verander. Dit neem 'n groter en meer prysbewegings vir 'n 100-daagse bewegende gemiddelde kursus te verander. bo die grafiek toon die SampP 500 ETF met 'n 10-dag EMO nou na aanleiding van pryse en 'n 100-dag SMA maal hoër. Selfs met die Januarie-Februarie afname, die 100-dag SMA gehou deur die loop en nie draai. Die 50-dag SMA pas iewers tussen die 10 en 100 dae bewegende gemiddeldes wanneer dit kom by die lag faktor. Eenvoudige vs Eksponensiële Bewegende Gemiddeldes Hoewel daar duidelike verskille tussen eenvoudige bewegende gemiddeldes en eksponensiële bewegende gemiddeldes, een is nie noodwendig beter as die ander. Eksponensiële bewegende gemiddeldes minder lag en is dus meer sensitief vir onlangse pryse - en onlangse prysveranderings. Eksponensiële bewegende gemiddeldes sal draai voor eenvoudige bewegende gemiddeldes. Eenvoudige bewegende gemiddeldes, aan die ander kant, verteenwoordig 'n ware gemiddelde van die pryse vir die hele tydperk. As sodanig, kan eenvoudig bewegende gemiddeldes beter geskik wees om ondersteuning of weerstand vlakke te identifiseer. Bewegende gemiddelde voorkeur hang af van doelwitte, analitiese styl en tydhorison. Rasionele agente moet eksperimenteer met beide tipes bewegende gemiddeldes, asook verskillende tydsraamwerke om die beste passing te vind. Die onderstaande grafiek toon IBM met die 50-dag SMA in rooi en die 50-dag EMO in groen. Beide 'n hoogtepunt bereik in die einde van Januarie, maar die daling in die EMO was skerper as die afname in die SMA. Die EMO opgedaag het in die middel van Februarie, maar die SMA voortgegaan laer tot aan die einde van Maart. Let daarop dat die SMA opgedaag het meer as 'n maand nadat die EMO. Lengtes en tydsraamwerke Die lengte van die bewegende gemiddelde is afhanklik van die analitiese doelwitte. Kort bewegende gemiddeldes (20/05 periodes) is die beste geskik vir tendense en handel kort termyn. Rasionele agente belangstel in medium termyn tendense sou kies vir langer bewegende gemiddeldes wat 20-60 periodes kan verleng. Langtermyn-beleggers sal verkies bewegende gemiddeldes met 100 of meer periodes. Sommige bewegende gemiddelde lengtes is meer gewild as ander. Die 200-daagse bewegende gemiddelde is miskien die mees populêre. As gevolg van sy lengte, dit is duidelik 'n langtermyn-bewegende gemiddelde. Volgende, die 50-dae - bewegende gemiddelde is baie gewild vir die medium termyn tendens. Baie rasionele agente gebruik die 50-dag en 200-dae - bewegende gemiddeldes saam. Korttermyn, 'n 10-dae bewegende gemiddelde was baie gewild in die verlede, want dit was maklik om te bereken. Een van die nommers bygevoeg eenvoudig en verskuif die desimale punt. Tendens Identifikasie Dieselfde seine gegenereer kan word met behulp van eenvoudige of eksponensiële bewegende gemiddeldes. Soos hierbo aangedui, die voorkeur hang af van elke individu. Hierdie voorbeelde sal onder beide eenvoudige en eksponensiële bewegende gemiddeldes gebruik. Die term bewegende gemiddelde is van toepassing op beide eenvoudige en eksponensiële bewegende gemiddeldes. Die rigting van die bewegende gemiddelde dra belangrike inligting oor pryse. 'N stygende bewegende gemiddelde wys dat pryse oor die algemeen is aan die toeneem. A val bewegende gemiddelde dui daarop dat pryse gemiddeld val. 'N stygende langtermyn bewegende gemiddelde weerspieël 'n langtermyn - uptrend. A val langtermyn bewegende gemiddelde weerspieël 'n langtermyn - verslechtering neiging. bo die grafiek toon 3M (MMM) met 'n 150-dag eksponensiële bewegende gemiddelde. Hierdie voorbeeld toon hoe goed bewegende gemiddeldes werk wanneer die neiging is sterk. Die 150-dag EMO van die hand gewys in November 2007 en weer in Januarie 2008. Let daarop dat dit 'n 15 weier om die rigting van hierdie bewegende gemiddelde om te keer. Hierdie nalopend aanwysers identifiseer tendens terugskrywings as hulle voorkom (op sy beste) of nadat hulle (in die ergste geval) voorkom. MMM voortgegaan laer in Maart 2009 en daarna gestyg 40-50. Let daarop dat die 150-dag EMO nie opgedaag het nie eers na hierdie oplewing. Sodra dit gedoen het, maar MMM voortgegaan hoër die volgende 12 maande. Bewegende gemiddeldes werk briljant in sterk tendense. Double CROSSOVER twee bewegende gemiddeldes kan saam gebruik word om crossover seine op te wek. In tegniese ontleding van die finansiële markte. John Murphy noem dit die dubbele crossover metode. Double CROSSOVER behels een relatief kort bewegende gemiddelde en een relatiewe lang bewegende gemiddelde. Soos met al die bewegende gemiddeldes, die algemene lengte van die bewegende gemiddelde definieer die tydraamwerk vir die stelsel. 'N Stelsel met behulp van 'n 5-dag EMO en 35-dag EMO sal geag kort termyn. 'N Stelsel met behulp van 'n 50-dag SMA en 200-dag SMA sal geag medium termyn, miskien selfs 'n lang termyn. N bullish crossover vind plaas wanneer die korter bewegende gemiddelde kruise bo die meer bewegende gemiddelde. Dit is ook bekend as 'n goue kruis. N lomp crossover vind plaas wanneer die korter bewegende gemiddelde kruise onder die meer bewegende gemiddelde. Dit staan ​​bekend as 'n dooie kruis. Bewegende gemiddelde CROSSOVER produseer relatief laat seine. Na alles, die stelsel werk twee sloerende aanwysers. Hoe langer die bewegende gemiddelde periodes, hoe groter is die lag in die seine. Hierdie seine werk groot wanneer 'n goeie tendens vat. Dit sal egter 'n bewegende gemiddelde crossover stelsel baie whipsaws produseer in die afwesigheid van 'n sterk tendens. Daar is ook 'n driedubbele crossover metode wat drie bewegende gemiddeldes behels. Weereens, is 'n sein gegenereer wanneer die kortste bewegende gemiddelde kruisies die twee langer bewegende gemiddeldes. 'N Eenvoudige trippel crossover stelsel kan 5-dag, 10-dag en 20-dae - bewegende gemiddeldes te betrek. bo die grafiek toon Home Depot (HD) met 'n 10-dag EMO (groen stippellyn) en 50-dag EMO (rooi lyn). Die swart lyn is die daaglikse naby. Met behulp van 'n bewegende gemiddelde crossover gevolg sou gehad het drie whipsaws voor 'n goeie handel vang. Die 10-dag EMO gebreek onder die 50-dag EMO die einde van Oktober (1), maar dit het nie lank as die 10-dag verhuis terug bo in die middel van November (2). Dit kruis duur langer, maar die volgende lomp crossover in Januarie (3) het plaasgevind naby die einde van November prysvlakke, wat lei tot 'n ander geheel verslaan. Dit lomp kruis het nie lank geduur as die 10-dag EMO terug bo die 50-dag 'n paar dae later (4) verskuif. Na drie slegte seine, die vierde sein voorafskaduwing n sterk beweeg as die voorraad oor 20. gevorderde Daar is twee wegneemetes hier. In die eerste plek CROSSOVER is geneig om geheel verslaan. 'N Prys of tyd filter toegepas kan word om te voorkom dat whipsaws. Handelaars kan die crossover vereis om 3 dae duur voordat waarnemende of vereis dat die 10-dag EMO hierbo beweeg / onder die 50-dag EMO deur 'n sekere bedrag voor waarnemende. In die tweede plek kan MACD gebruik word om hierdie CROSSOVER identifiseer en te kwantifiseer. MACD (10,50,1) sal 'n lyn wat die verskil tussen die twee eksponensiële bewegende gemiddeldes te wys. MACD draai positiewe tydens 'n goue kruis en negatiewe tydens 'n dooie kruis. Die persentasie Prys ossillator (PPO) kan op dieselfde manier gebruik word om persentasie verskille te wys. Let daarop dat die MACD en die PPO is gebaseer op eksponensiële bewegende gemiddeldes en sal nie ooreen met eenvoudige bewegende gemiddeldes. Hierdie grafiek toon Oracle (ORCL) met die 50-dag EMO, 200-dag EMO en MACD (50,200,1). Daar was vier bewegende gemiddelde CROSSOVER oor 'n tydperk 2 1/2 jaar. Die eerste drie gelei tot whipsaws of slegte ambagte. A opgedoen tendens begin met die vierde crossover as ORCL gevorder tot die middel van die 20s. Weereens, bewegende gemiddelde CROSSOVER werk groot wanneer die neiging is sterk, maar produseer verliese in die afwesigheid van 'n tendens. Prys CROSSOVER bewegende gemiddeldes kan ook gebruik word om seine met 'n eenvoudige prys CROSSOVER genereer. N bullish sein gegenereer wanneer pryse beweeg bo die bewegende gemiddelde. N lomp sein gegenereer wanneer pryse beweeg onder die bewegende gemiddelde. Prys CROSSOVER kan gekombineer word om handel te dryf in die groter tendens. Hoe langer bewegende gemiddelde gee die toon aan vir die groter tendens en die korter bewegende gemiddelde word gebruik om die seine te genereer. 'N Mens sou kyk vir bullish prys kruise net vir pryse is reeds bo die meer bewegende gemiddelde. Dit sou wees die handel in harmonie met die groter tendens. Byvoorbeeld, as die prys is hoër as die 200-daagse bewegende gemiddelde, rasionele agente sal net fokus op seine wanneer prysbewegings bo die 50-dae - bewegende gemiddelde. Dit is duidelik dat, sou 'n skuif onder die 50-dae - bewegende gemiddelde so 'n sein voorafgaan, maar so lomp kruise sou word geïgnoreer omdat die groter tendens is up. N lomp kruis sou net dui op 'n nadeel binne 'n groter uptrend. 'N kruis terug bo die 50-dae - bewegende gemiddelde sou 'n opswaai in pryse en voortsetting van die groter uptrend sein. Die volgende grafiek toon Emerson Electric (EMR) met die 50-dag EMO en 200-dag EMO. Die voorraad bo verskuif en bo die 200-daagse bewegende gemiddelde gehou in Augustus. Daar was dips onder die 50-dag EMO vroeg in November en weer vroeg in Februarie. Pryse het vinnig terug bo die 50-dag EMO te lomp seine (groen pyle) voorsien in harmonie met die groter uptrend. MACD (1,50,1) word in die aanwyser venster te prys kruise bo of onder die 50-dag EMO bevestig. Die 1-dag EMO is gelyk aan die sluitingsprys. MACD (1,50,1) is positief wanneer die naby is bo die 50-dag EMO en negatiewe wanneer die einde is onder die 50-dag EMO. Ondersteuning en weerstand bewegende gemiddeldes kan ook dien as ondersteuning in 'n uptrend en weerstand in 'n verslechtering neiging. 'N kort termyn uptrend kan ondersteuning naby die 20-dag eenvoudig bewegende gemiddelde, wat ook gebruik word in Bollinger Bands vind. 'N langtermyn-uptrend kan ondersteuning naby die 200-dag eenvoudig bewegende gemiddelde, wat is die mees gewilde langtermyn bewegende gemiddelde vind. As Trouens, die 200-daagse bewegende gemiddelde ondersteuning of weerstand bloot omdat dit so algemeen gebruik word aan te bied. Dit is amper soos 'n self-fulfilling prophecy. bo die grafiek toon die NY Saamgestelde met die 200-dag eenvoudig bewegende gemiddelde van middel 2004 tot aan die einde van 2008. Die 200-dag voorsien ondersteuning talle kere tydens die vooraf. Sodra die tendens omgekeer met 'n dubbele top ondersteuning breek, die 200-daagse bewegende gemiddelde opgetree as weerstand rondom 9500. Moenie verwag presiese ondersteuning en weerstand vlakke van bewegende gemiddeldes, veral langer bewegende gemiddeldes. Markte word gedryf deur emosie, wat hulle vatbaar vir overschrijdingen maak. In plaas van presiese vlakke, kan bewegende gemiddeldes gebruik word om ondersteuning of weerstand sones identifiseer. Gevolgtrekkings Die voordele van die gebruik bewegende gemiddeldes moet opgeweeg word teen die nadele. Bewegende gemiddeldes is tendens volgende, of nalopend, aanwysers wat altyd 'n stap agter sal wees. Dit is nie noodwendig 'n slegte ding al is. Na alles, die neiging is jou vriend en dit is die beste om handel te dryf in die rigting van die tendens. Bewegende gemiddeldes te verseker dat 'n handelaar is in ooreenstemming met die huidige tendens. Selfs al is die tendens is jou vriend, sekuriteite spandeer 'n groot deel van die tyd in die handel reekse, wat bewegende gemiddeldes ondoeltreffend maak. Sodra 'n tendens, sal bewegende gemiddeldes jy hou in nie, maar ook gee laat seine. Don039t verwag om te verkoop aan die bokant en koop aan die onderkant met behulp van bewegende gemiddeldes. Soos met die meeste tegniese ontleding gereedskap, moet bewegende gemiddeldes nie gebruik word op hul eie, maar in samewerking met ander aanvullende gereedskap. Rasionele agente kan gebruik bewegende gemiddeldes tot die algehele tendens definieer en gebruik dan RSI om oorkoop of oorverkoop vlakke te definieer. Toevoeging van bewegende gemiddeldes te StockCharts Charts bewegende gemiddeldes is beskikbaar as 'n prys oortrek funksie op die SharpCharts werkbank. Die gebruik van die Overlays aftrekkieslys, kan gebruikers kies óf 'n eenvoudige bewegende gemiddelde of 'n eksponensiële bewegende gemiddelde. Die eerste parameter word gebruik om die aantal tydperke stel. 'N opsionele parameter kan bygevoeg word om te spesifiseer watter prys veld moet gebruik word in die berekeninge - O vir die Ope, H vir die High, L vir die lae, en C vir die buurt. 'N Komma word gebruik om afsonderlike parameters. Nog 'n opsionele parameter kan bygevoeg word om die bewegende gemiddeldes te skuif na links (verlede) of regs (toekomstige). 'N negatiewe getal (-10) sou die bewegende gemiddelde skuif na links 10 periodes. 'N Positiewe nommer (10) sou die bewegende gemiddelde na regs skuif 10 periodes. Veelvuldige bewegende gemiddeldes kan oorgetrek die prys plot deur eenvoudig 'n ander oortrek lyn aan die werkbank. StockCharts lede kan die kleure en styl verander om te onderskei tussen verskeie bewegende gemiddeldes. Na die kies van 'n aanduiding, oop Advanced Options deur te kliek op die klein groen driehoek. Gevorderde Opsies kan ook gebruik word om 'n bewegende gemiddelde oortrek voeg tot ander tegniese aanwysers soos RSI, CCI, en Deel. Klik hier vir 'n lewendige grafiek met 'n paar verskillende bewegende gemiddeldes. Die gebruik van bewegende gemiddeldes met StockCharts skanderings Hier is 'n paar monster skanderings wat StockCharts lede kan gebruik om te soek na verskeie bewegende gemiddelde situasies: Bul bewegende gemiddelde Kruis: Dit skanderings lyk vir aandele met 'n stygende 150 dae eenvoudige bewegende gemiddelde en 'n lomp kruis van die 5 - Day EMO en 35-dag EMO. Die 150-daagse bewegende gemiddelde is stygende solank dit handel bo sy vlak vyf dae gelede. N bullish kruis vind plaas wanneer die 5-dag EMO bo die 35-dag EMO op bogemiddelde volume beweeg. Lomp bewegende gemiddelde Kruis: Dit skanderings lyk vir aandele met 'n dalende 150 dae eenvoudige bewegende gemiddelde en 'n lomp kruis van die 5-dag EMO en 35-dag EMO. Die 150-daagse bewegende gemiddelde val solank dit handel onder sy vlak vyf dae gelede. N lomp kruis vind plaas wanneer die 5-dag EMO beweeg onder die 35-dag EMO op bogemiddelde volume. Verdere Studie John Murphy039s boek het 'n hoofstuk gewy aan bewegende gemiddeldes en hul onderskeie gebruike. Murphy dek die voor - en nadele van bewegende gemiddeldes. Daarbenewens Murphy wys hoe bewegende gemiddeldes met Bollinger Bands en kanaal gebaseer handel stelsels. Tegniese ontleding van die finansiële markte John MurphyMath Funksies Inhoudsopgawe abs Absolute waarde AIT Arc kosinus ACOSH Inverse hiperboliese kosinus Asin Arc sine ASINH Inverse hiperboliese sinus atan2 boog tangent van die twee veranderlikes Atan boog tangent ATANH Inverse hiperboliese raaklyn baseconvert Skakel 'n getal tussen arbitrêre basisse bindec binêre na desimaal oordek Round breuke tot cos kosinus cosh hiperbolies kosinus decbin Desimale om binêre dechex Desimale te heksadesimale afkoken Desimale te oktaal deg2rad Skakel die nommer in grade aan die radiaal gelyk exp word bereken dat die eksponent van e expm1 Returns exp (getal) - 1, bereken op 'n manier wat akkuraat selfs wanneer die waarde van getal is naby aan nul vloer Round breuke neer FMOD Returns die drywende punt restant (modulo) van die afdeling van die argumente getrandmax Wys grootste moontlike ewekansige waarde hexdec Hexadecimale na desimaal hypot Bereken die lengte van die skuinssy van 'n reghoekige driehoek is intdiv Integer afdeling isfinite vind hetsy 'n waarde is 'n wetlike eindige aantal isinfinite vind hetsy 'n waarde is oneindig | isNaN vind of 'n waarde is nie 'n aantal lcgvalue Gekombineerde lineêre congruential kragopwekker log10 Base-10 logaritme log1p Returns log (1 nommer), bereken op 'n wyse wat akkuraat selfs wanneer die waarde van getal is naby aan nul log natuurlike logaritme maksimum Vind hoogste waarde min Vind laagste waarde mtgetrandmax Wys grootste moontlike ewekansige waarde mtrand Genereer 'n beter ewekansige waarde mtsrand Saad, hoe beter ewekansige getal kragopwekker octdec Oktale om pi desimaal Kry waarde van pi pow eksponensiële uitdrukking rad2deg Skakel die radiaal getal na die ekwivalente aantal in grade rand Genereer 'n ewekansige heelgetal ronde rond 'n float sonde sine sinh Hiperboliese sinus sqrt Vierkantswortel srand Saad die ewekansige getal kragopwekker tan Tangent tanh hiperbolies tangent Notes contributives 49 note Ek was op soek na 'n afgeknotte funksie. Nie vind een, ek het my eie. Aangesien dit gaan oor alles wat as 'n nommer, ek dink sy vinniger as die alternatief van die gebruik van string funksies. HTH. ltphp funksie afgeknotte (Num. syfers 0) // verskaf die werklike getal, en die aantal // syfers regterkant van die desimale jy wil hou. verskuiwing pow (10 syfers) terugkeer ((vloer (NUM verskuiwing)) / verskuiwing) GT Vir al julle skryf verband sakrekenaars daar buite: (.... April N PV FV 0.0 Prec 2) funksie betaling / Bereken die maandelikse betaling rouned tot die naaste sent Apr die jaarlikse persentasie van die lening. N aantal maandelikse paaiemente (360 vir 'n 30year lening) PV huidige waarde of hoof van die lening FV toekomstige waarde van die lening Prec die presisie jy afgerond tot wens / / Geen waarborg word uitgedruk of geïmpliseer. / As (April 0) alfa 1 / (1 April / 12) retval ronde (PV (1 - Alpha) / alfa / (1 - POW (alfa N)), Prec.) Anders retval ronde (PV / N Prec.) terugkeer (retval) Ek kon dit nie weerstaan ​​om 'n eenvoudiger weergawe van die ordinale funksie doen: (. num - 1. 1) ltphp funksie ordinale (NUM) num (Int) num syfer substr ord de skakelaar (syfer) geval 1. Ord ST breek geval 2. ord de geval breek 3. Ord RD break breek terugkeer num. Ord GT 'N Mens kan die typeren met 'n leë gevolg in plaas van 0 in die geval num kry te leë vervang. Ek nodig het om 'n integrale benader, want ek was nie in staat om dit te bereken, so ek het hierdie funksie. Dit by benadering 'n integrale met die saamgestelde Simpsons reël. Meer inligting oor Simpsons heers. En. wikipedia. org/wiki/Simpson27srule funksie simpsonf (x) // terug f (x) vir integrale benadering met saamgestelde Simpsons heers terugkeer (POW ((1 pow (x (- 4))) , 0,5)) funksie simpsonsrule (AB n) // by benadering Integralab f (x) dx met saamgestelde Simpsons regeer met n tussenposes // n moet 'n ewe getal // f wees (x) word gedefinieer in funksie simpsonf (x) indien (n 2 0) h (b - a) / n S simpsonf (a) simpsonf (b) i 1 terwyl (i LT (n - 1)) xi AHI as (i 2 0) SS 2 simpsonf (xi) anders SS 4 simpsonf (xi) Ek terugkom (h / 3 S) anders terugkeer (n moet 'n ewe getal wees) As jy 'n vlieënier en moet windcorrection hoeke en Grondspoed bereken (bv tydens Flight) dit kan baie nuttig wees. windcorrection rad2deg (Asin (((windspoed (sonde (deg2rad (TT - (winddirection-180)))) / tas)))) Grondspoed tascos (deg2rad (windcorrection)) windspeedcos (deg2rad (tt - (winddirection-180))) jy kan waarskynlik skryf hierdie lyne mooier, maar hulle werk, terwyl joogats een lynfunksie is kort, is dit waarskynlik beter om op grond van faktore bereken iteratief in plaas van rekursief. Hou ook in gedagte as jy wil groot fakulteite, sal jy nodig het om 'n soort van arbitrêre presisie heelgetal of dalk die BCMath funksies gebruik. dan weer, tensy jy probeer om 'n groot aantal doen (170 is die hoogste wat jy kan doen wat nie oneindig terugkeer) het jy waarskynlik gewoond sien enige tyd verskil. ltphp funksie faktoriaal (in) // 0 1 1 uit 1 // Net as in is GT 2 vir (i 2 Ek LT in i) uit Ek Metode om 'n arbitrêre desimale getal te skakel na sy mees verminder breukvorm (so 'n string is teruggekeer, hierdie metode sal waarskynlik gebruik word vir uitvoer opmaak nie.) Daar was ander soortgelyk aan hierdie een op die bladsy metodes, maar niemand het heeltemal wat ek wou. Sy miskien nie die mees elegante kode, maar dit kry die werk gedoen. Hoop dit help iemand. 'N iteratiewe vorm van Euclids algoritme word gebruik om die ggd vind. ltphp funksie dec2frac (desimale) desimaal (string) desimale num den 1 Desember valse // vind minste verminder fraksionele vorm van nommer vir (i 0. ix StrLen (desimale) Ek LT ix i) // bou die deler soos ons verskuif die desimale na regs indien (Desember) den 10 // vind die desimale plek / bou die Numberator as (desimale.) Desember ware anders num. desimale num (Int) num // heelgetal, net stuur dit as (den 1) terugkeer num num2 num den2 den rem 1 // Euclids Algoritme (om die ggd vind), terwyl (num2 den2) rem num2 den2 num2 den2 den2 rem as (den2 den) rem den2 // nou rem hou die ggd van die teller en die noemer van ons fraksie terugkeer (NUM / rem). /. (Den / rem) GT Voorbeelde: eggo dec2frac (10) eggo dec2frac (0,5) eggo dec2frac (5.25) eggo dec2frac (0,333333333) Neem asseblief kennis dat die kortste is nie altyd beter nie (wat beteken dat baie kort fakulteit implementering hierbo). In my opinie, 'n duideliker manier om hierdie kode is, insluitend 'n tjek vir negatiewe of nie-heelgetalwaardes. Met die oog op die fakulteit van 'n positiewe heelgetal bereken, 'n iteratiewe wyse (wat moeiliker om te verstaan ​​dalk) is gewoonlik 'n bietjie vinniger, maar ek dit met behulp van slegs vir klein waardes en daarom is dit nie regtig vir my belangrik: // Bereken die Fakulteit 'n positiewe int-waarde-funksie iFaculty (aiFac) indien (aiFac GT 0) terugkeer aiFac hierdie - gt iFaculty (aiFac - 1) elseif (aiFac 0) terugkeer 1 anders terugkeer 0 // Verkeerde argument GT Ive ook 'n ander funksie geskryf bereken die binomiaal-koëffisiënt van 2 waardes, didnt ek dit vind nog oral so ek hoop dit kan help om iemand (werk goed met die genoemde fakulteit-funksie en gereed om gebruik te word in jou eie klasse) // word bereken dat die binomiaal-koëffisiënt N oor k van 2 positiewe int waardes // vir N GT k funksie iBinCoeff (. Ain AIK) // die binomiaal-koëffisiënt word gedefinieer as N / (nk) k terug hierdie - gt iFaculty (Ain) / (hierdie - gt iFaculty (Ain - AIK) hierdie - gt iFaculty (AIK)) Soms moet 'n gebruiker 'n aantal betree in 'n vorm. Hierdie funksie omskakel breuke na desimale en laat desimale onaangeraak. Natuurlik, kan wens om die finale uitset rond, maar dit is nie hier ingesluit. ltphp / Sommige voorbeeld waardes van QQ 2,5 V 2 1/2 k 5/2 / funksie DeciCon (Q) // kyk vir 'n ruimte om aan te dui 'n hele aantal met 'n fraksie indien (strstr (q.)) wa strrev (Q) WB strrev (strstr (wa.)) geheel ware // dit is 'n hele aantal // nou gaan die fraksie deel as (strstr (q. /)) if (geheel ware) Q strstr (q.) b strreplace (/. . strstr (q. /)) // dit is die deler // isoleer die teller c strrev (Q) d strstr (c. /) e strrev (d) 'n strreplace (/.. e) // die pre-finale teller as (geheel ware) aa (WB b) // nuwe teller heelgetal vermenigvuldig met deler plus oorspronklike teller QA / b // dit is nou eindelik jou desimale terugkeer Q anders terugkeer Q // nie 'n fraksie, net die standaard van die desimale GT As jy nodig het om te gaan met poolkoördinate vir somereason jy sal nodig hê om te skakel na en van x, y vir toevoer en afvoer in die meeste situasies: hier is 'n paar funksies te Cartesiese skakel na polêre en polêre om Cartesiese Dit // terug verskeidenheid van r, theta in die reeks van 0-2pi (in radiale) funksie rect2polar (x, y) as (isnumeric (x) ampampisnumeric (y)) rsqrt (POW (x, 2) pow (y, 2)) if (x0 ) As (ygt0) thetapi () / 2 anders theta3pi () / 2 anders as (xlt0) thetaatan (j / x) pi () anders as (ylt0) thetaatan (j / x) 2pi () anders thetaatan (j / x ) polararray (rgtr, thetagttheta) terugkeer pool anders return false // r moet wees in radiale, terug verskeidenheid van x, y funksie polar2rect (r, theta) indien (isnumeric (r) ampampisnumeric (THETA)) xrcos (THETA) yrsin ( theta) rectarray (xgtx, ygty) anders valse GT terugkeer Hier is 'n nPr en 'n NPC funksie (moes NaN definieer - dont weet, hoe om dit te die rigth manier) ltphp definieer (NaN. Inligting en veiligheid (1.01)) funksie nCr (N r) as (r GT n) terugkeer NaN as ((N -. r) Dit r) terugkeer nCr (N, (N - r)) terugkeer 1 vir (i 0 i LT ri ) terugkeer (N - i) / (i 1) terugkeer terugkeer funksie nPr (N r) as (r GT n) terugkeer NaN as (r) terugkeer N (nPr (N -. 1. r - 1)) anders terugkeer 1 GT Tims fix van Evans ordinale funksie veroorsaak nog 'n probleem is, is dit nie meer werk vir bostaande 100. (Bv dit terug 111 in plaas van 111de). Hier is 'n verdere aangepaste weergawe wat moet werk vir alle getalle. funksie ordinale (kardinale) kardinale (Int) kardinale syfer substr (kardinale -. 1. 1) indien (kardinale LT 100) tien ronde (kardinale / 10) anders tien substr (kardinale -. 2. 1) indien (tien 1) terugkeer kardinale. ste skakelaar (syfer) geval 1: terugkeer kardinale. ST geval 2: terugkeer kardinale. de geval 3: terugkeer kardinale. RD verstek: terugkeer kardinale. ste GT 'n funksie wat die som operateur simuleer. (En. wikipedia. org/wiki/Sum). Wees versigtig met die uitdrukking, want dit 'n sekuriteits risiko noot kan veroorsaak dat die aanhalingstekens om dit nie ontleed die. ltphp param string Expr uitdrukking te evalueer (bv (2x) 21) param string var dummy veranderlike (byvoorbeeld x) param heelgetal begin param heelgetal einde param heelgetal stap funksie som (Expr. var. begin. end. Stap 1) Expr strreplace (.. Expr) var strreplace (.. var) begin (Int) begin end (Int) einde stap (Int) stap som 0 vir (i begin ek lt eindig II stap) Expr strreplace (. var. Ek. Expr) eval gevolg. Expr. terugkeer gevolg gevolg eval (eval) indien (lei ONWAAR) terugkeer sintaksfout. Expr som gevolg terugkeer (Int) som GT Vir mense belangstelling in Differensiaalvergelykings, Ive gedoen 'n funksie wat 'n string soos ontvang: x2x3 en sit dit in 2x3x2 heks is die differantial van die vorige vergelyking. In die kode daar een ding ontbreek: die string word dikwels gaan outOfBound (geïnitialiseerd string verreken: 6 in.) As jou fout instelling het 'n bietjie te hoog. Ek dont weet net hoe om dit op te los. Daar is dus die kode vir differensiaalvergelyking met (en -) net: Dit funksie differentiel (vergelykings) vergelykings strtolower (vergelykings) eggo Vergelyking de: Gaan heen. equa. ltbrgt finale Ek weet dit is nie optimaal, maar ive gedoen vinnige :) As julle het geen kommentaar net e-pos my. Ek wil ook hierdie fonction In C doen om dalk binnekort phpCore voeg. Patoff Hier nog 'n funksie grootste gemene deler (GCD), 'n reeeeally klein een. funksie ggd (N, m) as (m) returnnreturn ggd (m, nm) Dit werk deur die rekursie. Nie seker oor sy spoed, maar sy werklik klein Dit sal nie werk op drywende punt getalle akkuraat though. As jy 'n drywende punt een wil, moet jy ten minste PHP 4 het, en die kode sal funksioneer ggd (N, m) indien (m) returnnreturn ggd (m, FMOD (N, m)) vir diegene op soek na 'n wees kredietkaart verifikasie funksie Ek het 'n eenvoudige LUHN Formule algoritme: numOfDigits 0 - StrLen (ccNumber) I - 1 terwyl (i GT numOfDigits) as ((i 2) 0) dubbel 2 (.. substr (ccNumber i 1)) totale substr (. dubbel 0. 1) indien (StrLen (dubbel GT 1)) totale substr anders totale substr (ccNumber i 1..) Ek (dubbel 1. 1.) - Toe te voeg tot dit wat Cornelius het, het ek geskrywe n funksie wat sal 'n verskeidenheid van getalle neem en terug te keer die kleinste gemene veelvoud van hulle: funksie lcmarr (items) // Input: 'n verskeidenheid van uitvoergetalle //: die KGV van die nommers, terwyl (2 lt telling (items)) arraypush (items , LCM (arrayshift (items), arrayshift (items))) terugkeer herstel (items) // Sy kode hieronder met s bygevoeg vir VARs funksie ggd (N, m) nabs (N) mabs (m) indien (n0 en M0) terug 1 // vermy oneindige rekursie as (nm en ngt1) terugkeer N terugkeer mltngcd (nm, N): ggd (N, mn) funksie LCM (N, m) terugkeer m (N / ggd (N, m)) In Evans ordinale funksie, die lyn: ltphp tien substr (kardinale. - 2. 1) GT vervang moet word deur: ltphp tien ronde (kardinale / 10) GT of soortgelyke. Ten minste op PHP 4.3.10, substr (1, -2, 1) gee terug 1 - sodat Evans funksie gee 1Th, asook 11de. Dit is strydig met die dokumentasie, maar is bekend in die kommentaar op die substr handleiding bladsy. 'N bietjie meer ingewikkeld, maar baie meer akkurate cardinalgtordinal funksie (die een hieronder nie die geval is verantwoordelik vir 11, 12 en 13, wat dit nie volg die gewone reëls): funksie ordinale (kardinale) kardinale (Int) kardinale syfer substr (kardinale - 1.. 1) tien substr (kardinale -. 2. 1) indien (tien 1) terugkeer kardinale. ste skakelaar (syfer) geval 1: terugkeer kardinale. ST geval 2: terugkeer kardinale. de geval 3: terugkeer kardinale. RD verstek: terugkeer kardinale. ste Die rede word die bis EN (amp) operateur werk om vas te stel of 'n aantal is vreemd of selfs omdat onewe getalle uitgedruk in binêre altyd die regterkantste (20) bietjie 1 en ewe getalle het altyd die 20 bit 0. So as jy doen 'n 1 amp num, sal dit terugkeer nul as die getal is selfs (sedert xxxxxxx0 die ewe getal in binêre en 00.000.001 die 1) deel enige stukkies hoef, en sal terugkeer 1 as die nommer is vreemd (xxxxxx1 en 000001). 'n slim manier van dinge doen, maar NUM 2 sal werk as Wel, ek dink :). Danksy Chronial by cyberpunkuniverse. de, kon ek die binompdf (N, P, K) funksie te skep. ltphp funksie nCr (N k.) As (k GT n) terugkeer NaN as ((N - k) Dit k) terugkeer nCr (N (N -. k)) terugkeer 1 vir (i 0 i LT ki) terugkeer (N - i) / (i 1) terugkeer terugkeer funksie binompdf (NP k) terugkeer nCr (N k) pow (bl k) pow ((1 -.. p), (n - k)) terugkeer terugkeer GT Ek het gevind dat wanneer hantering van tafels, 'n kleinste gemene veelvoud funksie is soms nuttig vir die misbruik van tablespan en dies meer. So hier gaan (jy kan kies om die eerste deel van die ggd funksie te verwyder indien die funksie oproep goed gedra): ltphp funksie ggd (N m.) // Grootste gemene deler N ABS (N) m ABS (m) indien (N 0 en m 0) terugkeer 1 // vermy oneindige rekursie as (nm en N GT 1) terugkeer N terugkeer m LT N. ggd (. N - m N): ggd (. N m - N) funksie LCM (. N m) // kleinste gemene veelvoud terugkeer m (. N / ggd (N m)) GT Dit mag of mag nie iets te wees oorweeg toe te voeg tot die wiskundige funksie biblioteek.


No comments:

Post a Comment