Maskininlärning och automatiserad handel Den stora korta (jag gillar det) Söker handelsstrategier med lönsamma backtests - UPPDATERING Jag har haft några mycket intressanta samtal sedan jag erbjöd min icke-offentliga intraday trading ram i utbyte mot information om lönsamma strategier, varför jag vill förlänga detta initialt tidsbegränsade samtal utan tidsbegränsning. Observera att jag inte letar efter strategidéer. Jag har massor av dem själv. Utmaningen ligger inte i att komma fram till en idé utan att välja rätt och testa den till slutet, när du antingen vet att den fungerar eller att den inte gör det. Den kritiska faktorn här är tiden. Så vad jag egentligen handlar om är den tid jag har investerat i utvecklingen av en solid solid intraday trading ram mot den tid du har investerat i att utveckla en lönsam handelsstrategi. Det kan vara en aktie, ETF, framtida eller optionsstrategi. Alla diskussioner och informationsutbyte kommer att hållas konfidentiella. Jag är naturligtvis öppen för att bara diskutera idéer, men vänligen förvänta mig inte att testa dem för dig och klaga inte om jag implementerar dem utan att fråga om ditt godkännande. Call for Proposals Söker handelsstrategier med lönsamma backtests Fram till den 15 juni. Jag accepterar förslag till lovande handelsstrategier för aktier, valutor och lagerindex. Strategin måste vara lönsam vid backtesting och ha ett årligt skarpt förhållande på minst 1,0. Den 1 juli kommer de två mest lovande strategierna att väljas och deras författare kan välja ett av följande alternativ: 1) Få en fullständig och fri kopia av den förbättrade, icke-offentliga handelsramen baserad på R som jag har utvecklat och använt sedan 2012 och att författarna kan använda för att handla sina strategier med interaktiva mäklare. (Den förenklade offentliga versionen kan hämtas här) 2) Skriv in ett samarbetsavtal där jag kommer att åta sig att genomföra sin strategi för R och pappershandel i högst tre månader. Alla enskilda handlar kommer att delas med författarna när de är ocurr. Dessutom kommer R-koden som är specifik för strategin (inte koden för handelsramen) att överlämnas till strategibeskrivarna. Vad ska du skicka in: En skriftlig beskrivning av strategin plus en lista över branscher plus returtidsserierna för backtest eller exekverbar Roctavepython-kod som direkt beräknar backtest return-timeseries, tillsammans med den fullständiga dataset av priser som används i backtestet. Skicka till min e-post tillgänglig i Kontakt-avsnittet Uppdatering av ren R Intraday Trading Framework Slutligen hittade jag tiden att göra detta. Långt för sent. Ramverket kör nu med de senaste (unix) versionerna av IB TWSGW (version 9493 och högre). Detta krävde i sig en delvis omskrivning av flera funktioner från det stora men nu lite föråldrade IBrokers R-paketet av Jeff Ryan. Även standardkonfigurationen för handel EURUSD har uppdaterats så att det nu är en bit tårta att köra exemplet dummy-strategin. Klona bara git repo till din lokala maskin. githubcensixINTRADAY-PartAB och följ README. Något om maskinvara Jag är fortfarande en fan av att äga min egen metall. Visst, att göra saker med konfigurerbara maskinbilder i molnet är populära eftersom du inte måste gå igenom krånget för att hantera din egen maskinvara, men det är inte krångel egentligen bara ett problem för stora organisationer där hundratusentals användare måste hållas nöjda med minimal kostnad. Så är molnet inte bara en lösning på ett problem för människor som måste hantera skalan, men försöker samtidigt sälja-på den lösningen till den individuella joe där ute, som gör det, behöver inte verkligen det. Hur som helst, som jag sa, är jag fan av att äga min egen metall. Billig hårdvara kan hjälpa dig långt om du tar dig tid att konfigurera den ordentligt. Ett 16-64 GB RAM-skrivbord med en eller två GPU: er gör ganska mycket vad du behöver. Det verkar som om backtesting-strategier använder sig av fler datortillgångar än den faktiska live-handeln. Det är därför dessa dagar du kan konfigurera och driva en intraday-strategi från en anständig bärbar dator med förtroende, medan för backtesting och forskning du verkligen vill ha RAM-CPU-GPU-monsteret ovan eller ett litet litet supercomputingkluster av din egen, som jag nyligen har beskrivit här. Pure R Intraday trading framwork Fullständig nedladdning tillgänglig Jag har gjort INTRADAY-PartA. tar. gz och INTRADAY-PartB. tgz tillgänglig för nedladdning. censixdownloads. html Hitta relationer mellan tillgångar som kan användas för statistisk arbitrage I stället för att fokusera på att förutsäga prisriktning och prisvolatilitet med olinjära modeller som härrör från maskininlärningsmetoder, skulle ett alternativ vara att försöka upptäcka exploaterbara prisförhållanden mellan tillgångar av samma klass och reagera (handel) när felprissättning sker, med andra ord, göra statistisk arbitrage. På ett visst sätt är det på något sätt lättare än att försöka prognostisera priser, eftersom det enda som man måste göra är att hitta ett förhållandevis stabilt, linjärt eller icke-linjärt förhållande mellan en grupp av minst två tillgångar och antar att, från tiden för dess upptäckt, det förhållandet kommer att fortsätta under en tid i framtiden. Handel med detta antagande är då väldigt mycket en reaktiv process som utlöses av prisrörelser som skiljer sig avsevärt från det modellerade förhållandet. Traditionell parhandel och handel med assetter i ett VECM (Vector Error Correction Model) - förhållande är bra exempel på statarb med linjära modeller. Så varför inte använda ett enkelt ett-lags neuralt nätverk eller till och med en RBM för att upptäcka ett icke-linjärt prisförhållande mellan två icke-samordnade tillgångar och om den här upptäckten är framgångsrik, handla den på samma sätt som ett klassiskt par. Saker blir ännu mer intressanta när grupper med mer än bara två tillgångar beaktas. Detta skulle då vara den icke-linjära ekvivalenten av en VECM. Funktionsval Bredd vs. Djup Låt oss säga att vi har ett univariat tiderörs predikitionsmål som antingen kan vara av typregression eller klassificering, och vi måste bestämma vilka inmatningsfunktioner som ska väljas. Mer konkret har vi ett stort univers av tidsserier som vi kan använda som ingångar och vi skulle vilja veta hur många vi borde välja (bredd) och hur långt tillbaka i tiden vill vi leta efter var och en (djup). Det finns ett tvådimensionellt utrymme för val, avgränsat av följande fyra extrema fall, under antagandet att vi har totalt N-serier och vi kan högst se tillbaka K timesteps: (1) Välj endast en serie och lookback en timestep, (2) plocka endast en serie och lookback K timesteps, (3) välj N-serie och lookback en timestep, (4) välj N-serie och lookback K timesteps. Det optimala valet kommer sannolikt inte att vara någon av dessa, eftersom (1) och (2) kanske inte innehåller tillräcklig förutsägbar information och (3) och särskilt (4) inte heller är möjliga på grund av beredningsförhållanden eller innehåller för mycket slumpmässigt brus. Det föreslagna sättet att närma sig detta är att börja små på (1), se vilken prestanda du får och öka sedan inmatningsutrymmet, antingen bredd eller djupgående, tills du har uppnått tillfredsställande prediktionsprestanda eller tills du har uttömt dina beräkningsresurser och måste antingen överge hela tillvägagångssättet :( eller köpa ett nytt (gård av) skrivbord (er) :) Använda staplade autokodrar och begränsade boltzmannmaskiner i R 12 februari 2014 staplade autokodrar (SA) och begränsade boltzmannmaskiner RBM) är mycket kraftfulla modeller för oövervakat lärande. Tyvärr är det vid skrivetiden som om det inte finns några direkta R-implementeringar tillgängliga, vilket är överraskande eftersom båda modelltyperna har funnits ett tag och R har implementeringar för många andra maskinlärningsmodelltyper. Som en lösning skulle SA kunna implementeras med ett av flera neurala nätverkspaket av R ganska snabbt (nnet, AMORE) och RBMs, ja, någon skulle behöva skriva en bra R-implementering för dem. Men med tanke på att träning både modelltyper kräver mycket beräkningsresurser vill vi också ha ett genomförande som kan utnyttja GPU: er. Så för närvarande är den enklaste lösningen vi verkar ha att använda Theano. Det kan använda GPU: er och det ger implementeringar av staplade (denoising) autoencoders och RBMs. Dessutom är PythonTheano-koden för flera andra exotiska Boltzmann Machine-varianter flytande runt nätet. Vi kan använda rPython för att kalla dessa Python-funktioner från R men utmaningen är data. Att få stora dataset fram och tillbaka mellan R och Python utan att använda den ascii-serialisering som rPython implementerar (för långsam) behöver lösas. En åtminstone lika kraftfull implementering av autokodare som stöder GPU-användning är tillgänglig via Torch7-ramen (demo). Men Torch7-funktionerna kallas med hjälp av lua och ringer dem inifrån. R behöver istället lite arbete på C-nivå. Sammanfattningsvis: Använd Theano (Python) eller Torch7 (lua) för träningsmodeller med GPU-support och skriv de utbildade modellerna till filen. I R, importera den utbildade modellen från filen och använd för prediktion. Uppdatera 25 april 2014: Följande fina lösning Ring Python från R till Rcpp borde ta oss ett steg närmare att använda Theano direkt från R. Vilka frekvenser ska vi handla. 13 januari 2014 När man försöker hitta exploaterbara marknadsmönster som man kan handla som detaljhandlare är en av de första frågorna följande: Vilka handelsfrekvenser ska man titta på månadsvisa dagliga eller intradag var som helst mellan 5 sekunder och 1 timme med begränsad tid tillgänglig för genomföra alla dessa tidsramar, blir det en viktig fråga att svara på. Jag och andra har observerat att det verkar finnas ett enkelt förhållande mellan handelsfrekvens och ansträngning som krävs för att hitta en lönsam strategi som är rent kvantitativ och har acceptabel risk. Kort sagt: Ju lägre (långsammare) frekvensen du vill handla på, desto smartare måste din lönsamma strategi vara. tradefreqvssmartness Som ett exempel kan man titta på spektrumets (mycket) högfrekventa ände, där marknadsföringsstrategier baserade på väldigt enkel matematik kan vara mycket lönsamma om man lyckas vara nära nog till marknadscentret. Med ett stort hopp i det dagliga frekvensområdet blir det mycket svårare att hitta kvantitativa strategier som är lönsamma medan de fortfarande bygger på ganska enkel matematik. Handel med vecko - och månadsintervaller med hjälp av enkla kvantitativa metoder eller tekniska indikatorer är ett mycket bra recept på katastrof. Så om vi antar att det här förhållandet verkligen är sant och med tanke på att vi kan och vill använda avancerade maskininlärningstekniker i våra handelsstrategier, kan vi börja med ett veckovis frekvensfönster och arbeta mot högre frekvenser. Veckohandel behöver inte automatiseras alls och kan göras från alla webbaserade mäklare gränssnitt. Vi kan utveckla en väska med strategier med hjälp av allmänt tillgängliga historiska data i kombination med vår favoritinlärningsalgoritm för att hitta handlingsbara marknadsmönster och sedan genomföra strategin manuellt. I denna skala bör all ansträngning gå in i att hitta och finjustera den kvantitativa strategin och mycket liten tanke behöver ställas in i handeln. Handelsautomatiseringsansträngning: 0. Strategisk smartness krävs: 100 Daglig handel bör automatiseras, såvida inte du verkligen kan ägna en fast del av din dag för att övervaka marknaderna och genomföra affärer. Att integrera maskininlärningsalgoritmer med automatiserad daglig handel är inte en trivial uppgift, men det kan göras. Handelsautomatiseringsansträngning: 20, Strategismarthet krävs: 80 På intradagtidsscheman, allt från minuter och sekunder till undersekunder, måste du anstränga sig för att automatisera dina affärer, var som helst inom intervallet mellan 20 och 90. Lyckligtvis är mindre tidsskala blir dummare din strategi kan vara, men dum är förstås ett relativt koncept här. Handelsautomatiseringsinsats: 80, Strategismarthet krävs: 20 Vilka funktioner ska användas. Handgjord vs lärd 10 december 2013 Vid ett tillfälle i designen av ett (maskin) inlärningssystem kommer du oundvikligen att fråga dig vilka funktioner som ska matas in i din modell. Det finns minst två alternativ. Den första är att använda handgjorda funktioner. Det här alternativet ger normalt bra resultat om funktionerna är väl utformade (det är naturligtvis en tautologi, eftersom du bara skulle kalla dem bra om de gav dig bra resultat.). Att utforma handgjorda funktioner kräver expertkunskaper om det fält som lärningssystemet ska tillämpas på, dvs ljudklassificering, bildigenkänning eller i vårt fallhandel. Problemet här är att du kanske inte har någon expertkunskap (ännu) och det kommer bli mycket svårt att komma med eller ta mycket tid eller troligtvis båda. Så alternativet är att lära kännetecknen från data eller med andra ord, använda oövervakat lärande för att erhålla dem. Ett krav här är att du verkligen behöver massor av data. Mycket mer av det än du skulle behöva för handgjorda funktioner, men då måste det inte märkas. Fördelen är emellertid tydlig. Du behöver inte verkligen vara expert på det specifika område du utformar systemet för, dvs handel och finans. Så medan du fortfarande behöver ta reda på vilken delmängd av de lärda funktionerna som är bäst för ditt inlärningssystem, det är också något du skulle behöva göra med de handgjorda funktionerna. Mitt förslag: Försök att utforma några handgjorda funktioner själv. Om de inte utför och du har goda skäl att tro att det är möjligt att få bättre resultat än de du får får du använda oövervakade inlärningsmetoder för att lära dig funktioner. Du kan till och med skapa ett hybridsystem som använder designade och inlärda funktioner tillsammans. Varför använder jag Open Source-verktyg för att bygga handelsapplikationer 19 november 2013 När jag började undersöka min egen automatiserade handel hade jag tre krav på den uppsättning verktyg som jag ville använda. 1) De borde kosta så lite som möjligt för att få mig igång, även om det innebar att jag var tvungen att göra mycket programmering och anpassningar själv (det skulle kosta tid) 2) Det borde finnas ett samhälle av likasinnade människor där ute använda samma verktyg för ett liknande ändamål. 3) Verktygen ska tillåta mig att gå så djupt in i systemets ingångar som det behövs, även om jag i början var mer att upptäcka grunderna. Jag ville inte hitta mig i en situation där två år längs linjen skulle behöva byta till en annan uppsättning verktyg, bara för att de jag hade börjat med gjorde det inte möjligt för mig att göra vad jag ville ha på grund av problem med slutna källor och restriktiva licensiering. Som ett resultat kom jag att välja R som mitt valfria språk för att utveckla handel algortihms och jag började använda interaktiva mäklare eftersom de tillhandahåller ett API för gränssnitt med deras mäklaresystem. Även om det finns många fina handelsverktyg som ansluter till IB Trader Workstation och vissa kan användas för automatiserad handel, erbjuder ingen av dem samma kraft, flexibilitet och samhällsstöd som R-projektet har. Dessutom har R verkligen ett fantastiskt förråd av gratis och väldigt adavanced statistik och maskininlärningspaket, något som är viktigt om du vill skapa handelsalgoritmer. Copyright copy Censix 2013 - 2015A Maskininlärningsbaserad handelsstrategi med hjälp av sentimentanalysdata Lucena Research - 25 februari 2015 Denna forskning använder en dataset av känslighetsindikatorer utvecklade av RavenPack. RavenPack undersökte nyligen nytta av dessa känslighetsindikatorer för att förutse 5-dagars prisåtergång. Vi bär det arbetet framåt i skapandet av en fullständig prediktiv modell som kan användas för att driva en handelsstrategi. Sammantaget indikerar våra resultat att känslighetsinformationen har förutsägbart värde och är användbar som en del av en maskininlärningsstrategi som överträffar marknaden markant från vilken kandidataktierna dras. Vill du se mer Connect med oss, interagera med oss Följ våra kommentarer Se videomaterial Hitta oss på Bloomberg Americas 1 (646) 277 7339 EMEA-APAC 44 (0) 20 3290 7395Skrivet för 235w sedan Mitten Uppvoted av Vladimir Novakovski. började Quora maskininlärningsteam, 2012-2014 För det första skulle du fokusera på att samla så mycket data som möjligt och lägga in en enda stor tabellform. Detta skulle vara historisk prisdata. Kanske förstärker detta med tidningsartiklar, blogginlägg, sek fileringar omvandlas till ordräkningsvektorer etc. (med hjälp av naturliga språkbehandlingstekniker). Du skulle sedan träna en övervakad algoritm för beslutet om buysell. Lämpliga algoritmer är logistisk regression (snabbaste) och slumpmässiga skogar (mest exakta vanligtvis). Det finns andra, såsom stödvektormaskiner, förstärkta beslutsträd, 3-lags neurala nätverk, men dessa don039t erbjuder lika god noggrannhet som slumpmässiga skogar (och ofta långsammare) eller lika mycket fart som logistisk regression. Enligt min åsikt skulle det bästa valet helt enkelt vara logistisk regression, och det bästa genomförandet är vowpal wabbit - extremt snabbt, kan hantera stora mängder data - 1 terabyte en timme på en maskin, ännu snabbare i kluster och öppen källkod. Detta gör det också möjligt att tydligt se vilka indikatorer (kolumner i tabellen) är prediktiva. Du kan också lägga till tidningsartiklar etc. direkt som text till det här med hjälp av hashing-tricket. Detta implementeras också i vowpal wabbit, och du kan också hantera mycket stora friformsartiklar i en enda rad. Efter att ha gjort ovanstående till den punkt som du inte längre kan samla in mer datakällor, är det dags att flytta till funktionstekniken. Du har redan gjort en del av det här när du gjorde saker (men du använde standardtekniker - dvs trodde inte att du hade egna metoder). Det finns två val just nu - manuellt och automatiskt. Vanligtvis upplever människor på denna punkt sina egna funktioner. Det här är vad handlarna tillbringar större delen av sin tid - den så kallade quotstrategiesquot eller quotrulesquot. Dessa testas mot data - kallad backtesting. En annan, nyare, automatisk metod har också nyligen blivit tillgänglig - oövervakad djup inlärning. Unsupervised lärande existerade före, men det var av citatskillnaden och fungerade inte bra i praktiken. Djupt lärande neurala nätverk som använder autoenkodare är en ny metod (uppfunnit för bara 6 år sedan) som fungerar riktigt bra. Detta dokument är en demonstration av den. I huvudsak, genom att kasta massor av datorer i problemet, kan it039 automatiskt skapa strategier. Ju större neurala nätverket desto bättre gör det, men det krävs mer datorer. Detta (enligt min mening) är dock bättre än att försöka hyra massor av mycket kreativa analytiskt arbetande människor. 17.6k Visningar mitten Visa Upphöjda mitten Inte för ReproduktionMachine Lärande i Forex Trading: Varför många akademiker gör allt fel Att bygga maskininlärningsstrategier som kan få bra resultat under levande marknadsförhållanden har alltid varit en viktig utmaning för algoritmisk handel. Trots det stora intresset och de otroliga potentiella belöningarna finns det fortfarande inga akademiska publikationer som kan visa bra maskininlärningsmodeller som framgångsrikt kan hantera handelsproblemet på den verkliga marknaden (så långt det är min kännedom, skriv en kommentar om du har en och I8217ll är mer än glad att läsa den). Även om många papper publiceras tycks visa lovande resultat, är det ofta så att dessa papper faller i en rad olika statistiska problem med bias som gör den verkliga marknadssuccesen för sina maskininlärningsstrategier mycket osannolika. På today8217s inlägg kommer jag att prata om de problem som jag ser i akademisk forskning relaterad till maskininlärning i Forex och hur jag tror att denna forskning kan förbättras för att ge mycket mer användbar information för både akademiska och handelssamhällen. De flesta fallgropar i maskininlärningsstrategidesign när man gör Forex trading är oundvikligen ärvt från världen av deterministiska lärandeproblem. När man bygger en maskininlärningsalgoritm för något som ansiktsigenkänning eller brevigenkänning finns ett väldefinierat problem som inte förändras, vilket i allmänhet hanteras genom att man bygger en maskininlärningsmodell på en delmängd av data (en träningssats) och sedan testar om Modellen kunde korrekt lösa problemet genom att använda påminnelsen om data (en testuppsättning). Det är därför du har några kända och väl etablerade datasatser som kan användas för att fastställa kvaliteten på nyutvecklade maskininlärningstekniker. Huvudpunkten här är dock att de problem som ursprungligen tacklades av maskininlärning var mest deterministiska och tidsoberoende. När man flyttar in i handeln ger man samma problem med många problem som är relaterade till både den delvis icke-deterministiska karaktären hos marknaden och dess tidsberoende. Den ena åtgärden att försöka välja utbildnings - och testuppsättningar introducerar en betydande mängd bias (en datautvalsförskjutning) som skapar ett problem. Om valet upprepas för att förbättra resultaten i testsetet 8211 som du måste anta händer i åtminstone vissa fall 8211 så lägger problemet också en stor mängd data-mining bias. Hela problemet med att göra en enda träningsvalidiseringsövning genererar också ett problem som gäller hur denna algoritm ska tillämpas vid live-handel. Per definition kommer den levande handeln att vara annorlunda eftersom valet av träningsutställningsuppsättningar behöver användas på olika data (som nu är testuppsättningen verkligen okänd data). Den bias som är inneboende i det inledande urvalet av urvalet av urvalet av urvalet och bristen på testade regler för handel med okända data gör att sådana tekniker vanligtvis misslyckas i direkt handel. Om en algoritm är utbildad med data från 2000-2012 och kryssvaliderad med 2012-2015 data finns det ingen anledning att tro att samma framgång kommer att hända om det utbildas i 2003-2015 data och sedan levereras från 2015 till 2017, är mycket olika i naturen. Mätning av algoritm framgång är också ett mycket relevant problem här. Oavsiktligt måste maskininlärningsalgoritmerna som används för handel mäts i förtjänst genom deras förmåga att generera positiv avkastning, men viss litteratur mäter fördelen med nya algoritmiska tekniker genom att försöka ställa in deras förmåga att få korrekta förutsägelser. Korrekta förutsägelser är inte nödvändigtvis lika lönsam handel som du enkelt kan se när du bygger binära klassificatorer. Om du försöker förutse nästa ljusriktning kan du ändå göra en förlust om du oftast har rätt på små ljus och fel på större ljus. Faktum är att de flesta av denna typ av klassificeringar 8211 slutar att förutsäga riktning med en över 50 noggrannhet, men inte över den nivå som behövs för att överträffa uppdrag som skulle möjliggöra lönsam binär optionshandel. Att bygga strategier som för det mesta är borta från ovanstående problem har jag alltid förespråkat för en metod där maskininlärningsalgoritmen omskolas innan ett träningsbeslut fattas. Genom att använda ett rörligt fönstret för träning och aldrig göra mer än ett beslut utan omskolning av hela algoritmen kan vi bli av med urvalet av bias som är inneboende vid val av en enda in-sampleout-of-sample-uppsättning. På så sätt är hela testet en serie träningsvaliditetsövningar som slutar säkerställa att maskininlärningsalgoritmen fungerar även under oerhört olika träningsdatasatser. Jag förespråkar också för mätning av faktiska backtesting prestanda för att mäta en maskininlärning algoritm8217s merit och dessutom skulle jag gå så långt som att säga att ingen algoritm kan vara värt sitt salt utan att bevisas under reella externa förhållanden. Att utveckla algoritmer på detta sätt är mycket svårare och jag har hittat ett enda akademiskt papper som följer denna typ av tillvägagångssätt (om jag saknade det, gärna lägga till en länk så att jag kan inkludera en kommentar). Detta betyder inte att denna metod är helt problemfri, men den är fortfarande föremål för de klassiska problem som är relevanta för alla strategibyggnadsövningar, inklusive kurvpassande bias och data-mining bias. Därför är det också viktigt att använda en stor mängd data (jag använder 25 år för testsystem, alltid omskolning efter varje maskinbeslutsfattande beslut) och att utföra adekvata data-mining bias utvärderingstest för att bestämma det förtroende vi kan säg att resultaten inte kommer från slumpmässig chans. Min vän AlgoTraderJo 8211 som också råkar vara medlem i mitt handelssamhälle 8211 växer för närvarande en tråd hos ForexFactory efter samma typ av filosofi för maskininlärningsutveckling, eftersom vi arbetar med några nya maskininlärningsalgoritmer för mitt handelssamhälle. Du kan referera till hans tråd eller tidigare inlägg på min blogg för flera exempel på maskininlärningsalgoritmer som utvecklats på detta sätt. Om du vill lära dig mer om vår utveckling av maskininlärning och hur du också kan utveckla dina egna maskininlärningsstrategier med hjälp av F4-ramarna, vänligen överväga att ansluta dig till Asirikuy. en webbplats fylld med pedagogiska videor, handelssystem, utveckling och ett ljud, ärligt och öppet tillvägagångssätt mot automatiserad handel.
No comments:
Post a Comment