Sunday 17 September 2017

Högfrekvent Handelsindikatorer


Grundläggande om algoritmiska handelsbegrepp och exempel. En algoritm är en specifik uppsättning tydligt definierade instruktioner som syftar till att utföra en uppgift eller process. Algoritmisk handel med automatiserad handel, svart-box-handel eller helt enkelt algo-trading är processen att använda datorer som är programmerade att följ en definierad uppsättning instruktioner för att göra en handel för att generera vinst med en hastighet och frekvens som är omöjlig för en näringsidkare De definierade reglerna baseras på tidpunkt, pris, kvantitet eller någon matematisk modell förutom vinstmöjligheter för näringsidkare, algo-trading gör marknaderna mer likvida och gör handeln mer systematisk genom att utesluta känslomässiga mänskliga konsekvenser på handelsaktiviteter. Uppta en näringsidkare följer dessa enkla handelskriterier. Köp 50 aktier i ett lager när dess 50-dagars glidande medel går över 200 - day moving average. Sell aktier på lageret när dess 50-dagars glidande medelvärde går under 200-dagars glidande medelvärde. Med denna uppsättning av två enkla instruktioner är det lätt att skriva det är ett datorprogram som automatiskt kommer att övervaka aktiekursen och de glidande medelindikatorerna och placera köp - och försäljningsorderna när de fastställda villkoren är uppfyllda. Handlaren behöver inte längre hålla koll på livepriser och diagram eller lägga in orderen manuellt Det algoritmiska handelssystemet gör det automatiskt för honom genom att korrekt identifiera handelsmöjligheten. För mer om glidande medelvärden, se Simple Moving Averages. Utveckla tendenser. All-trading ger följande fördelar. Levereras till bästa möjliga priser. Instant och korrekt orderorder placering så höga chanser att genomföras på önskade nivåer. Traderna togs rätt och omedelbart för att undvika betydande prisförändringar. Reducerade transaktionskostnader se genomförandebortfallet nedan. Samtidigt automatiserade kontroller på flera marknadsförhållanden. Reducerad risk för manuell fel vid placering av trades. Backtest algoritmen, baserat på tillgänglig historisk och realtid data. Reduced möjlighet av misstag av mänskliga handlare baserat på känslomässiga och psykologiska faktorer. Den största delen av dagens algo-trading är HFT-handel med hög frekvens, vilket försöker kapitalisera att placera ett stort antal order med mycket snabba hastigheter över flera marknader och flera beslutsparametrar, baserat på förprogrammerade instruktioner För mer om handel med högfrekventa handelar, se Strategier och hemligheter hos HFT-företag med hög frekvens. All-trading används i många former av handels - och investeringsverksamhet, inklusive. fonder, fonder, försäkringsbolag som köper aktier i stora mängder, men vill inte påverka lagerpriserna med diskreta investeringar i stor volym. Kortfristiga näringsidkare och sälja sidodeltagare gör marknadsmakare spekulanter och arbitragerare gynnas av automatiserad handel, algo-trading hjälpmedel för att skapa tillräcklig likviditet för säljare på marknaden. Systematiska handlare trendföljer par tra ders hedge funds etc tycker det är mycket effektivare att programmera sina handelsregler och låta programmet handla automatiskt. Algorithmic trading ger ett mer systematiskt tillvägagångssätt för aktiv handel än metoder baserade på en mänsklig näringsidkare s intuition eller instinct. Algorithmic Trading Strategies. Any strategi för algoritmisk handel kräver en identifierad möjlighet som är lönsam när det gäller förbättrad vinst eller kostnadsminskning. Följande är vanliga handelsstrategier som används i algo-trading. De vanligaste algoritmiska handelsstrategierna följer trenderna i glidande medelvärden kanalbrytningar prisnivårörelser och relaterade tekniska indikatorer Dessa är de enklaste och enklaste strategierna att genomföra genom algoritmisk handel, eftersom dessa strategier inte involverar några förutsägelser eller prisprognoser. Trader initieras baserat på förekomsten av önskvärda trender som är enkla och enkla att genomföra genom algoritmer utan att komma in i komplexiteten hos prediktiv analys sis Ovannämnda exempel på 50 och 200 dagars glidande medelvärde är en populär trendstrategi. För mer om trendstrategier, se Simple Strategies for Capitalizing on Trends. Köp ett dubbelnoterat lager till ett lägre pris på en marknad och samtidigt sälja det till ett högre pris på en annan marknad erbjuder prisskillnaden som riskfri vinst eller arbitrage Samma operation kan replikeras för aktier jämfört med terminsinstrument, eftersom prisskillnader existerar från tid till annan Genomförande av en algoritm för att identifiera sådana prisskillnader och att beställa ger lönsamma möjligheter på ett effektivt sätt. Index-fonder har definierade perioder av ombalansering för att få sina innehav i nivå med sina respektive referensindex. Detta skapar lönsamma möjligheter för algoritmiska handlare som utnyttjar förväntad handel som erbjuder 20-80 basispoäng vinst beroende på antal av aktier i indexfonden, precis före indexfonden ombalansering av sådana affärer initieras via algoritmiska handelssystem för snabb utförande och bästa priser. Ett flertal beprövade matematiska modeller, som den delta-neutrala handelsstrategin, som möjliggör handel med kombinationer av alternativ och dess underliggande säkerhet där handeln placeras för att kompensera positiva och negativa delta så att portföljen delta bibehålls vid zero. Manan reversion strategi är baserad på idén att de höga och låga priserna på en tillgång är ett temporärt fenomen som återgår till deras medelvärde periodiskt. Identifiera och definiera ett prisklass och implementeringsalgoritm baserat på det tillåter Handlarna placeras automatiskt när priset på tillgången bryter in och ut ur sitt definierade område. Volymvägd genomsnittsprisstrategi bryter upp en stor order och släpper dynamiskt bestämda mindre bitar av ordern till marknaden med hjälp av aktiespecifika historiska volymprofiler. Syftet är att exekvera ordern nära Volymvägd genomsnittspris VWAP och därigenom dra fördel av genomsnittspriset ighted average price strategi bryter upp en stor order och släpper dynamiskt bestämda mindre bitar av ordern till marknaden med jämnt fördelade tidsluckor mellan start - och sluttid. Syftet är att genomföra ordern nära genomsnittet mellan start - och sluttider för att minimera marknadseffekten. Innan handelsordern är fullt fylld fortsätter denna algoritm att skicka delbeställningar enligt det definierade deltagandekvoten och enligt volymen som handlas på marknaden. Den relaterade stegstrategin skickar order till en användardefinierad procentandel av marknaden volymer och ökar eller minskar denna delaktighet när aktiekursen når användardefinierade nivåer. Implementeringsbriststrategin syftar till att minimera genomförandekostnaden för en order genom att handla i realtidsmarknaden och därigenom spara på beställningskostnaden och gynna från möjlighetskostnaden för försenat genomförande Strategin kommer att öka den riktade deltagandesatsen när aktiekursen rör sig fördelaktigt och minska det när aktiekursen går negativt. Det finns några speciella klasser av algoritmer som försöker identifiera händelser på andra sidan. Dessa sniffningsalgoritmer, som exempelvis används av en försäljningssida-marknadsförare, har den inbyggda intelligensen att identifiera existensen av några algoritmer på köpsidan av en stor order. En sådan upptäckt genom algoritmer kommer att hjälpa marknadsmakaren att identifiera stora ordermöjligheter och göra det möjligt för honom att dra nytta av att fylla orderna till ett högre pris. Detta identifieras ibland som högteknologiska front - köra För mer om högfrekvent handel och bedrägliga rutiner, se Om du köper aktier online, är du involverad i HFTs. Technical Requirements for Algorithmic Trading. Genomförandet av algoritmen med ett datorprogram är den sista delen, clubbed med backtesting. Utmaningen är att omvandla den identifierade strategin till en integrerad datoriserad process som har tillgång till ett handelskonto för att placera order. Följande är nödvändiga r programmeringskunskap för att programmera den nödvändiga handelsstrategin, de anställda programmörerna eller färdiga handelsprogramvaror, anslutning och tillgång till handelsplattformar för att placera orderna. Tillgång till marknadsdata feeds som kommer att övervakas av algoritmen för möjligheter att placera order. Förmågan och infrastruktur för att backtest systemet en gång byggt innan det går live på reala marknader. Tillgänglig historisk data för backtesting, beroende på komplexiteten av regler som implementeras i algoritmen. Här är ett omfattande exempel Royal Dutch Shell RDS är noterat på Amsterdambörsen AEX och London Börsen LSE Låt oss bygga en algoritm för att identifiera arbitrage möjligheter Här är några intressanta observationer. AEX handlar i euro medan LSE handlar i Sterling Pounds. Därefter öppnar AEX en timme tidigare än LSE, följt av båda börserna handla samtidigt för de närmaste timmarna och sedan handla endast i LSE under den sista timmen när AEX stänger. Kan vi utforska t han möjlighet till arbitragehandel på Royal Dutch Shell-börsen som är listad på dessa två marknader i två olika valutor. Ett datorprogram som kan läsa aktuella marknadspriser. Prismatningar från både LSE och AEX. A-valutahalt för GBP-EUR-växelkurs. Beställ placeringskapacitet som kan styra ordern till rätt utbyte. Backtestningskapacitet på historiska prismatningar. Dataprogrammet ska utföra följande. Read inkommande prismatning av RDS-lager från båda börserna. Använd de tillgängliga valutakurserna omvandla pris av en valuta till andra. Om det finns en tillräckligt stor prisspridning som diskonterar mäklarkostnaderna som leder till ett lönsamt tillfälle, placerar du köpordern på lägre prissättning och säljarorder på högre prissättning. Om orderna exekveras som önskat, arbitrage vinsten kommer att följa. Simple och Easy Men praktiken av algoritmisk handel är inte så enkelt att upprätthålla och genomföra Kom ihåg, om du kan placera en algo-g enerated trade, så kan de andra marknadsaktörerna Följaktligen fluktuerar priserna i milli - och till och med mikrosekunder I ovanstående exempel, vad händer om din köphandel blir verkställd, men sälja handel gör det inte, eftersom försäljningspriserna ändras när din order träffar marknaden Du kommer att sluta sitta med ett öppet läge vilket gör din arbitrage strategi värdelös. Det finns ytterligare risker och utmaningar till exempel systemfel risker, nätverksanslutningsfel, tidsfördröjningar mellan handelsorder och utförande, och viktigast av allt, ofullkomliga algoritmer Den mer komplexa algoritmen, desto strängare backtesting behövs innan den tas i funktion. Kvantitativ analys av en algoritm s prestanda spelar en viktig roll och bör granskas kritiskt. Det är spännande att gå för automatisering som stöds av datorer med en uppfattning om att tjäna pengar utan problem Men man måste se till att systemet är noggrant testat och att det krävs gränser. Analytiska handlare bör överväga att lära sig ming och byggsystem på egen hand, för att vara övertygade om att implementera rätt strategier på ett dåligt sätt. Försiktig användning och noggrann testning av algo-trading kan skapa lönsamma möjligheter. Räntan vid vilken ett förvaltningsinstitut lånar medel som förvaras i Federal Reserve till en annan depositarinstitution.1 En statistisk mått på spridning av avkastning för ett visst värdepapper eller marknadsindex Volatilitet kan antingen mätas. En amerikansk kongress godkändes 1933 som Banking Act, som förbjöd kommersiella banker att delta i investment. Nonfarm lön hänvisar till något jobb utanför gårdar, privata hushåll och icke-vinstdrivande sektorn. Den amerikanska presidiet för arbete. Valutakortet eller valutasymbolen för den indiska rupien INR, indiens valuta Rupén består av 1. Ett första bud på en konkurs Bolagets tillgångar från en intresserad köpare vald av konkursbolaget Från en pool av budgivare. Forex Robots HF-Scalping EURUSD, AUDUSD. Limited Tidsbud från BJF Trading Group inc. Forex Robot HF-Scalping. Forex Robot MT4 Expert Advisor HF-Scalping är en högfrekvent helautomatiserad handelsstrategi för MT4-plattformen, baserat på prisrörelsesindikatorn och Keltner Channel Indicator. Roboten analyserar inte bara längden på minutstearin M1, men också de tidsmässiga egenskaperna hos ljusbildningen är bildandet av hög och låg HF-Scalping Forex-robot känslig för mäklare, och du behöver äkta ECN STP-konto. Högfrekventa förklaringar. Högfrekvenshandel - En datorstyrd investeringsstrategi som betonar hög transaktionsvolym, extremt kortvariga positioner och snabb regelbaserad automatiserad köp och försäljning. Högfrekvent handel utförs av datoralgoritmer, som drivs av investmentbolag som reagerar på förutbestämd marknad förutsättningar för att generera kortsiktiga vinster. Trading-exempel. Keltner Channel Explanation. Keltner Channel är en teknisk analysindikator som visar en central movi ng genomsnittlinje plus kanallinjer på ett avstånd över och under Indikatorn är uppkallad efter Chester W Keltner 1909 1998 som beskrev den i sin 1960-bok Hur man tjänar pengar i råvaror Detta namn användes av dem som hörde om det från honom, men Keltner Kallade det den tio dagars glidande genomsnittliga handelsregeln och gjorde ingen påstående om någon originalitet för idén. I Keltners beskrivning är centrumlinjen ett 10 dagars enkelt glidande medelvärde av typiskt pris, där typiskt pris varje dag är medeltalet av Högt, lågt och nära. Linjerna ovanför och nedan är dragna ett avstånd från den centrala linjen, ett avstånd som är det enkla glidande medlet för de senaste 10 dagarnas handelsintervaller, dvs intervallet högt till lågt på varje dag. Handelsstrategin är att betrakta en Stäng över den övre raden som ett starkt haussecken eller nära under den nedre raden som starka baissekänslor, och köp eller sälj med trenden i enlighet med detta, men kanske med andra indikatorer för att bekräfta. Live kontoövervakning 1. Live kontoövervakare ing 2.Trading Resultatanalys av currency. Risk av Run Analysis. Limited time offer. Forex Robot HF-Scalping.1 JForex och 1 MT4 License. one tid payment. free support. Money tillbaka garanti 30 dagar. Detta inlägg kommer att detaljera vad jag gjorde för att göra ca 500k från högfrekvent handel från 2009 till 2010 Eftersom jag handlade helt självständigt och inte längre kör mitt program, är jag glad att berätta allt. Min handel var mestadels i Russel 2000 och DAX futures kontrakt. Nyckeln till min framgång, Jag tror att det inte var en sofistikerad ekonomisk ekvation utan snarare i den övergripande algoritmdesignen som sammanfogade många enkla komponenter och använde maskininlärning för att optimera för maximal lönsamhet. Du behövde inte behöva veta någon sofistikerad terminologi här eftersom när jag installerade mitt program var det Allt baserat på intuition Andrew Ngs fantastiska maskininlärningskurs var ännu inte tillgänglig - btw om du klickar på den här länken kommer du att tas till mitt aktuella projekt CourseTalk, en granskningsplats för MOOCs. Först vill jag bara de Bevisa att min framgång inte bara var ett resultat av lycka. Mitt program gjorde 1000-4000 trades per dag halvt halvt, halvt kort och kom aldrig i positioner på mer än ett fåtal kontrakt i taget. Det innebar att slumpmässig lycka från någon viss handel i genomsnitt ut ganska snabbt Resultatet blev jag aldrig förlorat mer än 2000 på en dag och hade aldrig en förlorande månad. EDIT Dessa siffror är efter betalning av provisioner. Och här är diagrammet för att ge dig en känsla av den dagliga variationen. Notera detta utesluter de senaste 7 månaderna eftersom - som siffrorna slutade gå upp - jag förlorade min motivation för att komma in i dem. Min trading background. Prior Att ställa in mitt automatiserade handelsprogram Jag hade 2 års erfarenhet som en manuell dagförare Detta var tillbaka 2001 - det var de första dagarna med elektronisk handel och det fanns möjligheter för scalpers att tjäna bra pengar jag kan bara beskriva vad jag gjorde Som besläktad med att spela ett videospel med en förmodad kant Att vara framgångsrik menade att vara snabb, vara disciplinerad och ha ett bra intuitivt mönsterigenkänningsförmåga jag kunde göra runt 250k, betala min studielån och få pengar kvar Win. Over Under de närmaste fem åren skulle jag starta två igångsättningar och hämta några programmeringsförmågor under vägen. Det skulle inte vara förrän i slutet av 2008 att jag skulle komma tillbaka till handeln. Med pengar som låg låg från försäljningen av min första start, handel erbjöd hopp om några snabba pengar medan jag tänkte på mitt nästa drag. Under 2008 var jag manuellt dagshandelsutgångar med programvara som heter T4. Jag ville ha några anpassade orderinmatnings snabbtangenter, så efter att jag upptäckte att T4 hade ett API tog jag utmaningen Av att lära C det programmeringsspråk som krävs för att använda API: n och fortsatte och byggde upp några hotkeys. Efter att mina fötter blivit våta med API hade jag snart större förväntningar. Jag ville lära mig att datorn skulle handla för mig. API gav både en ström av Marknadsdata och ett enkelt sätt att skicka order till utbytet - allt jag behövde var att skapa logiken i mitten. När är det en skärmdump av ett T4-handelsfönster Vad var coolt är det när jag fick mitt program att fungera kunde jag titta på datahandeln på exakt samma gränssnitt Att titta på riktiga beställningar som poppade in och ut sig själva med mina riktiga pengar var både spännande och skrämmande. Utformningen av min algoritm. Från början var mitt mål att installera ett system så att jag kunde vara rimligt co Nfident jag d tjäna pengar innan jag någonsin gjort några levande affärer För att åstadkomma detta behövde jag bygga en handelssimuleringsram som skulle - så exakt som möjligt - simulera live trading. While trading in live-mode krävde bearbetning marknadsuppdateringar strömmade genom API, simuleringsläge krävs läsning av marknadsuppdateringar från en datafil För att samla in dessa data installerar jag den första versionen av mitt program för att helt enkelt ansluta till API: n och registrera marknadsuppdateringar med tidsstämplar. Jag slutade använda 4 veckors värde av de senaste marknadsdata för att träna och testa mitt system på . Med en grundläggande ram på plats hade jag fortfarande uppgiften att räkna ut hur man gör ett lönsamt handelssystem. Det visar sig att min algoritm skulle bryta ner i två distinkta komponenter, som jag kommer att utforska i sin tur. Att pröva prisrörelser och. Trades. Predicting prisrörelser. Kanske en uppenbar del av något handelssystem kan förutse var priserna kommer att flytta och mitt var inget undantag jag definierade den nuvarande pris som medelvärdet av insidan och inbjudandet och jag satte målet att förutsäga var priset skulle vara de närmaste 10 sekunderna. Min algoritm skulle behöva komma fram med denna förutsägelse moment för stund under handelsdagen. Skapa optimering Indikatorer. Jag skapade en handfull indikatorer som visade sig ha en meningsfull förmåga att förutsäga kortvariga prisrörelser. Varje indikator producerade ett tal som var antingen positivt eller negativt. En indikator var användbar om oftare än inte ett positivt tal motsvarade marknaden går upp Och ett negativt tal motsvarade marknaden som gick ner. My system gjorde det möjligt för mig att snabbt bestämma hur mycket prediktiv förmåga någon indikator hade så att jag kunde experimentera med många olika indikatorer för att se vad som fungerade Många av indikatorerna hade variabler i formlerna Som producerade dem och jag kunde hitta de optimala värdena för dessa variabler genom att göra sida vid sida jämförelser av resultat uppnådda med olika värden. Dikatörer som var mest användbara var alla relativt enkla och baserade på de senaste händelserna på marknaden, som jag handlade såväl som marknaderna för korrelerade värdepapper. Att göra exakt prisförskjutningsprognos. Det var inte tillräckligt med indikatorer som bara förutspådde en upp - eller nerprisrörelse. Jag behövde veta exakt hur mycket prisrörelsen förutspådades av varje möjligt värde för varje indikator, jag behövde en formel som skulle konvertera ett indikatorvärde till ett prissättningsförslag. För att uppnå detta spårade jag spådda pris i 50 hinkar som berodde på det intervall som indikatorvärdet föll i Det här producerade unika förutsägelser för varje hink som jag då kunde grafera i Excel Som du kan se förväntar sig prisförändringen som indikatorvärdet ökar. Baserat på ett diagram som det här kunde jag göra en formel för att passa kurvan I början gjorde jag denna kurva montering manuellt men jag skrev snart upp en kod för att automatisera denna process. Notera att inte alla indikatorkurvorna hade samma s Hape Observera också att skoporna var logaritmiska fördelade för att sprida datapunkterna jämnt. Slutligen notera att negativa indikatorvärden och deras motsvarande nedåtriktade prisspecifikationer vändes och kombineras med de positiva värdena. Min algoritm behandlas upp och ner exakt samebindingsindikatorerna för en enda förutsägelse. En viktig sak att tänka på var att varje indikator inte var helt oberoende. Jag kunde inte helt enkelt lägga upp alla förutsägelser som varje indikator gjorde individuellt. Nyckeln var att räkna ut det extra prediktiva värdet som varje indikator hade bortom det som redan förutspåddes Det var inte svårt att genomföra, men det innebar att om jag var kurvmontering flera indikatorer samtidigt var jag tvungen att ändra mig skulle man påverka andras förutsägelser. För att kurva passa alla indikatorer samtidigt konfigurera optimeringsenheten för att bara steg 30 på vägen mot de nya förutsägelsekurvorna med varje passering Med det här 30 hoppet hittade jag Att förutsägelsekurvorna skulle stabilisera inom några passeringar. Med varje indikator som nu ger oss det s extra prissättning kan jag helt enkelt lägga till dem för att producera en enda förutsägelse av var marknaden skulle vara på 10 sekunder. Varför förutse priserna inte räcker. Du kanske tror att med den här kanten på marknaden var jag guld. Men du måste komma ihåg att marknaden består av bud och erbjudanden - det är inte bara ett marknadspris. Framgång i högfrekvent handel kommer till att få bra priser och det är inte så lätt. Följande faktorer gör att det är svårt att skapa ett lönsamt system. Med varje handel var jag tvungen att betala provisioner till både min mäklare och utbytet. Spridningsskillnaden mellan högsta bud och lägsta erbjudande innebar att om jag bara skulle köpa och Sälja slumpmässigt jag skulle förlora massor av pengar. Mest av marknadsvolymen var andra robotar som bara skulle utföra en handel med mig om de trodde att de hade någon statistisk kant. Att se ett erbjudande garanterade inte att jag kunde köpa det. tiden min köporder kom till utbytet var det mycket möjligt att det erbjudandet skulle ha blivit avbrutet. Som en liten marknadsaktör var det inget sätt att jag kunde tävla på hastighet ensam. Bygga en fullständig handelssimulering. Så hade jag ett ramverk som tillät mig att backtest och optimera indikatorer Men jag var tvungen att gå bortom det här. Jag behövde en ram som skulle göra det möjligt för mig att backtest och optimera ett fullständigt handelssystem en där jag skickade order och kom i positioner I det här fallet skulle jag optimera för totalt PL och I viss utsträckning genomsnittlig PL per handel. Detta skulle vara svårare och på något sätt omöjligt att modellera exakt men jag gjorde så gott som möjligt Jag kunde här vara några av de problem som jag hade att göra med. När en order skickades till marknaden i simulering Jag var tvungen att modellera fördröjningstiden. Det faktum att mitt system såg ett erbjudande innebar inte att det kunde köpa det genast. Systemet skulle skicka ordern, vänta ca 20 millisekunder och då bara om erbjudandet var kvar där, ansågs det som ett Exekverad handel Detta var inexakt eftersom den verkliga fördröjningstiden var inkonsekvent och orapporterad. När jag lade bud eller erbjudanden fick jag titta på handelsexekveringsströmmen från API: n och använda dem för att mäta när min order skulle ha blivit verkställd mot att göra det rätt jag var tvungen att spåra positionen för min order i kön. Det är först i första ut-systemet. Jag kunde inte göra det perfekt, men jag gjorde en bästa approximation. För att förfina min orderexekveringsimulering gjorde jag mina loggfiler från Live trading via API och jämföra dem med loggfiler som produceras genom simulerad handel från exakt samma tidsperiod som jag kunde få min simulering till den punkt som det var ganska noggrant och för de delar som var omöjliga att modellera exakt var jag säker på att producerar åtminstone resultat som statistiskt liknar de mätvärden som jag trodde var viktiga. Att skapa lönsamma affärer. Med en ordningsimuleringsmodell på plats kunde jag nu skicka order i simuleringsläge och se en simulerad PL men hur skulle m y systemet vet när och var att köpa och sälja. Prisförskjutningarna var en utgångspunkt men inte hela historien. Vad jag gjorde var att skapa ett poängsystem för var och en av fem prisnivåer på bud och erbjudande. Dessa inkluderade en nivå över insidan bjuda på en köporder och en nivå under det inbjudna erbjudandet för en försäljningsorder. Om poängen till en viss prisnivå översteg ett visst tröskelvärde skulle det innebära att mitt system borde ha ett aktivt bud erbjudande där - under tröskeln är det några aktiva beställningar bör avbrytas Baserat på detta var det inte ovanligt att mitt system skulle blinka ett bud på marknaden och sedan omedelbart avbryta det. Även om jag försökte minimera detta så är det irriterande för alla som tittar på skärmen med mänskliga ögon - inklusive mig. prisnivå poäng beräknades baserat på följande faktorer. Priset flytta förutsägelse som vi diskuterade tidigare. Prisnivån i fråga Inner nivåer menade att större prisförskjutningar förutsägelser krävdes. Antalet kontrakter framför min Order i kön Mindre var bättre. Antalet kontrakt bakom min order i kön Mer var bättre. Dessa faktorer tjänade till att identifiera säkra ställen att erbjuda budet. Prissättningen för prisrörelsen var inte tillräcklig eftersom den inte tog hänsyn till det faktum att när jag satte ett bud fylldes jag inte automatiskt - jag blev bara fylld om någon sålde till mig där Verkligheten var att det faktum att någon som säljer till mig till ett visst pris ändrade statistiska odds för handeln. De variabler som användes i detta steg Alla var föremål för optimering Detta gjordes på exakt samma sätt som jag optimerade variabler i prisrörindikatorerna, förutom i det här fallet optimerade jag för bottenlinjen P L. Vad mitt program ignorerades. När handel som människor har vi ofta kraftfulla känslor och fördomar som kan leda till mindre än optimala beslut Tydligt ville jag inte kodifiera dessa förspänningar Här är några faktorer som mina system ignorerades. Priset som en position infördes - I ett handelskontor är det ganska vanligt att höra konversation om det pris som någon är lång eller kort som om det skulle påverka deras framtida beslutsfattande. Även om detta har någon giltighet som en del av en strategi för riskreducering har det verkligen ingen betydelse för framtida händelser på marknaden. Därför min programmet ignoreras helt och hållet den här informationen Det är samma begrepp som att ignorera nedsatta kostnader. Går kort mot att lämna en lång position - Vanligtvis skulle en näringsidkare ha olika kriterier som bestämmer var man ska sälja en lång position kontra vart man ska gå kort. Men från mitt algoritmperspektiv var det ingen anledning att göra skillnad Om min algoritm förväntade sig en nedåtgående flyttförsäljning var en bra idé, oavsett om det var för länge, kort eller platt. En fördubbling av strategi - Det här är en gemensam strategi där näringsidkare kommer att köpa fler aktier i händelse att den ursprungliga handeln går emot dem Detta resulterar i att ditt genomsnittliga inköpspris är lägre och det betyder när eller om lagret vänder dig om du kommer att ställas in för att göra din mamma Ögon tillbaka på nolltid Enligt min åsikt är det här verkligen en hemsk strategi om du inte är Warren Buffet Du är lurad på att du mår bra för att de flesta av dina affärer kommer att bli vinnare Problemet är när du förlorar dig förlorar stor Den andra effekten är det Gör det svårt att bedöma om du verkligen har en kant på marknaden eller bara blir lycklig Att kunna övervaka och bekräfta att mitt program faktiskt hade en kant var ett viktigt mål. Eftersom min algoritm fattade beslut på samma sätt oavsett var det gick in i en handel eller om det för tillfället var länge eller kort satt det ibland och tog några stora förlorande affärer utöver några stora vinnande affärer Men du borde inte tro att det inte fanns någon riskhantering. För att hantera risken tillämpade jag ett maximalt Positionsstorlek på 2 kontrakt i taget, av och till stöttas upp på högvolymdagar Jag hade också en maximal daglig förlustgräns för att skydda mot eventuella oförutsedda marknadsförhållanden eller en bugg i min programvara Dessa gränser verkställdes i min kod bu t också i backend genom min mäklare Som det hände jag aldrig stött på några betydande problem. Running algoritmen. Från det ögonblick som jag började jobba på mitt program det tog mig ungefär 6 månader innan jag fick det till lönsamheten och började springa det live Även om det var rättvist, var en betydande tid att lära sig ett nytt programmeringsspråk. När jag arbetade för att förbättra programmet såg jag ökad vinst för var och en av de närmaste fyra månaderna. Varje vecka skulle jag ombilda mitt system baserat på de föregående 4 veckorna värt av Data som jag hittade här slog den rätta balansen mellan att fånga nya marknadsbeteendeutvecklingar och att försäkra min algoritm hade tillräckligt med data för att skapa meningsfulla mönster. När träningen började ta mer och mer tid splittrade jag det så att det kunde utföras av 8 virtuella maskiner som använde amazon EC2 Resultaten samlades sedan på min lokala maskin. Höjdpunkten för min handel var oktober 2009 när jag gjorde nästan 100k Efter detta fortsatte jag att spendera de närmaste fyra månaderna t Rying för att förbättra mitt program trots minskad vinst varje månad Tyvärr vid denna punkt antar jag att jag implementerade alla mina bästa idéer eftersom ingenting jag försökte verkade hjälpa till mycket. Med frustrationen att inte kunna göra förbättringar och inte ha en känsla av tillväxt, jag Började tänka på en ny riktning jag mailade 6 olika högfrekventa handelsföretag för att se om de skulle vara intresserade av att köpa min programvara och anställa mig för att arbeta för dem. Ingen svarade. Jag hade några nya idriftsättningsförslag som jag ville jobba på så jag följde aldrig upp. UPDATE - Jag publicerade detta på Hacker News och det har fått mycket uppmärksamhet. Jag vill bara säga att jag inte förespråkar någon som försöker göra något så här själv nu. Du skulle behöva ett team av riktigt smarta människor med en rad erfarenheter att ha något hopp om att konkurrera Även när jag gjorde det tror jag att det var väldigt sällsynt för individer att uppnå framgång, även om jag hade hört talas om andra. Det finns en kommentar högst upp på sidan som nämner manipulerad sta tistik och hänvisar till mig som en detaljhandel investerare att quants skulle glatt hämta det här är en ganska olycklig kommentar som helt enkelt inte är baserad i verkligheten. Att sätta bort det finns några intressanta kommentarer. UPDATE 2 - Jag har skrivit en uppföljning FAQ som svarar Några vanliga frågor jag fått från handlare om detta inlägg.

No comments:

Post a Comment