Saturday, October 29, 2016

Python Forex Back Testing

Python Algorithmic Trading Biblioteek PyAlgoTrade is 'n Python Algorithmic Trading Biblioteek met die klem op back testing en ondersteuning vir papier-handel en leef-handel. Kom ons sê jy het 'n idee vir 'n handel strategie en youd graag om dit te evalueer met historiese data en sien hoe dit optree. PyAlgoTrade kan jy om dit te doen met 'n minimale inspanning. Belangrikste kenmerke volledig gedokumenteer. Gebeurtenis gedrewe. Ondersteun Market, perk, Stop en StopLimit bestellings. Ondersteun Yahoo Finansies, Google Finansies en NinjaTrader CSV lêers. Ondersteun enige soort tydreeksdata in CSV formaat, byvoorbeeld Quandl. Bitcoin ondersteuning handel deur Bitstamp. Tegniese aanwysers en filters soos SMA, WMA, EMO, RSI, Bollinger Bands, Hurst eksponent en ander. Prestasie statistieke soos Sharpe verhouding en drawdown ontleding. Hantering Twitter gebeure in realtime. Event profiler. TA-Lib integrasie. Scalable Baie maklik om te horisontaal skaal, dit wil sê die gebruik van een of meer rekenaars om 'n strategie backtest. Gratis PyAlgoTrade is gratis, open source, en dit onder die volgende lisensie Apache-lisensie, weergawe 2.0.Institutional-klas data bestuur / back testing / strategie ontplooiing oplossing: - aandele, opsies, futures, geldeenhede, mandjies en persoonlike sintetiese instrumente word ondersteun - verskeie lae latency data feeds ondersteun (verwerking spoed in miljoene boodskappe per sekonde op terabyte van data) - C en based strategie back testing en optimalisering - uitvoering verskeie makelaars ondersteun, handel seine omskep in FIX bestellings QuantFACTORY - Institusionele-klas data bestuur / back testing / strategie ontplooiing oplossing: - QuantDEVELOPER - raamwerk en IDE vir handel strategieë ontwikkeling, ontfouting, back testing en optimalisering, beskikbaar as 'n Visual Studio plug-in - QuantDATACENTER - dit moontlik maak om 'n historiese datapakhuis te bestuur en te vang real-time of ultra lae data latency mark uit verskaffers en handel - QuantENGINE - dit moontlik maak om te sit en uit te voer compileerde strategieë - multi-bate, multi-tydperk lae latency data, verskeie makelaars ondersteun Institusionele-klas data bestuur / back testing / strategie ontplooiing oplossing: - OpenQuant - C en Visual portefeulje vlak stelsel back testing en handel, multi-bate, intraday vlak toets, optimalisering, WfA ens verskeie makelaars en data feeds ondersteun - QuantTrader - produksie handelsomgewing - QuantBase - gesentraliseerde data bestuur - QuantRouter - data en orde routing Institusionele-klas data bestuur / back testing / strategie ontplooiing oplossing: - multi-bate oplossing, verskeie data feeds ondersteun, databasis ondersteun enige tipe RDBMS verskaffing van 'n JDBC koppelvlak, bv Oracle, Microsoft SQL Server, Sybase, MySQL ens - kan kliënte IO hul strategie te gebruik om script in óf Java, Ruby of Python, of hulle kan hul eie strategie IDE gebruik - verskeie makelaars uitvoering ondersteun, handel seine omskep in FIX bestellings Institutional - klas databestuur / back testing / strategie ontplooiing oplossing: - multi-bate oplossing (forex, opsies, futures, voorrade, ETF, kommoditeite, sintetiese instrumente en persoonlike afgeleide versprei ens), verskeie data feeds ondersteun - raamwerk vir ontwikkeling handel strategieë, ontfouting , back testing en optimalisering - verskeie makelaars uitvoering ondersteun, handel seine omskep in FIX bestellings (IB, JPMorgan, FXCM ens) Toegewyde sagteware platform geïntegreer met Tradestations data vir back testing en motor-beurs: - daaglikse intraday data (Amerikaanse aandele vir 43years, futures vir 61 jaar) - prakties vir back testing prys gebaseer seine (tegniese ontleding), ondersteuning vir EasyLanguage programmeertaal - ondersteun Amerikaanse aandele ETF, termynkontrakte, Amerikaanse indekse, Duitse voorrade, Duits indekse, forex - gratis vir TradeStation makelaars kliënte - 249,95 maandelikse vir nie - professionals (net TradeStation sagteware platform, sonder makelaars) - 299,95 maandeliks vir professionele mense (net TradeStation sagteware platform, sonder makelaars) Toegewyde sagteware platform vir back testing en motor-beurs: - daaglikse ondersteun / intraday strategieë, portefeulje vlak toets en optimalisering, kartering, visualisering, persoonlike verslagdoening, multi-threaded ontleding, 3D kartering, WfA ontleding ens - die beste vir back testing prys gebaseer seine (tegniese ontleding) - direkte skakel na eSignal, Interaktiewe Brokers, IQFeed, myTrack, Fast Track, QP2, TC2000, enige DDE voldoen voer, MS, txtfiles en meer (Yahoo Finansies. ) - N eenmalige fooi 279 vir Standard uitgawe of 339 vir Professionele uitgawe Toegewyde sagteware platform vir back testing en motor-beurs: - portefeulje vlak stelsel back testing en handel, multi-bate, intraday vlak toets, optimalisering, visualisering ens - laat R integrasie, Auto-beurs in Perl script taal met al onderliggende funksies geskryf in inheemse C, wat voorberei is vir die bediener mede-plek - moedertaal FXCM en Interaktiewe Brokers ondersteuning - gratis FXCM ondersteuning, 100 per maand vir IB platform, kontak Salesseertrading vir ander opsies Toegewyde sagteware platform vir back testing en motor-beurs: - ondersteun daaglikse / intraday strategieë, portefeulje vlak toets en optimalisering - die beste vir back testing prys gebaseer seine (tegniese ontleding), C script - sagteware uitbreidings ondersteun - data feeds hantering, strategie uitvoering ens - 799 per lisensie, 150 jaarlikse fooi nadat Toegewyde sagteware platform vir back testing, optimalisering, prestasie toeskrywing en analytics: - Axioma of 3de party data - faktorontleding, risiko modellering, marksiklus ontleding Toegewyde sagteware platform vir back testing en motor-beurs: - die beste vir back testing prys gebaseer seine (tegniese ontleding), ondersteun daaglikse / intraday strategieë, portefeulje vlak toets en optimalisering - skilpad Edition - back testing enjin, grafieke, verslae, EOD toets - Professional Edition - plus stelsel redakteur, loop vorentoe ontleding, intraday strategieë, multi-threaded toets ens - Pro plus Edition - plus 3D oppervlak kaarte, script ens - Bouwer Edition - IB API, debugger ens - skilpad Edition 990 - Professional Edition 1990 - Pro plus Edition 2990 - Bouwer Edition 3990 Toegewyde sagteware platform vir back testing en motor-beurs: - daaglikse ondersteun / intraday strategieë, portefeulje vlak toets en optimalisering, kartering, visualisering, persoonlike verslagdoening ens - die beste vir back testing prys gebaseer seine (tegniese ontleding) - direkte skakel na Interaktiewe Brokers, MB Trading, TD Ameritrade, FXCM en ander - data van teks lêers, eSignal, Google Finansies, Yahoo Finansies, IQFeed en ander - basiese funksies (EOD funksies) - gratis - gevorderde funksies - huurkontrak van 50 / maand of 995 leeftyd lisensie Toegewyde sagteware platform vir back testing en motor-beurs: - die beste vir back testing prys gebaseer seine (tegniese ontleding), daaglikse ondersteun / intraday strategieë, portefeulje vlak toets en optimalisering, kartering, visualisering, persoonlike verslagdoening - ondersteun C en Visual Basic - direkte skakel na Interaktiewe Brokers, IQFeed, txtfiles en meer (Yahoo Finansies. ) - Permanente lisensie - 499 - huurkontrak 50 per maand Toegewyde sagteware platform vir back testing en motor-beurs: - daaglikse ondersteun / intraday strategieë, portefeulje vlak toets en optimalisering, kartering, visualisering, persoonlike verslagdoening - tegniese en ook fundamentele seine, multi-bate ondersteuning - 245 vir gevorderde weergawe (gratis dataverskaffers) - 595 vir premium-weergawe (ondersteuning veelvuldige data verskaffers en makelaars) Toegewyde sagteware platform vir back testing en motor-beurs: - daaglikse ondersteun / intraday strategieë, portefeulje vlak toets en optimalisering - die beste vir back testing prys gebaseer seine (tegniese ontleding) - bou-in data vir aandele, termynkontrakte en forex (daaglikse Amerikaanse aandele van 1990, daaglikse termynmark 31 jaar, forex vanaf 1983 ens) - pryse van 45 / maand tot 295 / maand (prys hang af van data beskikbaarheid) Toegewyde sagteware platform vir back testing en motor-beurs: - gebruik MQL4 taal, hoofsaaklik gebruik om forex mark handel te dryf - ondersteun deur verskeie forex makelaars en data feeds - ondersteun die bestuur van verskeie rekeninge Toegewyde sagteware platform vir back testing en motor-beurs: - ondersteun daaglikse / intraday strategieë, portefeulje vlak toets en optimalisering - die beste vir back testing prys gebaseer seine (tegniese ontleding), ondersteuning vir EasyLanguage programmeertaal - ondersteun verskeie data bronne (Bloomberg, Thomson Reuters, CSI, CQG, eSignal ens), direkte ondersteuning vir verskeie makelaars (Interaktiewe Brokers ens) - Multicharts 797 per jaar - Multicharts leeftyd 1497 - Multicharts Pro 9900 (Bloomberg Thomson Reuters data voer ens) Web-gebaseerde back testing hulpmiddel om te toets voorraad pluk strategieë: - Amerikaanse voorrade ETF (daagliks) - punt - in-time fundamentele data sedert 1999 - lank / kort strategieë, pryse / grondbeginsels gedryf seine - Designer - 139 / maand - Bestuurder - 199 / maand - volledige funksionaliteit Web-gebaseerde back testing instrument om voorraad pluk strategieë te toets: - Amerikaanse aandele (daagliks) - punt-in-time fundamentele data sedert 1988 - pryse / grondbeginsels gedryf seine - Strategist - 995 / jaar (data sedert 2000, 10 gered portefeuljes) - Bestuurder - 1995 / jaar - (volledige funksies, data sedert 1988, 50 gered portefeuljes) Web gebaseer back testing instrument: - Amerikaanse aandele pryse (daagliks / intraday), sedert 1998, data van QuantQuote - forex data van FXCM - ondersteun Trader Interaktiewe Brokers vir live handel Web-gebaseerde back testing instrument: - Amerikaanse voorrade en ETF pryse (daagliks / intraday), sedert 2002 - fundamentele data van Morningstar (meer as 600 metrieke) - ondersteun Interaktiewe Brokers vir live handel Web-gebaseerde back testing gereedskap: - maklik om te gebruik, batetoewysing strategieë, data sedert 1992 - tydreekse momentum en bewegende gemiddelde strategieë op ETF - eenvoudige momentum en eenvoudige Waarde voorraad-pluk strategieë Web-gebaseerde back testing instrument: - tot 25 jaar data vir 49 Futures en SP500 aandele - toolbox in Python en Matlab - Quantiacs gasheer algoritmiese handel kompetisies met beleggings wissel van 500k tot 1 miljoen Web-gebaseerde back testing instrument om aandele te toets faktor pluk en batetoewysing strategieë: - verskeie aandele faktore met bewese alfa oor mark-cap maatstawwe, verskeie belegging heelal, risikobestuur filters - batetoewysing strategieë backtests, meng batetoewysing en faktor pluk in 'n portefeulje - gratis op SP 100 heelal - 50 / maand of 480 / jaar - breër Amerikaanse beleggingsbank heelalle, die Verenigde Koninkryk EU voorrade, batetoewysing strategieë MATLAB - hoëvlaktaal en interaktiewe omgewing vir statistiese rekenaar - en grafiese: - parallel en GPU rekenaar, back testing en optimalisering, uitgebreide moontlikhede van integrasie ens - prys op aanvraag by hier Gratis sagteware omgewing vir statistiese rekenaar - en grafiese, 'n baie kwantitatiewe verkies om dit te gebruik vir sy uitsonderlike oop argitektuur en buigsaamheid: - effektiewe data hantering en stoor fasiliteit, grafiese fasiliteite vir data-ontleding, maklik uitgebrei via pakkette - aanbevole uitbreidings - quantstrat, Rmetrics, quantmod, quantlib, PerformanceAnalytics, TTR, portefeulje, portfolioSim, backtest, ens Gratis open source programmeertaal, oop argitektuur, buigbare, maklik uitgebrei via pakkette: - aanbeveel uitbreidings - pandas (Python Data-analise Biblioteek) , pyalgotrade (Python Algorithmic Trading Biblioteek), Zipline, ultrafinance ens BacktestingXL Pro is 'n add-in vir die bou en toets jou handel strategieë in Microsoft Excel 2010 en 2013: - gebruikers kan VBA gebruik om strategieë te bou vir BacktestingXL Pro, VBA kennis opsioneel, gebruikers kan handel reëls op te rig op 'n sigblad gebruik te maak van standaard pre-gemaak back testing kodes - ondersteun pyramiding, kort / lang posisie beperking, kommissie berekening, gelykheid dop, out-of-geld beheer, koop / verkoop opstel - verskeie prestasie / risiko verslae - 74.95 vir BacktestingXL Pro web-gebaseerde back testing instrument: - maklik om te gebruik, intreevlak-web-gebaseerde back testing instrument om relatiewe sterkte en toets bewegende gemiddelde strategieë op ETF - verskillende tipes strategieë vir gratis, volledige back testing funksionaliteit 34,99 maandelikse FactorWave is maklik om te web-gebaseerde back testing instrument te gebruik vir faktor te belê: - kan die gebruiker verskeie ETF / opsies / Futures / ekwiteit faktore meng met bewese alfa oor mark-cap maatstawwe - gratis - ETF / Stock screener met 5 faktore - 149 / mo - gratis opsie opsies screener, futures strategieë, VIX strategieë-web-gebaseerde instrument - gratis Stock Ratings, Seisoene Ontleding, kaarte Fundamentals - gratis freemium model gratis web-gebaseerde back testing instrument om voorraad pluk strategieë te toets: - Amerikaanse voorrade, data van ValueLine van 1986-2014 - prys en fundamentele data, 1700 aandele, maandelikse korrelig testQSForex is 'n oop-bron gebeurtenis gedrewe back testing en live verhandelingsplatform vir gebruik in die buitelandse valuta (Forex) markte, wat tans in 'n alfa staat. Dit is geskep as deel van die Forex Trading Dagboek reeks oor QuantStart om die sistematiese handel gemeenskap te voorsien met 'n robuuste handel enjin wat eenvoudig forex strategie implementering en toetsing laat. Die sagteware word onder 'n permissiewe MIT lisensie (sien onder). Open-source - QSForex is vrygestel onder 'n uiters permissiewe open-source MIT lisensie, wat vol gebruik in beide navorsing en kommersiële toepassings toelaat, sonder beperking, maar met geen waarborg van enige aard hoegenaamd nie. Gratis - QSForex is heeltemal gratis en kos niks om af te laai of te gebruik. Samewerking - As QSForex is open-source baie ontwikkelaars saam om die sagteware te verbeter. Nuwe funksies word dikwels bygevoeg. Enige foute is vinnig bepaal en vasgestel. Software Development - QSForex is geskryf in die Python-programmeertaal vir eenvoudige kruis-platform ondersteuning. QSForex bevat 'n suite van eenheid toetse vir die meerderheid van die berekening kode en nuwe toetse word voortdurend bygevoeg vir nuwe funksies. Gebeurtenis gedrewe Architecture - QSForex is heeltemal gebeurtenis gedrewe beide vir back testing en live handel, wat lei tot eenvoudige oordrag van strategieë van 'n navorsingsprojek / toetsfase om 'n lewendige handel implementering. Transaksiekoste - Smeer kostes word ingesluit by verstek vir alle backtested strategieë. Back testing - QSForex funksies intraday bosluis-resolusie multi-dag multi-geldeenheid paar back testing. Trading - QSForex ondersteun tans live intraday handel met behulp van die site OANDA makelaarsloon API oor 'n portefeulje van pare. Prestasie statistieke - QSForex ondersteun tans basiese prestasiemeting en gelykheid visualisering via die Matplotlib en Seaborn visualisering biblioteke. Installasie en Gebruik 1) Besoek www. oanda / en die opstel van 'n rekening om die API verifikasie geloofsbriewe, wat jy nodig het om uit te voer lewende handel te verkry. Ek verduidelik hoe om dit te uit te voer in hierdie artikel: www. quantstart / artikels / Forex-Trading-Dagboek-1-outomatiese-Forex-Trading-met-die-site OANDA-API. 2) Kloon hierdie git bewaarplek in 'n geskikte plek op jou rekenaar met behulp van die volgende opdrag in jou terminale: git kloon GitHub / mhallsmoore / qsforex. git. Alternatiewe kan jy die zip-lêer van die huidige meester tak op GitHub / mhallsmoore / qsforex / argief / master. zip aflaai. 3) Maak 'n stel van die omgewing veranderlikes vir al die instellings wat in die settings. py lêer in die aansoek hoofdmap. (.) Alternatiewelik kan jy hard jou spesifieke instellings soos deur die vervang van die os. environ. get oproepe vir elke instelling: 4) Skep 'n virtuele omgewing (virtualenv) vir die QSForex kode en gebruik neut om die vereistes te installeer. Byvoorbeeld in 'n Unix-gebaseerde stelsel (Mac of Linux) wat jy dalk so 'n gids skep soos volg deur die invoer van die volgende opdragte in die terminale: sal dit 'n nuwe virtuele omgewing by die pakkette in installeer skep. Veronderstel jy die QSForex git repository afgelaai in 'n voorbeeld gids soos / projekte / qsforex / (verander hierdie gids onder om waar jy QSForex geïnstalleer), dan ten einde die pakkette wat jy sal nodig hê om die volgende opdragte uit te voer installeer: Dit sal 'n paar te neem tyd en wyl Numpy, Scipy, Pandas, Scikit-Leer en Matplotlib moet opgestel. Daar is baie pakkette wat nodig is vir hierdie om te werk, so moet asseblief 'n blik op hierdie twee artikels vir meer inligting: Jy moet ook 'n simboliese skakel vanaf jou webwerf-pakkette gids te skep om jou QSForex installasie gids in staat te wees om 'n beroep invoer qsforex binne die kode. Om dit te doen wat jy sal 'n bevel soortgelyk aan die volgende nodig: Maak seker dat / projekte / qsforex verander om jou installasie gids en /venv/qsforex/lib/python2.7/site-packages/ om jou virtualenv webwerf pakkette gids. Jy sal nou in staat wees om die daaropvolgende opdragte korrek uit te voer. 5) Op hierdie stadium, as jy net wil praktiseer of lewende handel uit te voer, dan kan jy luislang handel / trading. py hardloop. wat sal die verstek TestStrategy handel strategie te gebruik. Dit net koop of verkoop 'n geldeenheid paar elke 5 bosluis. Dit is suiwer vir die toets - gebruik dit nie in 'n lewendige handelsomgewing As jy wil 'n meer bruikbare strategie te skep, dan net 'n nuwe klas met 'n beskrywende naam, byvoorbeeld MeanReversionMultiPairStrategy en verseker dat dit 'n calculatesignals metode. Jy sal nodig hê om hierdie klas die pare lys asook die gebeure tou slaag, soos in die handel / trading. py. Kyk asb na strategie / strategy. py vir meer inligting. 6) Ten einde enige back testing dit nodig is om gesimuleerde forex data te genereer of laai historiese blok data uit te voer. As jy wil net probeer om die sagteware uit, die vinnigste manier om te genereer 'n voorbeeld backtest is om 'n paar gesimuleerde data te genereer. Die huidige data formaat wat gebruik word deur QSForex is dieselfde as dié wat deur die DukasCopy Historiese data voed op www. dukascopy / Switserse / Engels / MarketWatch / historiese /. In 'n sekere historiese data te genereer, maak seker dat die CSVDATADIR instelling in settings. py is om 'n gids waar jy wil die historiese data te leef. Jy moet dan generatesimulatedpair. py hardloop. wat onder die skrifte / gids. Hy verwag 'n enkele command line argument, wat in hierdie geval is die geldeenheid paar in BBBQQQ formaat. Byvoorbeeld: In hierdie stadium die script is gekodeer om 'n enkele maande data te skep vir Januarie 2014. Dit is, sal jy individuele lêers te sien, van die formaat BBBQQQYYYYMMDD. csv (bv GBPUSD20140112.csv) vertoon in jou CSVDATADIR vir alle werksdae in daardie maand. Indien u verkies om die maand / jaar van die data uitset verander, net die lêer en re-run verander. 7) Nou dat die historiese data gegenereer is dit moontlik 'n backtest uit te voer. Die backtest lêer self is gestoor in backtest / backtest. py. maar dit bevat slegs die backtest klas. Om 'n backtest eintlik voer wat jy nodig het om hierdie klas instansieer en verskaf dit met die nodige modules. Die beste manier om te sien hoe dit gedoen is om te kyk na die voorbeeld Gemiddeld Crossover implementering beweeg in die voorbeelde / mac. py lêer en gebruik dit as 'n sjabloon. Dit maak gebruik van die MovingAverageCrossStrategy wat gevind word in strategie / strategy. py. Hierdie verstek na handel beide GBP / USD en EUR / USD verskeie geldeenheid paar gebruik demonstreer. Dit maak gebruik van data wat gevind is in CSVDATADIR. Om die voorbeeld backtest voer, net hardloop die volgende: Dit sal 'n tyd neem. Op my Ubuntu lessenaar stelsel by die huis, met die historiese data wat gegenereer word deur generatesimulatedpair. py. dit neem om 5-10 minute om te loop. 'N Groot deel van hierdie berekening plaasvind aan die einde van die werklike backtest, wanneer die onttrekking word bereken, so moet asseblief onthou dat die kode nie hang Laat dit tot voltooiing. 8) As jy wil om die prestasie van die backtest kan jy net gebruik output. py om 'n aandele kurwe, tyd opbrengste skerm (dit wil sê merk-tot-blok opbrengste) en 'n onttrekking kurwe: En dis dit in hierdie stadium is jy gereed is om te begin maak van jou eie backtests deur die wysiging of die aanbring van strategieë in strategie / strategy. py en die gebruik van werklike data afgelaai word vanaf DukasCopy (www. dukascopy / Switserse / Engels / MarketWatch / historiese /). Indien u enige vrae oor die installasie het moet asseblief nie huiwer om my te e-pos by mikequantstart. Indien u enige foute of ander kwessies wat jy dink dalk te danke aan die kodebasis wees spesifiek, voel vry om 'n GitHub kwessie hier oop te maak: GitHub / mhallsmoore / qsforex / kwessies Kopiereg (c) 2015 Michael Saal-Moore Toestemming word hiermee verleen, gratis lading, aan enige persoon 'n kopie van hierdie sagteware en daarvan dokumentasie (die sagteware), om te gaan in die sagteware sonder beperking, insluitend sonder beperking die reg om te gebruik, kopieer, aanpas, kombinering, publiseer, versprei, sublisensieer, en / of te verkoop kopieë van die sagteware, en om persone aan wie die Software is lewer om dit te doen, onderhewig aan die volgende voorwaardes toegelaat: die bogenoemde kopieregkennisgewing en hierdie kennisgewing toestemming sal in alle kopieë of aansienlike gedeeltes van die sagteware word ingesluit. DIE SAGTEWARE WORD AS verskaf word, SONDER WAARBORG VAN ENIGE AARD, uitdruklik of geïmpliseer, INSLUITEND MAAR NIE BEPERK TOT DIE WAARBORGE VAN VERHANDELBAARHEID, GESKIKTHEID VIR 'N SPESIFIEKE DOEL en sekuriteit. In geen geval sal die skrywers OR KOPIEREGHOUERS aanspreeklik wees vir enige eis, skade of ander aanspreeklikheid, hetsy in 'Aksie VAN KONTRAK, DELIK OF ANDERS, VOORTSPRUITEND UIT, VAN OF IN VERBAND MET DIE SAGTEWARE OF DIE GEBRUIK VAN OF ANDER HANDELINGEN IN DIE SAGTEWARE. Forex Trading Disclaimer Trading buitelandse valuta op marge dra 'n hoë vlak van risiko, en mag nie geskik vir alle beleggers nie. Vorige prestasie is nie 'n aanduiding van toekomstige resultate. Die hoë mate van die hefboom kan werk teen jou sowel as vir jou. Voordat jy besluit om te belê in buitelandse valuta moet jy noukeurig oorweeg jou beleggingsdoelwitte, vlak van ervaring, en risiko-aptyt. Die moontlikheid bestaan ​​dat jy 'n verlies van sommige of al jou aanvanklike belegging kan volhou en daarom moet jy nie geld wat jy nie kan bekostig om te verloor belê. Jy moet bewus wees van al die risiko's wat verband hou met die buitelandse valuta handel, en soek advies van 'n onafhanklike finansiële adviseur indien u enige doubts. Python Trader kode en vaardighede te deel Ja ek gebruik 2 raspberrypi. Lae krag hoë stabiliteit (ups op sy). Raspy Python Oandapy GT Hierdie opset is baie veelsydig Hierdie opset is baie veelsydig en werk baie goed Na aanleiding van hierdie draad, ek dink om te begin met luislang geprogrammeer handel. Site OANDA het nogal 'n paar voordele daar, en ek sien jy gebruik dit so goed. Ek dink dit sou moeilik wees om baie gebiede wat op MT4 loop in dieselfde tyd, wat waarskynlik die pad af sal ek na die volgende. Ek dink 'n PI of 'n Mac mini (vir sy prys kan ek koop 'n dosyn Pi-s.) Sou ideaal om so 'setups 24/7 hardloop wees. Ek dont net vertroue vensters of MT4 vir ernstige dinge. Hoeveel gevalle van handel programme kan jy hardloop op die Pi terselfdertyd Pi ooreenstem in spoed tot rekenaars Ek gebruik in die vroeë 2000's, so dit behoort nie te stadig wees. Cheers en dankie vir die idee, kResearch back testing omgewings in Python met pandas Deur Michael Saal-Moore op 16 Januarie 2014 back testing is die navorsingsproses van toepassing van 'n handel strategie idee om historiese data ten einde prestasie in die verlede vas te stel. In die besonder, 'n backtester maak geen waarborg oor die toekomstige prestasie van die strategie. Hulle is egter 'n noodsaaklike komponent van die strategie pyplyn navorsingsproses, sodat strategieë uit te gefiltreer voordat dit in produksie geplaas word. In hierdie artikel (en diegene wat dit volg) 'n basiese objekgeoriënteerde back testing stelsel geskryf in Python sal uiteengesit. Hierdie vroeë stelsel sal in die eerste plek 'n hulpmiddel, wat gebruik word om die verskillende komponente van 'n back testing stelsel te demonstreer. Soos ons vorder deur middel van die artikels, sal meer gesofistikeerde funksies word bygevoeg. Back testing Oorsig Die proses van die ontwerp van 'n robuuste back testing stelsel is baie moeilik. Effektief simuleer al die komponente wat die prestasie van 'n algoritmiese handel stelsel raak is 'n uitdaging. Swak data korrelig, ondeursigtigheid van orde routing by 'n makelaar, sodat latency en 'n magdom van ander faktore saamspan om die ware prestasie van 'n strategie teenoor die backtested prestasie te verander. Wanneer die ontwikkeling van 'n back testing stelsel is dit aanloklik om te wil voortdurend herskryf dit van nuuts af namate meer faktore gevind deurslaggewend in die beoordeling van prestasie te wees. Geen back testing stelsel is ooit klaar en 'n oordeel moet by 'n punt gemaak tydens die ontwikkeling wat genoeg faktore is gevang deur die stelsel. Met hierdie bekommernisse in gedagte die backtester in hier sal ietwat simplisties wees. Soos ons verder kwessies (portefeulje optimalisering, risikobestuur, transaksie koste hantering) verken sal die backtester meer robuuste geword. Tipes back testing Systems Daar is oor die algemeen twee tipes back testing stelsel wat van belang sal wees. Die eerste is navorsingsgebaseerde. wat hoofsaaklik gebruik word in die vroeë stadiums, waar baie strategieë sal getoets word ten einde diegene vir meer ernstige aanslag kies. Hierdie navorsing back testing stelsels word dikwels geskryf in Python, R of MATLAB as spoed van ontwikkeling is belangriker as spoed van uitvoering in hierdie fase. Die tweede tipe back testing stelsel is-gebeurtenis gebaseer. Dit is, dit voer die back testing proses in 'n uitvoering lus soortgelyke (indien nie identies) aan die handel uitvoering stelsel self. Dit sal realisties model mark data en die einde uitvoering proses ten einde 'n meer wettisch assessering van 'n strategie te voorsien. Laasgenoemde is dikwels geskryf in 'n hoë-prestasie taal soos C of Java, waar spoed van uitvoering is noodsaaklik. Vir laer frekwensie strategieë (hoewel dit steeds intraday), Python is meer as voldoende om gebruik te word in hierdie konteks. Objekgeoriënteerde Navorsing Backtester in Python Die ontwerp en implementering van 'n objek-georiënteerde navorsing-gebaseerde back testing omgewing sal nou bespreek word. Voorwerp geaardheid is gekies as die sagteware ontwerp paradigma vir die volgende redes: Die poorte van elke komponent kan vooraf gespesifiseer, terwyl die internals van elke komponent kan verander (of vervang) soos die projek vorder deur die spesifiseer van die poorte by voorbaat dit moontlik om effektief te toets hoe elke komponent optree (via eenheid toets) Wanneer die uitbreiding van die stelsel nuwe komponente kan gebou word op of bykomend tot ander, hetsy deur erfenis of samestelling op hierdie stadium die backtester is ontwerp vir die gemak van implementering en 'n redelike mate van buigsaamheid , ten koste van die ware akkuraatheid mark. In die besonder, sal hierdie backtester slegs in staat wees om strategieë te tree op 'n enkele instrument hanteer. Later die backtester sal aangepas word om stelle instrumente te hanteer. Vir die eerste backtester, is die volgende komponente wat nodig is: Strategie - 'n strategie klas ontvang 'n Pandas DataFrame van bars. maw 'n lys van Open-hoog-laag-Close-Deel (OHLCV) datapunte op 'n spesifieke frekwensie. Die strategie sal 'n lys van seine te produseer. wat bestaan ​​uit 'n tyd stempel en 'n element van die versameling dui op 'n lang, hou of kort sein onderskeidelik. Portefeulje - Die meerderheid van die back testing werk sal plaasvind in die portefeulje klas. Dit sal 'n stel van seine te ontvang (soos hierbo beskryf) en die skep van 'n reeks van poste, teen 'n kontant komponent toegeken. Die taak van die Portefeuljekomitee doel is om 'n aandele kurwe te produseer. inkorporeer basiese transaksiekoste en hou van ambagte. Prestasie - Die prestasie voorwerp neem 'n portefeulje en produseer 'n stel van die statistieke oor sy prestasie. In die besonder sal dit uitset risiko / opbrengs eienskappe (Sharpe, Sortino en Inligting Verhoudings), handel / wins statistieke en drawdown inligting. Wat Missing Soos gesien kan word van hierdie backtester geen verwysing na portefeulje / risikobestuur, uitvoering hantering (dit wil sê geen beperking bestellings) sluit dit sal ook verskaf gesofistikeerde modellering van transaksiekoste. Dit isnt veel van 'n probleem op hierdie stadium. Dit stel ons in staat om kennis te verkry met die proses van die skep van 'n objek-georiënteerde backtester en die Pandas / Numpy biblioteke. Met verloop van tyd sal dit verbeter. Implementering Ons sal nou voortgaan om die implementering van elke voorwerp te skets. Strategie Die strategie voorwerp moet redelik generiese op hierdie stadium wees, aangesien dit sal wees hantering vooruitskatting, gemiddelde-terugkeer, momentum en wisselvalligheid strategieë. Die strategieë wat hier oorweeg sal altyd tydreekse gegrond, naamlik prys gedryf. 'N vroeë vereiste vir hierdie backtester is dat afgelei Strategie klasse 'n lys van bars (OHLCV) as toevoer, eerder as om bosluise (trade-vir-handel pryse) of orde-boek data sal aanvaar. So die beste korrelig hier beskou sal wees 1 sekonde bars. Die strategie klas sal ook produseer altyd sein aanbevelings. Dit beteken dat dit 'n Portefeulje geval sal adviseer in die sin van gaan lank / kort of hou 'n posisie. Hierdie buigsaamheid sal ons in staat stel om verskeie Strategie adviseurs wat 'n stel van seine, wat 'n meer gevorderde Portefeulje klas kan aanvaar ten einde te bepaal die werklike posisies wat aangegaan is te skep. Die koppelvlak van die klasse sal afgedwing word deur gebruik te maak van 'n abstrakte basis klas metode. 'N Uittreksel basis klas is 'n voorwerp wat nie kan aangehaal en dus slegs afgelei klasse geskep kan word. Die Python-kode word hieronder gegee in 'n lêer met die naam backtest. py. Die klas strategie vereis dat enige subklas implementeer die generatesignals metode. Ten einde te verhoed dat die strategie klas van wat direk aangehaal (want dit is abstrakte) is dit nodig om die ABCMeta en abstractmethod voorwerpe gebruik van die ABC module. Ons stel 'n eienskap van die klas, genoem metaclass gelyk aan ABCMeta te wees en dan versier die generatesignals metode met die abstractmethod versierder. Terwyl die bogenoemde koppelvlak is eenvoudig sal dit meer ingewikkeld wanneer hierdie klas is geërf vir elke spesifieke tipe strategie. Uiteindelik is die doel van die klas Strategie in hierdie instelling is om 'n lys van 'n lang / kort / te hou seine vir elke instrument om 'n portefeulje te stuur verskaf. Portefeulje Die portefeulje klas is waar die meerderheid van die handel logika sal woon. Vir hierdie navorsing backtester die portefeulje is in beheer van die bepaling van posisie sizing, risiko-analise, transaksie koste bestuur en uitvoering hantering (dit wil sê die mark-tot-oop, mark-op-close bestellings). Op 'n later stadium sal hierdie take onderverdeel word in afsonderlike komponente. Op die oomblik sal hulle in gerol om 'n klas. Hierdie klas maak ruim gebruik van pandas en bied 'n goeie voorbeeld van waar die biblioteek 'n groot hoeveelheid van die tyd kan bespaar, veral met betrekking tot boiler data twis. As 'n eenkant, die belangrikste truuk met pandas en Numpy is om iterating vermy oor enige dataset met behulp van die vir d in. Sintaksis. Dit is omdat Numpy (wat pandas onderliggend) optimaliseert herhaling deur gevectoriseerd bedrywighede. So jy sal min (indien enige) direkte iterasies sien wanneer gebruik te maak van pandas. Die doel van die portefeulje klas is om uiteindelik te produseer 'n reeks van bedrywe en 'n aandele kurwe, wat sal ontleed word deur die prestasie klas. Ten einde dit te bereik, moet dit voorsien word met 'n lys van die saak aanbevelings van 'n strategie voorwerp. Later, sal dit 'n groep van Strategie voorwerpe wees. Die Portefeuljekomitee klas sal moet word vertel hoe kapitaal is ontplooi word vir 'n spesifieke stel van handel seine, hoe om transaksiekoste en watter vorme van bestellings sal aangewend word hanteer. Die strategie voorwerp wat op bars van data en dus aannames moet gemaak word ten opsigte van kwalifikasies wat by die uitvoering van 'n bevel pryse. Sedert die hoë / lae prys van 'n bar is onbekend a priori dit is slegs moontlik na die oop en toe pryse vir handel. In werklikheid is dit onmoontlik om te waarborg dat 'n bevel sal vervul word by een van hierdie besondere pryse by die gebruik van 'n mark orde, dus is dit op sy beste sal wees, is 'n benadering. Benewens aannames oor bestellings gevul, sal hierdie backtester alle konsepte van marge / makelaars beperkings ignoreer en sal aanvaar dat dit moontlik is om 'n lang en kort vrylik gaan in enige instrument sonder enige likiditeit beperkings. Dit is duidelik 'n baie onrealistiese aanname, maar is die een wat later kan ontspan. Die volgende lys gaan voort backtest. py: Op hierdie stadium is die strategie en portefeulje abstrakte basis klasse is ingestel. Ons is nou in 'n posisie om 'n paar konkrete afgelei implementering van hierdie klasse te genereer, ten einde 'n werk speelding strategie te produseer. Ons sal begin deur die opwekking van 'n subklas van strategie genoem RandomForecastStrategy. die uitsluitlike taak van wat om lukraak gekies lank / kort seine produseer Terwyl dit is duidelik 'n onsinnige handel strategie, sal dit ons behoeftes te dien deur aan te toon die objekgeoriënteerde back testing raamwerk. So sal ons 'n nuwe lêer met die naam randomforecast. py begin. met die notering vir die ewekansige weervoorspeller soos volg: Nou dat ons 'n konkrete voorspelling stelsel, ons moet 'n implementering van 'n portefeulje voorwerp te skep. Hierdie voorwerp sal die meerderheid van die back testing kode omvat. Dit is ontwerp om twee afsonderlike DataFrames, waarvan die eerste is 'n posisies raam, wat gebruik word om die hoeveelheid van elke instrument gehou op enige gegewe bar stoor te skep. Die tweede, portefeulje. eintlik bevat die mark prys van al die maatskappye vir elke bar, sowel as 'n oorsig van die kontant, die aanvaarding van 'n aanvanklike kapitaal. Dit bied uiteindelik 'n aandele kurwe waarop strategie prestasie te evalueer. Die Portefeuljekomitee voorwerp, terwyl baie buigsaam in die koppelvlak, vereis spesifieke keuses wanneer oor hoe om transaksiekoste, mark bestellings ens hanteer In hierdie basiese voorbeeld Ek het van mening dat dit moontlik sal wees om 'n lang / kort gaan 'n instrument maklik met geen beperkings of marge, koop of verkoop direk aan die oop prys van die bar, nul transaksiekoste (omvattende glip, fooie en impak mark) en die hoeveelheid voorraad het gespesifiseer direk aan te koop vir elke handel. Hier is die voortsetting van die randomforecast. py lys: Dit gee ons alles wat ons nodig het om 'n aandele kurwe gebaseer op so 'n stelsel te genereer. Die finale stap is om dit alles saam te bind met 'n hooffunksie: Die uitset van die program is soos volg. Vriendelike sal verskil van die uitset onder afhangende van die datum bereik wat jy kies en die ewekansige saad gebruik: In hierdie geval die strategie geld verloor, wat unsurprising gegee die stogastiese aard van die weervoorspeller Die volgende stappe is om 'n opvoering voorwerp wat 'n aanvaar skep portefeulje byvoorbeeld en verskaf 'n lys van prestasie statistieke waarop 'n besluit om die strategie uit te filtreer of nie baseer. Ons kan ook die verbetering van die Portefeuljekomitee voorwerp om 'n meer realistiese hantering van transaksiekoste (soos Interaktiewe Brokers kommissies en glip) het. Ons kan ook reguit sluit in 'n vooruitskatting enjin in 'n Strategie voorwerp, wat (hopelik) sal produseer beter resultate. In die volgende artikels sal ons hierdie konsepte verken in meer diepte. Michael Saal-Moore Mike is die stigter van QuantStart en is betrokke by die kwantitatiewe finansiële sektor vir die afgelope vyf jaar, in die eerste plek as 'n quant ontwikkelaar en later as 'n quant handelaar konsultasie vir verskansingsfondse.


No comments:

Post a Comment