Bollinger Bånd Matlab Kode


Jeg prøver å oversette en indikator fra MQL4 (Metatrader-språk) til Matlab. Bollinger band-koden er som følger: iBands () dokumentasjonen viser de 8 inngangene som: Jeg forstår alle disse unntatt bandeskift og skift. Spørsmål: Hvis jeg Barer er hele spekteret av dataene, hvorfor lager jeg ikke en feilmelding så langt jeg kan fortelle, dette er kode for en 20 periode, 2 standardavvik Bollinger-bånd. For et gitt tidsintervall er de tilknyttede Bollinger-båndverdiene verdiene som er beregnet for det forrige tidsintervallet (dermed 1 etter fjerde komma). Hva gjør i1 da Gi denne koden, hvordan skal jeg implementere i matlab Mitt forsøk ved å bruke dette Flytte standardavvik og dette bevegelige gjennomsnittet: Jeg tror ikke dette gir samme utdata som MQL4-koden. Eventuelle hint vil definitivt bli verdsatt spurte februar 4 14 klokka 20:06 Hvordan forstår jeg iBars1 og en manglende rekkefeil Feil MQL4 fungerer i et reversert-TimeDOMAIN-indekseringsrom. Dermed viser iBar dybden av historiske TimeSeriesDataSET, mens den siste (levende) linjen har en indeks på 0. Dette betyr at for en beregning av en hvilken som helst teknisk indikator må koderen ordne behandlingen på denne måten. Dette betyr også at for enhver ny linje, må den interne representasjonen av datalagringslaget på en eller annen måte skifte alle DataCELLs fra en til venstre (bakover i TimeDOMAIN-retningen mot Historie) for å få plass til en ny stolpe som fortsatt har indeks på 0 (et nå øyeblikk i en TimeDOMAIN). Mens fysisk flytting vil alt dagens dyp av DataSTORE være et absolutt fast ressurs (både tid, CPU). Data lagringslaget fungerer smartere, justerer indekseringshodet på hver ny barhendelse pluss bruker en form for elastisk DataStORE kapasitetsplanleggingstørrelse på forespørsel, for å minimere mem-allokeringen (e) under kontinuerlig vekst av DataSTORE. Dette betyr at testing for en feil utenfor feil ikke har støtte i brukerkode navneskilt på MQL4-språket. Slik forstår du bandeskift og skift. Å ringe iBands () må angi for hvilken Bar man ber om funksjonen å beregne et resultat. skift gir input for dette. Indeksen overholder reglene ovenfor. Når Bollinger Bands-beregningene er ferdige, kan man ønske å kompensere kurvene med en del Barer - transponere grafen i TimeDOMAIN til høyre - slik at den visualiserte grafikken oppfyller forventningene eller glede. bandsshift gir input for denne grafen ad hoc-skifting. Vær også oppmerksom på at de observerte forskjellene mellom Google, YFinance, MATLAB og MQL4 grafer bare må vises og ta hensyn til tilleggsinformasjon (ikke kjent), som man nesten ikke kan dekode fra linjene som bare vises på skjermen. appliedprice: gir en inngang for å velge riktig type pris inn i Bollinger-kalkulatoren. modus: gir input for å motta enten en PriceDOMAIN verdi. Således er en lat tilnærming å ringe iBands () tre ganger for å få tre-line-Bollinger, eller mange ganger for et spektrumfarget Bollinger Band-varmekart. Med min lille kunnskap om Bollinger-band ser det ut som om du kanskje har et implementeringsproblem. Har du prøvd utgangen av Bollinger-funksjonen i MATLAB? Bollinger-bånd kan ha blitt implementert annerledes for kantsaker der vinduets størrelse er mindre enn 20. Du må kanskje kontakte MQL4-forfatterne for å se på formlene som brukes. Jeg la merke til en forskjell når jeg implementerte i Python og indikatoren sett i Google Finance. Likevel, hvis du har implementert riktig, vil verdiene der vinduets størrelse er på 20, du ser de samme verdiene. Med mindre du er veldig sikker på FEX-koden, bør du bruke std og bety for implementering. besvart 9. februar kl 14:55 Ditt svar 2017 Stack Exchange, IncBollinger Bands 8211 Momentum Model Trading Strategy (Oppsett) I. Trading Strategy Utvikler: John Bollinger (Bollinger Bands). Konsept: Trend-etter handelsstrategi basert på Bollinger Bands. Forskningsmål: Resultatverifisering av 3-fasemodellen (longshortneutral). Spesifikasjon: Tabell 1. Resultater: Figur 1-2. Trade Setup: Long Trades: Closei 1 gt UpperBandi 1. Kort handel: Closei 1 lt LowerBandi 1. Indeks: Jeg Gjeldende Bar. Handelshøyde: Langt handler: Et kjøp på det åpne er plassert etter et bullish oppsett. Kort handler: En selg på det åpne er plassert etter en bearish Setup. Trade Exit: Tabell 1. Portefølje: 42 futuresmarkeder fra fire store markedssektorer (råvarer, valutaer, renter og aksjeindekser). Data: 36 år siden 1980. Testplattform: MATLAB. II. Sensitivitetstest Alle 3-D-diagrammer følges av 2-D-konturdiagrammer for fortjenestefaktor, Sharpe-forhold, Ulcer Performance Index, CAGR, Maksimal Drawdown, Prosent Lønnsom Trades og Avg. Vinn Avg. Tapforhold. Det endelige bildet viser sensitiviteten til Equity Curve. Testet variabler: MALength amp StDev (Definisjoner: Tabell 1): Figur 1 Portefølje ytelse (Inputs: Tabell 1 Kommisjonens forsterker Slippage: 0).Jeg har nettopp publisert en artikkel MATLAB som et automatisert utførelsessystem. (Den er tilgjengelig for leserne til boken min og abonnenter på nettstedet mitt Premium Content.) Det kommer med eksakte MATLAB-koder som utfører en enkel Bollinger-bånds høyfrekvent E-mini-handelsstrategi. Som nevnt tidligere, finner jeg nå MATLAB å være en god plattform, ikke bare for backtesting, men også for automatisk utførelse. Selvfølgelig har ikke alle meglerhus APIer som kobler til MATLAB. Mine eksempelkoder er for å sende inn bestillinger automatisk til en Interactive Brokers-konto. Generelt finner jeg at skriveføringsprogrammer i MATLAB er en bris sammenlignet med C, Java eller C. Det tar ca 15 utviklings tid for et C-program. Eventuelle ytelsesbegrensninger vil trolig ikke skyldes MATLAB, men til latens av megling i oppdatering av stillinger og ordrestatus. 82 kommentarer: Jeg har vært en lurker en stund og nyter bloggen din. Rask spørsmål: har du prøvd Mathematica (Den har et kraftig og ganske elegant sett med funksjoner basert på en liste metodikk som kan kartlegge godt til handelsstrategier. Eller tilfeldige ting som syntetisk blenderfotografering.) Takk igjen for en annen fantastisk artikkel. Boken gir deg bare å gi via det innebygde passordet ditt for ditt premium-nettsted. Jeg vet at Bollinger-koden din er designet for å vise oss hvordan du implementerer MATLAB2IB enn som et handelssystem, men siden du selvsagt er veldig god på Matlab, hvordan vil du legge til en etterfølgende stopp avgangstilstanden. Jeg forstår logikken - hva er den høyeste åpne fortjenesten, hva er nåværende åpen fortjeneste, hvis det er annerledes med X prosent, og avslutter, men jeg har problemer med Matlab-syntaxen. Enhver sjanse du kunne gi et enkelt eksempel i Matlab-kode for enten Bollinger-eksempelet eller som en frittstående Du er en lærde og en gentleman, jeg har latt etter et eksempel som dette i en stund. Veldig mye verdsatt Hei G-Fav, jeg har programmert i Mathematica før. Imidlertid føler jeg at MATLABs arraybehandlingskapasitet er mer egnet til statistisk arbitrageforskning. Videre er jeg ikke sikker på at det er en Mathematica API for tilkobling til meglerhus. Ernie Hei Anonym, jeg vil se på å gi prøvekode for etterfølgende stopp på et tidspunkt i fremtiden. Men du kan alltid holde oversikt over maksimumsprisen på lageret ditt siden oppføringen i en Matlab-variabel. Så når som helst den siste prisen genererer en retur (drawdown) som er under et visst minimum, send en markedsordre for å avslutte posisjonen din. Ernie Elsket boken Ernie, flere av dine hjelperfunksjoner ligger på min MATLAB-bane. Hvis noen er ute i kulde med IB, integrerer MB Trading SDK også godt med MATLAB. Den har prefab ActiveX kontroller som er et snap å implementere i GUIDE for å skape egendefinerte handelsgrensesnitt. Denne koden er gull - takk for at du er så sjenerøs med din kunnskap. Jeg liker å handle med FX, men med IB får du ikke den siste prisen i FX-datastrømmen, men du får den siste nærmen fra forrige økt, men ikke den siste handelsprisen i din nåværende økt. Hva er en god måte å nærme seg dette problemet Som en pristaker i FX må du ofte ta spredningen, så gjennomsnittlig (ta midtpunktet) av budet er ikke en så levedyktig løsning. Eventuelle anbefalinger Du bør også vurdere RPythonPerl-kombinasjonsboksen. Det er gratis, men kraftig. Et spørsmål og en kommentar, Hva er fordelen ved å bruke IB2MATLAB-programvaren over den gratis versjonen med ACTIVEX. Her er en prøvekode hvordan du kobler direkte via COM. (Matlabtradercode. phpprojectInteractiveBrokersampfileIBexamples) Jeg tror at bruk av et matlab-timerobjekt vil gjøre koden mer vennlig. Takk for koden. Jeg fant det veldig brukbart. Ved videre gjennomgang inkluderer ikke MatLab2IB API-demo alle funksjoner, slik at den ikke kan testes. Jeg har kontaktet dem for å se om en fullversjon kan prøves. I tillegg kunne jeg ikke få koden fra MatLabtrader ved hjelp av ActiveX-kontroller til å fungere. Jeg kjører API 9.51. Alle andre har bedre hell. Matt, hvis IB ikke gir siste pris for valutaer, må du kanskje abonnere på Bloomberg og bruke Matlabs Datafeed-verktøykasse for å få Bloomberg-data. Dette er selvsagt en mye dyrere proposisjon, men vel verdt det hvis du kan generere inntekter fra modellen. Ernie Anonym, Ja, jeg nevnte også i et innlegg før det er et gratis open-source R API som kobles til Interactive Brokers. Jeg har ikke prøvd det selv, men gjorde noen lesere her, prøv Ernie Anonymous. Det kan ikke være en fordel å bruke matlab2ibapi over å bruke den gratis versjonen fra matlabtrader. Imidlertid er kostnaden for matlab2ibapi så lav, og kundeservice så vennlig at jeg ikke anser gratis en egen fordel. Den største kostnaden i handel er tapet fra dårlig utførelse eller dårlige modeller. Ernie ExchangeAPI nektet min forespørsel om en fullt funksjonell prøveversjon. Jeg kan ikke teste denne APIen for pålitelighet, nøyaktighet og latens mot mine nåværende systemer, så jeg må finne en løsning ved hjelp av den gratis MatLabTrader-versjonen. Jeg kan bare synke 300 til en annen programvare som høres bra ut med mindre det er en klar fordel over min nåværende infrastruktur. Jeg har brukt matlabtrader-versjonen i lang tid nå, og det fungerer perfekt. Selvfølgelig må du gi det noen tweaks her og der, men det gir deg full funksjonalitet. Det er ganske mange eksempler inkludert, så det er veldig enkelt å komme i gang. Jeg vil på det sterkeste anbefale det til alle som ønsker å handle ved hjelp av API, men vil ikke bruke penger) Dr. Chang, dette er noe relatert til dette innlegget, men relatert til boken din. Siden du nevner Jim Simon. Jeg trodde du ville sette pris på dette: economistfinancedisplaystory. cfmstoryid13751628 samt denne spesielle kommentaren knyttet til historien ovenfor: quotHenry Leeds skrev: 29. mai 2009 2:49 Jim Simons er en Pool Operator med muligheten til å skaffe store mengder penger fra investorer . Han mangler matematiske ferdigheter og kunnskaper for å utvikle et virkelig overlegne handelssystem. Hans krav på berømmelse hviler på hans år med å hjelpe Shiing Shen Chern, en strålende matematiker som sjenerøst tillot Simons å legge til navnet sitt på 1974-papiret Chern skrev. Medaljongfonden ble skapt av Elwyn Berlekamp, ​​en strålende professor innen elektroteknikk og matematikk ved Berkeley. Berlekamp utnyttet sin kunnskap om Claude Shannons revolusjonerende informasjonsteori for å skape dette vidunderet. Shannon var Berlekamps PhD-rådgiver ved MIT. Berlekamp utviklet sitt Medallion Fund i løpet av måneder, og den utrolige ytelsen er beskrevet på Berlekamps hjemmeside. Simons ønsket at Berlekamp skulle re-lokalisere til Long Island og fortsette å utvikle algoritmene som bestod av hans medaljongmesterverk. Berlekamp ville ikke forlate Berkeley, og som et resultat gjorde han en stor feil. Han solgte rettighetene til oppfinnelsen til Simons for seks ganger hva det kostet ham - en relativt liten mengde. Han sier nå på sin nettside at Medaljefondet er verdt tusenvis av dollarbeløpet han mottok for sin prestasjon. Renessansen RIEF hedgefund er et eksempel på Simons kreative evner. Resultatet er ynkelig og har resultert i tilbakebetalinger på 18 milliarder dollar. Renaissance-investorer har klaget bittert på hvordan deres investering har feilet så dårlig, mens Medaljonfondet, reservert eksklusivt for Renaissance-ansatte, har gjort det så bra. Man kan sikkert forstå deres angst. Jeg har vært i handelsbransjen for en liten stund, og alle og hans mors ting av Jim Simon er å være en gud. Mr. Leeds synes å tilby en annen lesning av Pr. Simon39s suksess som kom som et sjokk for meg. Jeg er ikke så sikker på MatLab2IB39s kvote kundeservice så friendlyquot etter N N39s kommentarer. Jeg sendte dem beskjed om at de kan bekrefte at programmet vil fungere med IB39s FX, spesielt ruting med IDEALPRO. Jeg har aldri fått svar. Så jeg spiller nå med matlabtrader, jeg skal prøve å kode ditt eksempel med matlabtrader, hvis jeg får det til å fungere godt, kanskje du kanskje vil legge inn sammenligningskoden. Elsker det stedet - takk Jeg er en av forfatterne til MATLAB2IB API. Vi beklager virkelig. Vi er ikke sikre på hvordan vi savnet e-posten din. Kan du være snill nok til å sende oss en e-post. Vi blir oversvømt med prøveforespørsler og andre e-postmeldinger, og vi kan ha savnet det. Du kan sende meg e-post direkte. JA, MATLAB2IB vil jobbe med IB FX. Så lenge du har tillatelser med IB, har MATLAb2IB ikke noe problem å sette bestillingen din gjennom. Infact, SOme av våre lisens eiere bruker det spesielt for FX. Når det gjelder NN: Han spurte oss om vi kan gi ham en prøveversjon med full api-funksjonalitet. Som en policy bestemte vi oss for ikke å gi det. Det er så enkelt som det. Det er mange grunner som jeg kan diskutere separat. Matt, jeg tror at hvis du vil rute dine FX-ordrer til IDEALPRO, trenger du bare å spesifisere IDEALPRO som bytte når du bruker placeOrder-funksjonen. Ernie Jeg hadde tidligere skrevet om noen etterfølgende stoppkoden. Over på Mathworks ser jeg Aly Kassam har oppdatert sin gode 39Algorithmic Trading med MATLAB39 webinar og tilhørende kode, slik at den nå inneholder noen stop-loss-kode. Den oppdaterte webinar koden er på: mathworks. aumatlabcentralfileexchange24320 Leserne dine kan være interessert i å se begge Aly39s webinars for å se fordelene med MATLAB. Søke mathworks for 39Algorithmic Trading med MATLAB for Financial Applications39 og 39Algorithmic Trading med MATLAB - Update for 2009 (Storbritannia) 39 Så, hvis noen ønsket å lage et parhandelsprogram med denne prøven, ville de opprette en quotlocalsymbol2quot og deretter be om markedsdata for den spesifikke sikkerheten og har programmet kjøre eller selge ordrer motsatt til primær sikkerhet med tilbehør hvis sløyfene og for å beregne avviks - og tilbakekoblingsperioder, kan man justere det ved å endre zscore39lookback3939entryz3939exitz39 for å representere si lineær regresjon istedenfor bollinger band Så hvis noen ville lage et parhandelsprogram med denne prøven, ville de opprette en quotlocalsymbol2quot og deretter be om markedsdata for den aktuelle sikkerheten og få programmet til å kjøre eller selge ordrer motsatt den primære sikkerheten med tilbehør hvis sløyfer Og for å beregne avviks - og tilbakekallingsperioder, kunne man annonsere bare ved å endre zscore39lookback3939entryz3939exitz39 for å representere si lineær regresjon i stedet for bollinger band Hei Anon, Ja, du kan lage et eget symbol2 og lokalbefolkningen2 for det andre benet i paret. Når det gjelder Zscore, lookback, etc. når du har bestemt et sikringsforhold, har du redusert tidsserien til 1 dimensjon (quotthe spreadquot), så Bollinger-bandet vil fungere som i en 1-instrument-sak. Ernie Så, i kjøpsordren for sikkerhet 39localsymbol39 del av en løkke, rett under den, ville man plassere en salgsordre for sikkerhet 39localsymbol239 og gjøre det hele en del av en enkelt sløyfe for å gjøre det til en tandemhandel og lineær regresjon eller EMA eller noe annen indikator skal fungere også, forutsatt at de riktige zscore-parametrene er gitt. Hva med volummetrisker Teknisk analyse med R I dette innlegget, velg en veiledning hvordan en forhandler kan bruke R for å beregne noen grunnleggende tekniske analyseindikatorer. R er et gratis statistisk analysemiljø for åpen kildekode og programmeringsspråk. Den er tilgjengelig for Windows, Mac OS og Linux operativsystemer. Installasjon er enkelt og raskt. For nedlasting og installasjonsanvisninger, gå til: cran. r-project. org. Når du utvikler en handelsstrategi, er det nyttig å kunne analysere og visualisere data og for å kunne teste dine handelsgenereringsregler og deres variasjoner og modeller raskt og med minst mulig omgang. Mens mange handelsplattformer, for eksempel Interactive Brokers, etc. gir tilgang til historiske data via API eller direkte filnedlasting 8211, analyserer at data - og prototyping-handelsstrategier ofte krever å skrive hundrevis av kodelinjer i programmeringsspråk som Java eller C, eller skrive besværlige vanskelige å teste formler i Excel. Dette krever en betydelig investering i tid, uansett hvordan erfaringsprogrammerer du er. I motsetning til at et høyere nivå programmeringsspråk som R eller Matlab, kombinert med deres interaktive programmeringsmiljøer, tillater brukerne å skjære, terning og analysere data innen en brøkdel av tiden det tar med C, C eller Java. Kodenes mengde som kreves for å utvikle en handelsstrategi i R, er typisk også en størrelsesorden mindre. I dette eksemplet bruker du en enkel komma-separat fil som inneholder åpne, høye, lave og lukkede pris kolonner (f. eks. OHLC), sammen med volum og tidsstempelverdier for SPY ETF. I dette innlegget viser du hvordan du bruker et gratis R-bibliotek til å beregne tekniske analyseindikatorer for Simple Moving Average (SMA), Eksponentiell Moving Average (EMA), Bollinger Bands (BBands), RSI og MACD. Vi legger til beregnede indikatorer som nye kolonner til vår inngangsfil slik at den kan brukes til videre analyse eller handelsstrategi prototyping i Excel, R, eller annen CSV-vennlig programvarepakke av ditt valg. Installere teknisk analyse bibliotek for R 1. For å beregne teknisk analyse med R vil vi bruke et gratis open-source bibliotek kalt 8220TTR8221 (Technical Trading Rules). Dette trinnet inneholder instruksjoner for installering av TTR-bibliotek, forutsatt at du allerede har installert R på datamaskinen. Disse trinnene må kun utføres en gang per R installasjon på en datamaskin. Slik installerer du biblioteket på datamaskinen: 1) Start R-miljø på datamaskinen, og velg deretter i pakken: Pakker 038 Data - Package Installer 2) I Package Installer Type 8220TTR8221 i pakken Søkefelt, og klikk 8220Get List8221-knappen. 3) Velg pakke 8220TTR8221 og klikk 8220Install Selected8221. Laster inn historiske data (Input) For demoformål bruker vi daglige historiske priser for SPY ETF fra september 2013 til mai 2014. Klikk her for å laste ned datafilen. Denne inngangsfilen for dette eksemplet ble generert ved hjelp av IB Historical Data Downloader. 2. Vi skal begynne med å åpne R-skallet og laste TTR-biblioteket, som er en gratis R-utvidelse som inneholder funksjoner for å beregne noen av de vanligste indikatorene. 3. Det neste trinnet er å importere vår datafil med historiske priser til R-miljø. Vi vil laste data fra sample CSV-fil til R-miljø og lagre det en dataramme, som en R-variabel type for lagring av data i tabellformat i minnet. For å vise første rekke rader i datatabellen: Dette viser som standard de første 6 rader med data sammen med kolonnens navn (tabelloverskrift). For å se hvor mange rader du har i datatabellen: Dette viser at vi har 187 dataoppføringer i vår SPY-datafil, i 187 handelsdager mellom 3. september 2013 8211 31. mai 2014. Vi kan også liste tabellkolonneavn ved hjelp av kolnamesfunksjoner som følger: Flytende gjennomsnitt 4. Lar deg nå beregne 20-dagers Simple Moving Average (SMA) av CLOSE pris-kolonnen ved hjelp av TTR-biblioteker R-funksjonen SMA: Nå ser vi de første 50 verdiene av sma20-arrayet: Her brukte vi funksjonen SMA fra TTR biblioteket vi lastet over, forteller det å beregne 20-dagers gjennomsnitt (verdi av parameter n), av CLOSE-kolonnen fra dataramdata. Funksjonen returnerer en rekke SMA-verdier og lagrer den i en ny variabel kalt sma20. Du kan få hjelpen med en detaljert beskrivelse av funksjonen og dens parametre ved hjelp av. etterfulgt av funksjonsnavnet, som nedenfor. Det er alltid en god ide å lese hjelpesider for funksjonene du bruker, siden de vil vise alle valgfrie parametere som du kan bruke til å justere utdataene. I tillegg har mange funksjoner variasjoner eller relaterte funksjoner, som kan være nyttige under ulike omstendigheter, og vil bli oppført på hjelpesiden. 5. Beregning av eksponentiell flytende gjennomsnitt er like enkelt, bare bruk en annen funksjon, denne gangen EMA (). Legg merke til at vi beregner EMA for 14-periode lengde Bollinger Bands 6. For å beregne Bollinger Bands indikator bruker vi BBands funksjonen. Det er en rekke valgfrie parametere som det tar, så bra gi flere eksempler. I eksemplet nedenfor kaller vi BBands som overfører datastamdata med et spørsmål som angir at vi vil bruke verdier fra CLOSE-kolonnen, akkurat som vi har gjort over til SMA og EMA-beregninger ovenfor. Andre parameter sd tar antall standardavvik for øvre og nedre bånd. Siden vi ikke overfører verdi for n, bruker 8211 BBands 20-års glidende gjennomsnitt som standard. Utgangen inneholder flere kolonner: dn for lavere bånd, mavg for det bevegelige gjennomsnittet, opp for øvre bånd og pctB, som kvantifiserer en pris for security8217 i forhold til øvre og nedre Bollinger Band, en detaljert beskrivelse av den kan bli funnet her. B er 1 når prisen er på øvre bånd B er 0 når prisen er på underbåndet B er over 1 når prisen er over øvre bånd B er under 0 når prisen er under det nedre bandet B er over .50 når prisen er over middelsbåndet (20-dagers SMA) B er under .50 når prisen er under mellombåndet (20-dagers SMA) bb20 BBands (data, sd2.0) 6.1 Nå liker vi å lage en ny dataramme som inneholder alle innganger data fra 8216data8217-rammen, pluss Bollinger Bands data som vi nettopp har beregnet. Data. frame () - funksjonen tar et hvilket som helst antall datarammer og forbinder dem radvis til en ny dataramme, slik at elementer fra tilsvarende rader blir samlet sammen i resultatet. 6.2 Linjer (dataPlusBBdn, kol 8216brown8217) linjer (dataPlusBBmavg, kol 8216blue8217) 6.3 Bollinger Bands plot: plot (dataPlusBBDATETIME, allDataCLOSE) linjer (dataPlusBBCLOSE, col 8216red8217) linjer (dataPlusBBup, col 8216purple8217) 6.3 Alternativt kan vi spesifikt spesifisere hvilken type bevegelse gjennomsnitt skal brukes som grunnlag for Bollinger Bands ved hjelp av funksjonsparametre maType, som bare tar et bevegelige gjennomsnittsfunksjonsnavn. Se SMA-hjelpesiden for å se ulike typer bevegelige gjennomsnitt som støttes i TTR-biblioteket. For eksempel, hvis du liker å beregne en EMA Bollinger Bands, kan du sende EMA til maType. Legg merke til at i dette eksemplet er vi overordnet standardlengdeparameter for glidende gjennomsnitt, ved hjelp av 14-års gjennomsnittet denne gangen. bbEMA BBands (data, sd2.0, n14, maTypeEMA) RSI 8211 Relativ Strength Indicator 7. RSI. For å beregne RSI bruker vi RSI () - funksjonen. Du kan bruke RSI-kommandoen i R-skallet for å få detaljer for funksjonsparametrene. I utgangspunktet er det veldig lik de funksjonene vi brukte ovenfor for å generere bevegelige gjennomsnitt. Den har to nødvendige parametere: tidsserier (for eksempel CLOSE kolonne fra data datarammen og n heltall for lengden på RSI-indikatoren. Rsi14 RSI (data, n14) Her er den første parameteren til RSI-funksjonen: data som er en uttalelse som sier at kolonne heter LUKK fra datatabellen, og returnerer den som en liste over verdier, og den andre parameteren er n14, hvor parameternavnet er n, og verdien 14 indikerer at vi vil beregne 14-dagers RSI-verdier på de lukkede prisene. 8. MACD-funksjonen tar flere argumenter: Inndatataserier (for eksempel CLOSE-pris) Antall perioder for raskt bevegelige gjennomsnittlige antall perioder for langsomt gjennomsnittlig antall perioder for signallinjen Du kan også valgfritt spesifiser flytende gjennomsnittsfunksjon du vil bruke for MACD-glidende gjennomsnitt. Se en skjermdump av hjelpesiden nedenfor (du kan også bruke MACD-kommandoen i R-skjerm for å åpne hjelpesiden selv): Lar beregne en standard (12,26,9) MACD-indikator ved hjelp av denne funksjonen. Vel, bruk st ndard enkle bevegelige gjennomsnitt, så vel angi SMA-funksjon i maType-parameter: macd MACD (data, nFast12, nSlow26, nSig9, maTypeSMA) Bli med alle data sammen 9. Nå slutter vi alle indikatorene som er beregnet ovenfor med de opprinnelige dataene til en enkelt dataramme: Data. frame () - funksjonen tar et antall datarammer og forbinder dem radvis, slik at elementer fra tilsvarende rader limes sammen i den resulterende data. frame allData. Skriv til tekstfil Og til slutt skriver vi innholdet av allData dataramme til en kommaseparert verdierfil. Vi bruker write. table () - funksjonen, som inneholder et stort antall valgfrie parametere. En detaljert hjelpeside er tilgjengelig ved hjelp av kommandoen write. table i R-skjerm. write. table (allData, filespywithindicators. csv, na, sep ,, row. names FALSE) Når vi kaller write. table () - funksjonen, går vi videre med følgende argumenter: allData 8211 dette er bare en referanse til datarammen som inneholder data som skal være skrevet til utdatafilen. fil 8230 8211 dette er banen og navnet på filen vi lager. na 8211 sørger for at celler i datarammen som inneholder R-verdi NA, vil inneholde tomme verdier i utdatafilen. Noen celler har NA for rader der det ikke var nok data til å generere en tilsvarende indikatorverdi (for eksempel første 19 rader for 20-dagers SMA). sep, 8211 setter kolonneparator til komma (derav kommaseparert verdier fil). For å opprette en faneparientert fil (egentlig et foretrukket format for seriøse programvaresystemer) 8211 bruk: sep t. row. names FALSE 8211 er det viktig å sette denne verdien, ellers vil første kolonne i utdatafilen inneholde radnummer. Den resulterende filen er tilgjengelig her. Høyreklikk og velg 8220Slå koblet fil As8221 Nedlastet fil kan åpnes i Excel eller tekstredigeringsprogram. 10. Det er flere funksjoner og funksjoner tilgjengelig i TTR-biblioteket. Du kan finne ut mer ved å ta opp TTRs hjelpeside: KONKLUSJON R gir et praktisk og allsidig miljø for dataanalyse og beregninger. I tillegg til tusenvis av gratis, åpen kildekode statistiske, matematiske biblioteker og algoritmer inneholder R et stort antall funksjoner og biblioteker for lesing og skriving av data fra filer, databaser, nettadresser, webtjenester osv. Det, kombinert med sparsommelighet av språket , er en kraftig kombinasjon som kan hjelpe handelsmenn med å spare dyrebar tid. Traders kan betydelig redusere tiden som trengs for prototype og backtest trading strategier ved hjelp av R. Det finnes også metoder for å integrere R med vanlige programmeringsspråk som Java og C. Don8217t nøl med å legge inn en kommentar eller send som en melding via Kontakt oss skjema hvis du har spørsmål angående dette materialet. Til slutt, vi liker å nevne et par bøker som har vært svært hjelpsomme i vår utviklingsarbeid. Den første boken 8211 8220Quantitative Trading med R8221 er en flott blanding av økonomisk data analyse innsikt og anvendelse av R til backtesting, data utforskning og analyse. Den har en rekke gode kodeeksempler og går over en rekke nyttige R-pakker. Dette er en god intro-til-mellomnivå nivå bok for folk som ønsker å bygge og backtest sine egne trading strategier. Den andre boken 8211 8220Mastering R for Quantitative Finance8221 8211 er en ekte perle. Den inneholder mer avansert informasjon for handelsfolk med god forståelse av derivatinstrumenter og sterkere matematisk bakgrunn. Vi fant at denne boken er en flott oppfølging for 8220Quantitative Trading med R8221. I tillegg til flotte R-kodeprøver og - pakker inneholder det oversikter over en rekke avanserte (og praktiske) kvantitative finansieringsmodeller og algoritmer, og lar deg få føttene våte med R-kode med en gang. Trading Geeks tilbyr konsulenttjenester i handelsstrategi og programvareutvikling for uavhengige handelsmenn, partnerskap og hedgefond. Vennligst spørre for mer informasjon eller et gratis tilbud på prosjektet ditt via Kontakt oss skjema til høyre.

Comments