Trading Article Library Building Trading Systems använder automatisk kodgenerering av Michael R. Bryant Eftersom allt fler och fler handlare har flyttat till automatiserad handel har intresset för systematiska handelsstrategier ökat. Medan vissa handlare utvecklar sina egna handelsstrategier är den branta inlärningskurvan som krävs för att utveckla och genomföra ett handelssystem ett hinder för många handlare. En nyutvecklad lösning på detta problem är användningen av datoralgoritmer för att automatiskt generera handelssystemkod. Målet med detta tillvägagångssätt är att automatisera många av stegen i den traditionella processen att utveckla handelssystem. Automatisk kodgenereringsprogram för bygghandelssystem bygger ofta på genetisk programmering (GP), som tillhör en klass av tekniker som kallas evolutionära algoritmer. Evolutionära algoritmer och GP i synnerhet utvecklades av forskare i artificiell intelligens baserat på de biologiska begreppen reproduktion och utveckling. En GP-algoritm utvecklar en befolkning av handelsstrategier från en initial befolkning av slumpmässigt genererade medlemmar. Medlemmar av befolkningen tävlar mot varandra baserat på deras skicklighet. Fittermedlemmarna väljs som föräldrar för att producera en ny medlem av befolkningen, som ersätter en svagare (mindre passformig) medlem. Två föräldrar kombineras med en teknik som heter crossover, vilket efterliknar genetisk korsning i biologisk reproduktion. Vid korsning kombineras en del av ett föräldrasgenom med en del av det andra föräldrasgenet för att producera barngenomet. För handelssystemgenerering kan genomer representera olika delar av handelsstrategin, inklusive olika tekniska indikatorer, såsom rörliga medelvärden, stokastik och så vidare olika typer av in - och utgående order och logiska förutsättningar för att komma in och utträda marknaden. Andra medlemmar av befolkningen produceras via mutation, är vilken en medlem av befolkningen är vald för att modifieras av slumpmässigt byta delar av dess genom. Typiskt produceras en majoritet (t ex 90) av nya medlemmar av befolkningen via crossover, varvid de återstående medlemmarna produceras via mutation. Över successiva generationer av reproduktion tenderar befolkningens övergripande skicklighet att öka. Träningen bygger på en uppsättning byggnadsmål som rangordnar eller poängerar varje strategi. Exempel på byggnadsmål inkluderar olika prestationsåtgärder, till exempel nettovinst, drawdown, procentandel av vinnare, vinstfaktor och så vidare. Dessa kan anges som minimikrav, till exempel en vinstfaktor på minst 2,0, eller som mål att maximera, till exempel att maximera nettovinsten. Om det finns flera byggnadsmål kan ett vägat medelvärde användas för att bilda träningsmåttet. Processen stoppas efter några generationer eller när träningen slutar öka. Lösningen är generellt taget som den starkaste medlemmen av den resulterande befolkningen, eller hela befolkningen kan sorteras efter lämplighet och sparas för ytterligare granskning. Eftersom genetisk programmering är en typ av optimering är övermontering ett problem. Detta behandlas typiskt med hjälp av externtestning, där data som inte används för att utvärdera strategierna under byggnadsfasen används för att testa dem efteråt. I huvudsak är varje kandidatstrategi som byggts under byggprocessen en hypotes som antingen stöds eller refuseras av utvärderingen och stöds eller refunderas av resultaten utanför provet. Det finns flera fördelar med att bygga handelssystem via automatisk kodgenerering. GP-processen möjliggör syntes av strategier som endast ges en hög nivå uppsättning prestationsmål. Algoritmen gör resten. Detta minskar behovet av detaljerad kunskap om tekniska indikatorer och strategiska designprinciper. Dessutom är GP-processen opartisk. Medan de flesta handlare har utvecklat biaser för eller mot specifika indikatorer och eller handelslogik, är GP endast vägledd av vad som fungerar. Dessutom kan GP-processen genom att införliva lämplig handelsregelsemantik utformas för att producera logiskt korrekta handelsregler och felfri kod. I många fall ger GP-processen resultat som inte bara är unika men inte uppenbara. Dessa dolda pärlor skulle vara nästan omöjliga att hitta något annat sätt. Slutligen, genom att automatisera byggprocessen, kan den tid som krävs för att utveckla en livskraftig strategi minskas från veckor eller månader till några minuter i vissa fall beroende på längden på ingångsprisdatafilen och andra byggnadsinställningar. Om du vill bli informerad om nya nyheter, nyheter och specialerbjudanden från Adaptrade Software, var vänlig och följ med i vår e-postlista. TackLÄGG DENNA FORM ATT SE VÅR AUTOMATISKA FÖRVALTNINGSDOKUMENT DEMOS Denna robotbaserade handelsprogramvara är ett helt automatiserat börshandelssystem som kommer att handla på marknaden för dig 100 obevakad. Välj eller bygga en strategi, slå på och gå bort. Vår robotprogramvara hanterar resten. 100 poäng och klicka på NEJ Programmering krävs Ingen Mäklare konto krävs för att starta Maximera vinst under marknadsutveckling Skapa och test strategier i realtid Vi värdesätter din integritet och delar inte din information med någon extern byrå. Ansvarsbegränsning: Exempelstrategierna är endast avsedda för demonstration. Robotic Trading Systems gör inte köp, sälja eller hålla rekommendationer. Unika erfarenheter och tidigare prestationer garanterar inte framtida resultat. Robotic Trading Systems är programvarelaterade företag och inte licensierade mäklare. Investeringar på aktiemarknaden kan betraktas som hög risk och deltagarna bör rådgöra med sina finansiella rådgivare angående risk och lämplighet. Enkelt och intelligent skapa en aktiehandelstrategi: (Läs mer.) Det bör finnas en stegvis guide för att visa nybörjare näringsidkare hur man skapar en handelsstrategi. Finns det lediga strategier som är tillgängliga för din användning Finns det några avgifter som är inblandade eller erbjuds de gratis? Kan du ändra på hylla strategierna Observera att företag inte borde garantera dig en viss avkastning. De bästa företagen kommer att ha långa och korta börshandelsstrategier tillgängliga utan kostnad och tillåter aktiehandeln att skapa sina egna. Vissa företag kan till och med tillåta dig att kopiera strategier från en kompislista. En storlek passar inte alla. Om företaget inte berättar om detaljerna i strategin eller varför de valt eller rekommenderar ett visst lager, är det inte tillrådligt att använda det. Du kan vara överbetala för proprietära tjänster och kan få gratis aktiemarknads tips och rekommendationer online som kommer att fungera jämförbart. På Robotic Trading Software finns ingen avgift för någon strategi. Många Robotiska Trading Software-automatiserade handelsprogramvaruanvändare har generöst erbjudit de strategier som de utvecklat för offentlig användning. Du kan använda strategierna som är eller du kan ändra dem på något sätt du vill. Självklart kan du utveckla dina egna strategier från början. De flesta användare testar någon strategi de kör i simulatormoden under en tid innan de går live med reella medel. Har en lång och en kort strategi per konto: (Läs mer.) På grund av storleken på online-handelsplattformen kan det finnas en gräns för hur många strategier du kan ha laddat på varje konto. Om du till exempel vill köra två långa handelsstrategier kan du behöva två konton. Bekräfta även om du har tillräckligt med minne på din dator för två eller flera konton. Med Robotic Trading Software kan du köra en lång och en kort strategi per konto. Erfaren aktiva näringsidkare kan köra två eller flera levande långa och korta strategier, samtidigt som de har ytterligare konton för strategier som de testar i ett simulatorläge. Ju mer robusta det automatiserade handelssystemet, desto större är minneskraven. Kontrollera detta innan du registrerar dig eller köper en ny dator. Om du anmäler dig för mer än ett konto kommer din maskin att ha tillräckligt med RAM för att köra båda eller måste du köpa en extra dator eller mer minne Om du har en Mac, fråga om programvaran fungerar på Mac, som inte alla gör. Du kanske vill ha en dator som endast är avsedd för dina automatiserade börshandelsprogram och kör andra ordbehandlings - eller kalkylprogram på en separat dator. Välj bland hundratals tekniska indikatorer: (Läs mer.) Det finns bokstavligen hundratals indikatorer som aktiehandlare kan använda för att bestämma vilka lager att köpa och sälja och när. De mest robusta programmen kommer att erbjuda hundratals indikatorer för teknisk analys, som Bollinger Bands, och några kommer även att innehålla indikatorer för ljusstake Diagramformationer. Robothandelsprogram använder dessa indikatorer för att fastställa villkor för vilka online-investeringar kommer att inträffa. På Robotic Trading Software har vi över 500 tekniska indikatorer. Cool Trade är en regelbaserad handelsplattform. Indikatorer används för att välja lager för din bevakningslista, för att öppna nya positioner, för att lägga till aktuella positioner om du väljer och för att lämna dina positioner. Du kan kopiera dina kollisionsregler till dina öppna positionsregler eller lägga till nuvarande positionsregler för att göra det ännu mer användarvänligt. Du kan även skapa tidsinställda indikatorer som bara blir aktiva vid en viss tidpunkt. Lägga till eller ta bort regler är så enkelt som att klicka på Lägg till regel eller Radera valda regler knappar. Ingen programmering krävs här klicka här för att se listan över tekniska indikatorer Simulera strategier i realtid innan du kör live: (Läs mer.) De flesta handlare skulle komma överens om att theyd gillar för att prova kör ett system innan du använder det. Vissa program tillåter detta genom backtestning, där programmet använder historiska data för att utföra handlarna och visar dig vad de skulle ha varit. Detta är inte alltid korrekt, eftersom det finns mycket data som behövs för att göra ett grundligt backtest och det är nästan omöjligt att replikera alla omständigheter med bara historiska data. Dessutom, hur systemet utfördes på en marknad förra månaden eller förra året indikerar inte hur det kommer att fungera här och nu. Den bästa automatiserade handelsprogramvaran låter dig öva aktiehandel genom att använda en levande realtidsdata under marknadsföringen. Detta är den föredragna metoden eftersom det ger handlare en mycket realistisk bild av hur deras handelsstrategi utförs och förmågan att känna höga och låga dagliga handelar utan att investera riktiga pengar. Om du kan simulera affärer behöver du inte öppna ett eget mäklarkonto tills du går live med riktiga pengar. Fråga om det finns en gräns för hur länge du kan köra i simuleringsläget. En av höjdpunkterna i Robotic Trading Software är dess förmåga att simulera strategier i realtid på obestämd tid innan du kör dem live. Robotic Trading Software har sin egen dataflöde, som låter dig köra strategierna i ett simulatorläge. Du bör också se över storleken på tradingparten de 100 aktier eller 1000 aktier När du ser hur strategin fungerar kan du göra ändringar eller bestämma vilken mäklare som är bäst att använda, delvis beroende på storleken på dina affärer. Denna funktion är oumbärlig, eftersom handlare som värderar sina pengar sällan driver en strategi utan att testa den först. Utför din tradingstrategi automatiskt: (Läs mer.) Även när du är borta från din dator Bara den bästa börshandelsprogrammet kör automatiskt din handelsstrategi, även när du är borta från din dator. För det sällsynta programmet som har denna förmåga är det gjort baserat på näringsidkaren väljer tekniska indikatorer, jämförelseoperatörer och numeriska ingångar som aktiverar öppning, tillägg till eller stängning av lagerpositioner. I grund och botten är det ett reglerat mjukvarusystem. Den näringsidkare kan välja bland hundratals historiska indikatorer som representerar lagret tidigare villkor. Indikatorerna ska uppdateras dagligen med de senaste uppgifterna. Program som kan handlas automatiskt är grädden av programvaran för online investeringar. De tar emot känslorna av att investera. Långtidshandlare rapporterar att de enklaste strategierna, när de lämnas för att löpa på egen hand under långa perioder, fungerar bäst. Programmet bör också ha en manuell överstyrning så att aktörerna manuellt kan placera en handel också. Fråga specifikt om robothandelssystemet har denna förmåga. Många marknadsför sig själva som tillhandahåller automatiserad handelsprogramvara men är inte riktigt automatiserade. Robotic Trading Software är helt automatiserad. Faktum är att den är den enda helt automatiserade roboten näringsidkaren. Du kan bokstavligen ställa in din Automated Trader att starta automatiskt varje dag, gå av till jobbet, golf eller shoppa och kontrollera vinsten när du återvänder. Om Robotic Trading Systems Robotic Trading Systems är en datateknik och marknadsföring företag som specialiserat sig på robot handel programvara. Robotic Stock Trading är en artificiell intelligenssteknik som kallas nästa generations automatiserad aktiehandel. I motsats till automatiserade system. Robotic Trading Platform Trading Technology Levereras: Ett automatiserat handelssystem eller robot trading system är ett datorhandel program som automatiskt skickar handel till en utbyte. Från och med år 2010 handlades mer än 70 av aktierna på NYSE. Robotic Trading Advisors Robotic Trading Advisors, ett finans - och värdepappersföretag, erbjuder nu Robotic Trading Systems kunder investering och finansiella planeringstjänster. Det är väldigt enkelt att komma igång med en investeringsrådgivare på Robotic Trading Advisors. Att ställa in en gratis, ingen skyldighet. Ansvarsbegränsning HYPOTETISKA ELLER SIMULERADE RESULTATRESULTAT HAR VISSA INTE BEGRÄNSNINGAR. I likhet med en verklig prestationsrekord, representerar SIMULERADE RESULTAT INTE VERKSAMHET. Eftersom de faktiska omständigheterna inte har genomförts, kan resultaten ha underförstått eller överkompenseras för konsekvenserna, om några av vissa marknadsfaktorer, som saknar likviditet. SIMULERADE HANDELSPROGRAMMER I ALLMÄNT ÄR ÄVEN FAKTISKT ATT DE DESIGNERAS MED FÖRDELNINGEN AV HINDSIGHT. INGEN REPRESENTATION GÖRAS ATT ANTAL KONKURRERAR ELLER ÄR LIKTIGT FÖR ATT FÖRVÄNDA RESULTAT ELLER TABELL SOM LIKNAR TILL DE VISADE. EasyLanguage och TradeStation är registrerade varumärken som tillhör TradeStation Technologies, Inc. Inledning En av de största trenderna i detaljhandeln under det senaste decenniet har varit ökningen av populariteten för automatiserad handel. I den här typen av handel, även känd som automatiserad orderexekvering, köps och säljs signaler som genereras av ett handelssystem exekveras automatiskt av en plattform som är kopplad till handlarens mäklarekonto. Detta möjliggör handsfree-handel, vilket möjliggör snabbare körning, färre fel och möjligheten att handla kortare tidsramar med högre frekvensstrategier. När fler och fler handlare har flyttat till automatiserad handel har intresset för systematiska handelsstrategier ökat. Medan vissa handlare utvecklar sina egna handelsstrategier, saknar många handlare de färdigheter som krävs för att genomföra sina idéer. Andra handlare saknar den specifika kunskapen om tekniska handelsmetoder eller den erfarenhet som krävs för att utforma en hållbar strategi. Även för handlare med nödvändiga färdigheter för att utveckla handelssystem, är den stora tid och ansträngning som krävs för att utveckla en bra strategi ofta avskräckande. En nyutvecklad lösning på detta problem är användningen av datoralgoritmer för att automatiskt generera handelssystemkod. Målet med detta tillvägagångssätt är att automatisera många av stegen i den traditionella processen att utveckla handelssystem. I det traditionella, manuella tillvägagångssättet för strategiutveckling väljer näringsidkaren delar av handelsstrategin utifrån tidigare erfarenhet och kunskap om tekniska indikatorer, inmatnings och utgående ordertyper och strategisk design. Vanligtvis är en strategi baserad på en marknadshypotes som är en uppfattning om hur marknaden fungerar. En livskraftig handelsstrategi utvecklas typiskt genom en lång process för provning och fel med många iterationer, revisioner och testning tills acceptabla resultat uppnås. Denna traditionella process för att utveckla handelssystem är extremt tidskrävande och innebär systematiskt att eliminera många idéer som helt enkelt inte fungerar. Även alla handlare har förhoppningar om hur marknaderna fungerar, och dessa förspänningar kan påverka systemutvecklingsprocessen. I vissa fall kan dessa förspänningar vara till hjälp, men de kan också begränsa de möjliga systemen som näringsidkaren kan överväga. Snarare än att börja med en fördjupad vy och en begränsad uppsättning regler börjar en automatisk kodgenerator med en stor uppsättning regler och sökningar på ett opartiskt sätt för de kombinationer som fungerar samtidigt som de elimineras snabbt. I detta dokument presenteras en översikt över automatiska kodgenereringsmetoder för att bygga handelssystem. Både enkla och komplexa metoder diskuteras. En enkel ad hoc-metod presenteras som kan implementeras i TradeStations EasyLanguage-skriptspråk för att hitta grundläggande prismönsterbaserade strategier. Ett mer komplicerat tillvägagångssätt baserat på genetisk programmering diskuteras också. Automatiskt generera handelssystem är en attraktiv idé. Det finns emellertid också flera nackdelar. För en sak är stränga tillvägagångssätt, som de som bygger på genetisk programmering, komplexa och svåra att genomföra. Även automatisk kodgenerering bygger i allmänhet på historisk simulering, vilket innebär att det är en optimeringsprocess. Som sådan måste risken för övermontering åtgärdas. Dessa överväganden diskuteras också. Den grundläggande metoden Basalgoritmen för att bygga handelssystem med automatisk kodgenerering visas nedan i figur 1. Det börjar med en metod för att kombinera olika delar av handelsstrategin. Dessa element kan innehålla olika tekniska indikatorer, såsom glidande medelvärden, stokastik och så vidare olika typer av in - och utgåvan samt logiska förhållanden för att komma in och ut ur marknaden. Figur 1. Grundläggande algoritm för automatisk strategiuppbyggnad. Efter att de olika elementen kombinerats till en sammanhängande strategi kan den utvärderas på marknaden eller marknader av intresse. Detta kräver marknadsdata priser, volym, öppen ränta etc. för varje marknad. Generellt sett skulle du också ha en uppsättning byggnadsmål som hjälper till att rangordna eller värdera varje strategi. Exempel på byggnadsmål inkluderar olika prestationsåtgärder, till exempel nettovinst, drawdown, procent av vinnare, vinstfaktor och så vidare. Dessa kan anges som minimikrav, till exempel en vinstfaktor på minst 2,0, eller som mål att maximera, till exempel att maximera nettoresultatet. Strategingenereringen och utvärderingsstegen upprepas tills uppsägningskriterierna är uppfyllda. Uppsägningskriterierna kan vara lika enkla som att skapa ett förutbestämt antal olika strategier, eller processen kan stoppas när ingen förbättring av byggnadsmålen uppnås. En optimeringsalgoritm används vanligtvis för att styra strategierna mot dem som uppfyller byggnadsmålen. De slutliga strategierna är de som har högsta rang eller poäng baserat på byggnadsmålen. Du kan antingen ta den enklaste strategin eller spara några nummer (eller alla) av strategierna, rankade genom att bygga mål. Om det finns flera byggnadsmål kan ett vägat medelvärde användas för att bilda en enda mätning. Detta är den mest grundläggande visningen av automatisk systembyggnad. En mer detaljerad beskrivning kommer att ges nedan i avsnittet om genetisk programmering. Denna beskrivning ignorerar också det viktiga problemet med övermontering, där strategin passar så nära de marknadsdata som används under byggprocessen som strategin inte fungerar bra i framtiden när den tillämpas på nya data. Denna fråga behandlas också nedan. Teoretisk grund för automatisk kodgenerering Såsom beskrivits ovan bygger ett handelssystem med automatisk kodgenerering i huvudsak ett optimeringsproblem. Kombinationen av strategiska element som maximerar byggnadsmålen tas som den slutliga strategin. Vissa näringsidkare skulle motsätta sig att handelssystemen skulle byggas utifrån en hypotes om marknadsbeteende eller åtgärder. Om du har en bra hypotes för hur marknaderna fungerar kan en strategi byggas kring den hypotesen och testas. Om det fungerar stöder det hypotesen och motiverar att handla strategin. Faktum är att den metod som beskrivs här inte är fundamentalt annorlunda än det. Varje kandidatstrategi konstruerad under byggprocessen, som avbildad i Fig. 1, är i huvudsak en hypotes som antingen stöds eller refuteras genom utvärderingen. Om testning utanför provet används kan de slutliga strategierna stödjas eller motbevisas av resultaten utanför provet. Ett annat sätt att visa automatisk kodgenerering är som ett problem med statistisk inferens. Prisdata kan ses som en kombination av signal och brus. Signalen är den överförbara delen av data, och ljudet är allt annat. I det här sammanhanget är strategiprocessen en olinjär kurvanpassningsproblem där målet är att hitta strategier som passar signalen samtidigt som ljudet ignoreras och man undviker övermontering. Samtidigt är marknadsdata ofta icke-stationära: de statistiska egenskaperna förändras över tiden. En framgångsrik strategi är därför en som passar de stationära elementen i marknadssignalen med tillräcklig grad av frihet för att undvika övermontering. Trots att det diskuteras mer detaljerat nedan används vanligen provningstest för att verifiera att strategierna inte överträffar marknaden. Mönster System Generator för TradeStation Detta avsnitt beskriver en ad hoc-metod för automatisk kodgenerering där ett handelssystem för TradeStation genererar automatiskt andra mönsterbaserade handelssystem för TradeStation. AutoSystemGen-systemet söker efter en uppsättning handelsregler tillsammans med de associerade parametervärdena som uppfyller en viss uppsättning prestandakrav. Beroende på prestandakraven kan det finnas flera eller till och med dussintals handelssystem som uppfyller kraven. Det skriver sedan EasyLanguage-koden för varje system till en fil. För illustrativa ändamål är reglerna för de genererade systemen begränsade till prismönster. I princip kan denna teknik utökas för att automatiskt generera systemteckning från ett stort antal ingångs - och utgångstekniker som är tillämpliga på nästan vilken marknad som helst. Prismodellregler Medan nästan vilken typ av indikator eller handelslogik som helst kan ingå i handelssystemgeneratorn som beskrivs här, för att hålla sakerna ganska enkla, kommer reglerna för de genererade systemen att vara begränsade till prismönster. Varje inmatningsregel för ett genererat handelssystem kommer att ha följande formulär: där P1 och P2 är priserna (öppna, höga, låga eller nära), N1 och N2 är antalet staplar att se tillbaka (t. ex. Close2 är de närmaste två staplarna sedan) och Ineq är en olikhetsoperatör, antingen lt eller gt. Exempel på regler inkluderar följande: Stäng lt Close2 Low2 lt High10 High3 gt Close4 och så vidare. Pl, P2, N1, N2 och Ineq är alla variabler som bestäms av systemgenereringsprocessen. N1 och N2 kommer att begränsas till intervallet 0 20. Dessutom kommer antalet regler, NRules, att vara en variabel med värden som sträcker sig från en till 10. En handelsinmatning kommer att utlösas om alla regler är sanna. I så fall kommer posten att tas vid öppningen av nästa stapel. Handelsriktningen kommer att ställas in förhand så att systemet kommer att generera system som är antingen långa eller alla korta affärer. För att få handelslogik för både långa och korta affärer kan systemet köras två gånger, en gång för långa affärer och andra gången för korta affärer. Trades kommer att släppas ut på marknaden efter ett fast antal barer, NX, som kommer att sträcka sig från en till 20. Hitta reglerna Nyckeln till processen är att hitta kandidathandelssystem. Ett system kan bestå av mellan ett och 10 regler i formuläret som visas ovan. Handlarna är inkomna på marknaden om alla regler är sanna, och branschen lämnas ett visst antal barer senare. Om detta kodades som ett traditionellt TradeStation-system, med högst 10 regler, skulle det finnas 52 ingångar. Detta skulle göra en omständlig strategi. I stället kommer en annan metod att användas. Vid varje steg i optimeringen väljs värdena för varje variabel (P1, P2, N1, N2, Ineq, NRules och NX) slumpmässigt. En annan uppsättning värden för P1, P2, N1, N2 och Ineq kommer att väljas för varje regel, för totalt NRules uppsättningar av värden. Varje steg i optimeringen kommer att generera ett annat handelssystem eftersom variablerna slumpmässigt väljs. Om prestandans resultat av systemet uppfyller kraven som anges av användaren kommer det genererade systemet att skrivas till en fil i EasyLanguage-koden. Sätta allt ihop Koden för AutoSystemGen-systemet och dess relaterade funktioner finns på Breakout Futures (breakout futures) på sidan Gratis nedladdningar. Den första inmatningen till strategin heter OptStep. För att köra systemet bör OptStep optimeras i TradeStation genom att ändra det från 1 till ett stort antal, t ex 10 000, i steg om 1. Detta gör att AutoSystemGen genererar till exempel 10 000 olika handelssystem. De som uppfyller de angivna prestandakriterierna skrivs till filen som visas som en inmatning till WriteSystem-funktionen (t ex C: AutoSysGen-Output1.txt). Prestandakriterierna specificeras via systemingångarna (reqNetProfit, reqMaxDD, etc.). Det mesta av det hårda arbetet utförs av de funktioner som systemet samtalar. Funktionen GetPatVars väljer slumpmässigt värdena för de variabler som bestämmer handelsreglerna. För att avgöra huruvida en handelspost kommer att inträffa i nästa stapel, utvärderas prismodellreglerna med funktionen EvalPattern. Slutligen, om systemet uppfyller prestandakriterierna, genereras motsvarande EasyLanguage-kod och skrivs ut till en textfil med funktionen WriteSystem. Exempel Tänk på den 30-åriga statsobligationsmarknaden för futures (symbol US. P i TradeStation 8). AutoSystemGen optimerades under de senaste 20 åren av T-obligationspriser med OptStep-ingången ökad från 1 till 10000. Det innebär att systemet utvärderade 10 000 olika handelssystem. Optimeringen kördes två gånger, en gång för långa affärer och en gång för korta affärer. Följande prestationskrav användes: nettovinst på minst 30 000, sämstfallsspel inte mer än 7500, minst 200 affärer, procent lönsam på minst 50 och vinstfaktor på minst 1,2. På en dual core-dator som kör Vista tog det ungefär 10 minuter att köra varje optimering (10 000 system per optimering). Systemen som genereras av denna process visas nedan. Dessa är de system som skrivs till filen AutoSysGen-Output1.txt med WriteSystem-funktionen. De första är de enda systemen, följt av ett kortfattat system (den enda som uppfyllde prestandakriterierna). System 2332, US. P, 9172007 12:23:00, Långa affärer Nettovinst 53562,50, Max DD -7381.25, Num Trades 250, Procent vinst 56.80, Proffaktor 1.631 Var: EntNext (falskt) EntNext Open2 gt Låg16 och Låg9 gt Låg3 och Close14 lt Low6 och If EntNext sedan Köp nästa bar på marknaden Om BarsSinceEntry gt NBarExS Köp sedan för att täcka nästa bar på marknaden Om STRAILOn Köp sedan för att täcka nästa stapel vid SStop Stopp Till sist har de flesta tillämpningarna av genetisk programmering till handelsstrateginering varit akademiska studier baserade på begränsade regeluppsättningar, alltför enkel inloggnings - och utgångslogik och skräddarsydd kod, vilket gör resultaten olämpliga för de flesta handlare. Samtidigt har den mest tillgängliga mjukvaran som implementerar GP för marknadshandel antingen riktats mot professionella handlare och prissatt i enlighet med detta eller är väldigt komplicerat att sätta upp och använda. Adaptrade Builder var utformad för att göra GP enkel att använda för alla näringsidkare, enskilda eller professionella, som har en grundläggande förståelse för strategihandel och TradeStation-plattformen. Mer information om Builder finns på AdaptradeBuilder. Övermontering Bygghandelssystem via automatisk kodgenerering är en typ av optimering. De flesta systematiska handlare är förmodligen bekanta med parameteroptimering, där inmatningarna till en strategi optimeras. Till skillnad från parameteroptimering optimerar automatisk kodgenerering strategys handelslogik. Ändå är risken för överoptimering eller övermontering också en angelägenhet för automatisk kodgenerering, precis som för parameteroptimering. Typiskt utförs optimering över ett segment av data, som kallas optimerings - eller provsegmentet, och testas på olika data, som kallas provet eller utanför provsegmentet. Övermontering hänvisar till problemet med att optimera en strategi så att den passar in-sample-segmentet bra men fungerar inte bra på andra data, inklusive data utanför provet. Dålig out-of-sample prestanda orsakas oftast av en av flera faktorer. En viktig faktor är det så kallade antalet grader av frihet i in-sample-segmentet. Antalet grader av frihet, vilket är lika med antalet affärer minus antalet regler och villkor i strategin, bestämmer hur tätt strategin passar data. Under förutsättning att ingångar läggs till för varje parameter i strategin kan antalet strategiska ingångar användas som en proxy för antalet regler och villkor. Till exempel, om en strategi har 100 branscher och 10 ingångar, har den 90 grader av frihet. Ju mer grader av frihet desto mindre sannolikt är det att strategin kommer att vara överpassad till marknaden och desto mer sannolikt är det att det kommer att ha bra resultat utanför provet. Antalet grader av frihet kan ökas under byggprocessen genom att inkludera antalet branscher och eller antalet strategiska insatser som byggnadsmål. Om man antar att fitnessmetoden är ett viktat medelvärde av byggnadsmålen, blir allt annat lika med att öka vikten för antalet branscher resultera i strategier med mer affärer och därmed mer grader av frihet. På samma sätt leder ökningen av viktningen för (negativa) antal ingångar till strategier med färre ingångar, vilket också ökar antalet grader av frihet. Ett annat alternativ är att inkludera den statistiska betydelsen som ett byggnadsmål. Den statistiska signifikansen kan beräknas genom att man tillämpar studenternas t-test på den genomsnittliga handeln. Detta kommer att mäta sannolikheten för att den genomsnittliga handeln är större än noll. T-testet är baserat på antalet grader av frihet men är ett mer fullständigt mått på huruvida en strategi är överpassad än antalet grader av frihet ensam. Ett sätt att förbättra prestanda från exemplet är att inkludera betydelsen i träningsfunktionen, som tenderar att generera strategier som har en hög statistisk betydelse. En annan viktig faktor som påverkar prestanda utanför provet är de olika marknadsförhållandena i insamlingssegmentet. Generellt sett är det bättre att optimera över data som innehåller en mängd olika marknadsförutsättningar, såsom marknader för uppåtgående och nedåtgående marknader, konsolideringsperioder, hög och låg volatilitet, etc. Ju större variation i segmentet i provet desto mer sannolikt är det att strategin kommer att fungera bra på andra data, inklusive out-of-sample data och i realtidshandel. Medan framtiden aldrig duplicerar det förflutna, förutsatt att framtiden (eller out-of-sample data) är lika stor som åtminstone en del av segmentet i samplet, bör strategin fungera bra på nya data. Värdet av optimering över en mängd olika marknadsförutsättningar förutsätter att god prestanda uppnås över varje del av insamplesegmentet. Ett sätt att mäta detta är med korrelationskoefficienten för aktiekurvan, vilken mäter hur nära kapitalkurvan approximerar en rak linje. Om aktiekurvan är en rak linje, innebär det att prestanda är enhetlig över alla segment av data. Det är uppenbart att detta är önskvärt om målet är att uppnå bra prestanda över så många olika typer av marknadsförhållanden som möjligt. Korrelationskoefficienten för de strategier som genereras via automatisk kodgenerering kan ökas genom att inkludera korrelationskoefficienten som ett byggmål och viktning det som en del av träningsfunktionen. Tyvärr kommer det att finnas fall där även med hög betydelse, en korrelationskoefficient nära 1 och ett stort antal marknadsförhållanden i in-sample-segmentet, blir prestanda utanför provet dåligt. Detta kan hända av flera skäl. För det första kan även en enkel strategi med få parametrar i vissa fall passa ljudet snarare än signalen. Enligt definition är buller någon del av marknadsdata som inte bidrar till lönsamma handelssignaler. För det andra kan den marknadsdynamik som strategilogiken bygger på (dvs signalen) ha förändrats i segmentet utanför provet tillräckligt för att negativt påverka prestanda. Detta beror ibland på en grundläggande förändring på marknaden, till exempel övergången från golvbaserad till elektronisk handel. Men mer subtila förändringar, ofta relaterade till marknadsaktörernas handelsmönster, är också möjliga, särskilt för kortare handel. Om detta verkar vara problemet kan lösningen vara så enkel som att bygga om strategin med ny handelslogik. Att använda ett verktyg som Adaptrade Builder gör det mycket enklare än om manuell användning av handelsstrategins utveckling användes. En annan möjlig lösning är att inkludera de senaste uppgifterna i optimeringssegmentet och testa det utan att spåra resultatet i realtid. I de flesta fall fortsätter en strategi som har ett stort antal affärer, ett högt signifikansvärde och en bra prestanda på insamplesegmentet att fungera bra under en viss tidsperiod efter optimering. För information om programvara för att bygga handelsstrategier med genetisk programmering, vänligen klicka här. Om du vill bli informerad om nya nyheter, nyheter och specialerbjudanden från Adaptrade Software, var vänlig och följ med i vår e-postlista. Tack. Du är här: Startsida Köpsidan Köpsidor Användningsfall Fallstudie 8211 Automatiserad handelsstrategi för en CTA-fallstudie 8211 Automatiserad handelsstrategi för en CTA CTA använde flera olika system och teknik för att samla in marknadsdata, utveckla strategier och handel. Som sådan fanns det oro över hållbarheten för driftsmiljön, driftskostnaderna och tiden till marknaden för att utveckla nya strategier. CTA hade flera mål som måste uppnås på en evolutionär basis i stället för big bang för att minska projektrisken. Målsättningarna var: Minska antalet teknologier Reducera tiden till marknaden för att utnyttja nya handelsstrategier Minska latensen mellan signalgenerering och exekvering Skapa och upprätthålla marknadsdataarkiv för strategi-backtestning och optimering Minska totala kostnader för applikation och infrastruktur Med tanke på önskan För ett gradvis genomförande kom vi överens och genomförde genomförandet i tre steg. Steg 1: Set-up samling av strömmande marknadsdata. Registrering av marknadsdata är en förutsättning för backtestning och kalibrering. Vi installerade TimeBase och flödeshanteraren för kunder som valde marknadsdataleverantör. Steg 2: Utför handeln med befintlig signalgenereringsprocess. Med hjälp av TimeBases anpassade meddelandekapacitet utvecklade vi en QuantOffice-exekverings-bara-strategi som tog som ingångssignaler som genererades från den befintliga signalgenereringskoden för klienten. Sammanlagt i Cermak kördes körningsstrategin i StrategyTradingServer och handlade på CME via ExecutionServer. Steg 3: Generera signaler i Deltix. Det här sista steget involverade klienten om att skriva om sin signalgenerationslogik som en QuantOffice-strategi. Vid detta tillfälle var det ett historiskt dataregister i TimeBase som hade samlats in sedan dess implementering i steg 1. Således kunde klienten testa signalgenerationen mot hans arvskod. När testades var QuantOffice-strategin som innehöll både signal - och exekveringslogik inplacerad i StrategyTradingServer för live trading. Minskade antalet teknologier till en Minskad tid till marknaden för att utnyttja nya handelsstrategier Minskad latens mellan signalgenerering och exekvering (vilket resulterar i effektivare utförande) Skapat marknadsdatabutik för insamling och lagring av marknadsdata för strategisk backtestning och optimering Minskad Totala kostnader för applikation och infrastruktur
Comments
Post a Comment