Zipline 0.5.7 A backtester vir finansiële algoritmes. Zipline Zipline is 'n Pythonic algoritmiese handel biblioteek. Die stelsel is fundamenteel gebeurtenis gedrewe en 'n beslote aanpassing van hoe lewendige-handel stelsels te bedryf. Op die oomblik is back testing goed ondersteun, maar die bedoeling is om die biblioteek vir beide papier en lewendige handel te ontwikkel, sodat dieselfde logika wat gebruik word vir back testing kan toegepas word op die mark. Zipline word tans gebruik in die produksie as die back testing enjin brandstof Quantopian (www. quantopian) 'n vrye, gemeenskapsgesentreerde platform wat ontwikkeling en real-time back testing van handel algoritmes in die webblaaier laat. Bespreking en Hulp Kenmerke Maklik om te gebruik: Zipline probeer uit jou pad te kry sodat jy kan fokus op algoritme ontwikkeling. Kyk hieronder vir 'n kode voorbeeld. Zipline kom batterye ingesluit soveel algemene statistieke soos bewegende gemiddelde en lineêre regressie kan maklik verkry word vanaf binne 'n gebruiker geskryf algoritme. Insette van historiese data en uitset van prestasie statistieke is gebaseer op Pandas DataFrames om mooi te integreer in die bestaande Python eko-stelsel. Statistiek en masjienleer biblioteke soos matplotlib, Scipy, statsmodels, en sklearn ondersteuning ontwikkeling, analise en visualisering van state-of-the-art handel stelsels. Installasie Sedert Zipline is suiwer-luislang-kode moet baie maklik om te installeer en opstel met pit wees: pit installeer Zipline As daar probleme is die installering van die afhanklikhede of Zipline ons beveel die installering van hierdie pakkette via 'n ander manier. Vir Windows, die Enthought Python verspreiding sluit die meeste van die nodige afhanklikhede. Op OSX, die Scipy Superpack werk baie goed. Afhanklikhede Snel Start Die volgende kode implementeer 'n eenvoudige dubbele bewegende gemiddelde algoritme en toetse dit op data uit yahoo finansies. Jy kan ander voorbeelde in die Zipline / voorbeelde gids vind. Bydraes Krediete Dankie vir al die hulp tot dusver rday vir Sortino verhouding, inligting verhouding, en eksponensiële bewegende gemiddelde transformeer snth yinhm vir die integrasie van Zipline met yinhm / datafeed Jeremia Lowin vir die onderrig van ons die nuanses van Sharpe en Sortino Verhoudings Brian Cappello Quantopian Team (waarskuwing ons as weve inadvertantly gemis lys wat jy hier) Style Guide om te verseker dat veranderinge en kolle is gefokus op die gedrag veranderinge, die Zipline kodebasis voldoen aan beide PEP-8, www. python. org/dev/peps/pep-0008/. en pyflakes, Launchpad / pyflakes /. Die onderhouers check die kode gebruik van die flake8 script, GitHub / bmcustodio / flake8. wat ingesluit is in die requirementsdev. txt. Voor die indiening van kolle of trek versoeke, maak asseblief seker dat jou veranderinge slaag flake8 Zipline toetse SourceI het 'n verskeidenheid van datums en 'n meting op elk van dié datums. ID graag 'n eksponensiële bewegende gemiddelde te bereken vir elk van die datums. Het enige iemand weet hoe om nuwe te doen hierdie Im om luislang. Dit nie die geval blyk dat gemiddeldes is gebou in die standaard Python biblioteek, wat lyk my as 'n bietjie vreemd. Miskien Im nie op soek in die regte plek. So, gegewe die volgende kode, hoe kon ek bereken die bewegende geweegde gemiddelde van IK-punte vir kalender datums (Theres waarskynlik 'n beter manier om die datastruktuur, enige raad sal waardeer word) vra 28 Januarie 09 by 18:01 My luislang is 'n bietjie verroes (enigiemand kan vry om hierdie kode korreksies aan te bring, indien Ive opgemors die sintaksis een of ander manier te wysig voel), maar hier gaan. Hierdie funksie beweeg agtertoe, van die einde van die lys van die begin af, die berekening van die eksponensiële bewegende gemiddelde vir elke waarde deur agteruit te werk totdat die gewig koëffisiënt vir 'n element minder as die gegewe Epsilon is. Aan die einde van die funksie, dit keer die waardes voordat hy terugkeer die lys (sodat hulle is in die korrekte volgorde vir die oproeper). (Kant nota: As ek met behulp van 'n ander as Python taal, Id skep 'n volle grootte leë reeks eerste en dan vul dit agtertoe-orde, sodat ek wouldnt het om dit te keer aan die einde, maar ek dont dink jy kan verklaar. 'n groot leë reeks in python. En in Python lyste, aanbring is baie goedkoper as prepending, wat is die rede waarom ek die lys in omgekeerde volgorde gebou. korrigeer my as Im verkeerd.) die Alpha argument is die verval faktor op elke iterasie. Byvoorbeeld, as jy 'n alfa van 0,5 gebruik, dan vandag se bewegende gemiddelde waarde sal bestaan uit die volgende geweegde waardes: Natuurlik, as jy het 'n groot verskeidenheid van waardes, die waardes van tien of vyftien dae gelede gewoond bydra baie om vandag se geweegde gemiddelde. Die epsilon argument kan jy 'n afgesnyde punt, onder wie jy sal ophou om te bekommer oor ou waardes (sedert hul bydrae tot vandag waarde gering sal wees) stel. Youd roep die funksie iets soos hierdie: geantwoord 28 Januarie 09 by 18:46 Ek dont weet Python, maar vir die gemiddelde deel, bedoel jy 'n eksponensieel verrottende laaglaatfilter van die vorm waar alfa dt / TLU, dt die tyd stap van die filter, TLU die tydkonstante van die filter (die veranderlike-tyd stap vorm van hierdie is soos volg, net clip dt / TLU om nie meer as 1.0) as jy iets soos 'n datum filter, maak seker dat jy om te skakel na 'n swaai-punt hoeveelheid soos sekondes sedert 1 Januarie 1970.Lets sê ek het 'n lys: Ek wil 'n funksie wat die bewegende n-dag gemiddeld bereken skep. So as N was 5, sou ek wil my kode vir die eerste 1-5 te bereken, voeg dit en vind die gemiddelde, wat sou wees 3.0, dan gaan op 2-6, bereken die gemiddelde, wat sou wees 4.0, dan 3 -7, 4-8, 5-9, 6-10. Ek dont wil die eerste N-1 dae bereken, so vanaf die nde dag, itll reken die vorige dae. Dit lyk of druk wat ek wil: Ek het egter nie weet hoe om die getalle te bereken in die lyste. Enige idees gevra 14 Februarie 13 aan 21:05 Terwyl ek graag Martijns antwoord op hierdie, soos George, het ek gewonder of dit vinniger deur die gebruik van 'n lopende opsomming plaas van die toepassing van die som () oor en oor weer op meestal dieselfde nommers wouldnt wees . Ook die idee van 'Geen waardes as verstek in die oprit fase is interessant. Om die waarheid te kan daar baie verskillende scenario's kan 'n mens swanger vir bewegende gemiddeldes wees. Kom ons verdeel die berekening van gemiddeldes in drie fases: oprit: Begin iterasies waar die huidige iterasie Telling Dit venster grootte bestendige vordering: Ons het presies venster grootte aantal elemente beskikbaar om te bereken 'n normale gemiddelde: som (xiterationcounter-windowsize: iterationcounter) / windowsize Ramp Down: Aan die einde van die insette data, kan ons 'n ander windowsize terugkeer - 1 gemiddelde getalle. Hier is 'n funksie wat Arbitrêre iterables (kragopwekkers is fyn) as insette vir data Arbitrêre venster aanvaar groottes 1 Parameters om aan te skakel / af produksie van waardes tydens die fases vir oprit / Down Terugbel funksies vir diegene fases te bepaal hoe waardes geproduseer. Dit kan gebruik word om voortdurend te voorsien 'n standaard (bv Geen) of gedeeltelike gemiddeldes Dit lyk na 'n bietjie vinniger as Martijns weergawe bied - wat is veel meer elegant, al is. Hier is die toets-kode: Die oorspronklike vraag kan nou opgelos word met hierdie funksie oproep: geantwoord 18 Februarie 13 aan 18:15 Gebruik die som en kaart funksies. Die kaart funksie in Python 3 is basies 'n lui weergawe van hierdie: Ek is seker jy kan raai wat die som funksie doen. antwoord 14 Februarie 13 aan 21:07 'n benadering wat vermy Herbereken intermediêre somme .. maak dat lopies (int (v)). dan. repr (runsumlistk - runsumlistk-5) / 5) As jy mier getalle rondom te voer 'n snare .. Alt sonder die globale: seker wees om drywende wiskunde, selfs as jy insetwaardes heelgetalle antwoord 14 Februarie 13 aan 22:04 Voorwaar 'n doen hardloop som algoritme is vinniger. I39ve gepos 'n antwoord te bewys jou punt. There39s net geen behoefte aan 'n globale veranderlike hier. â € CFI 18 Februarie 13 aan 18:16 reg jy is, ek was te hard probeer om 'n eksplisiete aviod vir lus. â € agentp 19 Februarie 13 by 18:37 Jou Antwoord 2016 stapel Exchange, Inczipline 0.6.0 A backtester vir finansiële algoritmes. Zipline Zipline is 'n Pythonic algoritmiese handel biblioteek. Die stelsel is fundamenteel gebeurtenis gedrewe en 'n beslote aanpassing van hoe lewendige-handel stelsels te bedryf. Op die oomblik is back testing goed ondersteun, maar die bedoeling is om die biblioteek vir beide papier en lewendige handel te ontwikkel, sodat dieselfde logika wat gebruik word vir back testing kan toegepas word op die mark. Zipline word tans gebruik in die produksie as die back testing enjin brandstof Quantopian (www. quantopian) 'n vrye, gemeenskapsgesentreerde platform wat ontwikkeling en real-time back testing van handel algoritmes in die webblaaier laat. Bespreking en Hulp Kenmerke Maklik om te gebruik: Zipline probeer uit jou pad te kry sodat jy kan fokus op algoritme ontwikkeling. Kyk hieronder vir 'n kode voorbeeld. Zipline kom batterye ingesluit soveel algemene statistieke soos bewegende gemiddelde en lineêre regressie kan maklik verkry word vanaf binne 'n gebruiker geskryf algoritme. Insette van historiese data en uitset van prestasie statistieke is gebaseer op Pandas DataFrames om mooi te integreer in die bestaande Python eko-stelsel. Statistiek en masjienleer biblioteke soos matplotlib, Scipy, statsmodels, en sklearn ondersteuning ontwikkeling, analise en visualisering van state-of-the-art handel stelsels. Installasie Sedert Zipline is suiwer-luislang-kode moet baie maklik om te installeer en opstel met pit wees: As daar probleme is die installering van die afhanklikhede of Zipline ons beveel die installering van hierdie pakkette via 'n ander manier. Vir Windows, die Enthought Python verspreiding sluit die meeste van die nodige afhanklikhede. Op OSX, die Scipy Superpack werk baie goed. Afhanklikhede Snel Start Die volgende kode implementeer 'n eenvoudige dubbele bewegende gemiddelde algoritme en toetse dit op data uit yahoo finansies. Jy kan ander voorbeelde in die Zipline / voorbeelde gids vind. Bydraes Krediete Dankie vir al die hulp tot dusver rday vir Sortino verhouding, inligting verhouding, en eksponensiële bewegende gemiddelde transformeer snth yinhm vir die integrasie van Zipline met yinhm / datafeed Jeremia Lowin vir die onderrig van ons die nuanses van Sharpe en Sortino Verhoudings Brian Cappello verdverm (Tony wurm ), Orde tipes (stop, limiet) benmccann vir benchmarking bydraes Quantopian Team (waarsku ons as weve inadvertantly gemis lys wat jy hier) Development Environment Die volgende riglyn aanvaar jou stelsel het virtualenvwrapper en neut reeds geïnstalleer. Jy sal moet 'n paar C biblioteek afhanklikhede te installeer: Voorgestelde installasie van 'n afgestorwene biblioteek afhanklikhede gebruik vir ontwikkeling: Style Guide Om te verseker dat veranderinge en kolle is gefokus op die gedrag veranderinge, die Zipline kodebasis voldoen aan beide PEP-8, www. python. org/dev / EPP's / Pep-0008 /. en pyflakes, Launchpad / pyflakes /. Die onderhouers check die kode gebruik van die flake8 script, GitHub / bmcustodio / flake8. wat ingesluit is in die requirementsdev. txt. Voor die indiening van kolle of trek versoeke, maak asseblief seker dat jou veranderinge slaag flake8 Zipline toetse en nosetests SourceMoving Gemiddelde Hierdie voorbeeld leer jy hoe om die bewegende gemiddelde van 'n tydreeks in Excel te bereken. 'N bewegende avearge gebruik te stryk onreëlmatighede (pieke en dale) om maklik tendense herken. 1. In die eerste plek kan 'n blik op ons tyd reeks. 2. Klik op die blad Data, kliek Data-analise. Nota: cant vind die Data-analise knoppie Klik hier om die analise ToolPak add-in te laai. 3. Kies bewegende gemiddelde en klik op OK. 4. Klik op die insette Range boks en kies die reeks B2: M2. 5. Klik op die boks interval en tik 6. 6. Klik in die uitset Range boks en kies sel B3. 8. Teken 'n grafiek van hierdie waardes. Verduideliking: omdat ons die interval stel om 6, die bewegende gemiddelde is die gemiddeld van die vorige 5 datapunte en die huidige data punt. As gevolg hiervan, is pieke en dale stryk uit. Die grafiek toon 'n toenemende tendens. Excel kan nie bereken die bewegende gemiddelde vir die eerste 5 datapunte, want daar is nie genoeg vorige datapunte. 9. Herhaal stappe 2 tot 8 vir interval 2 en interval 4. Gevolgtrekking: Hoe groter die interval, hoe meer die pieke en dale is glad nie. Hoe kleiner die interval, hoe nader die bewegende gemiddeldes is om die werklike data punte. Hou jy van hierdie gratis webwerf Deel asseblief hierdie bladsy op Google
No comments:
Post a Comment