TEMA TRADING Handler du med råvarer, finansielle produkter og valuta? Så er der stor værdi at hente ved selv mindre investeringer i it. Få her inspiration til nogle af de muligheder, du har.
Det var vigtigt for os at få en partner ind, der forstod vores forretning, og som kunne levere en dynamisk og skalerbar løsning, der fulgte med udviklingen på nye markeder og forretningsområder. Kravene til løsningen har ændret sig konstant, og her har d60 forstået at følge med og levere en løsning, der fungerer optimalt til lige netop vores forretningsbehov. Torben Nordal Clausen CEO, Danske Commodities Systemet Global Update er en afgørende og vigtig del af vores forretningsmodel, som fordrer fleksibilitet og kundetilpassede løsninger. d60 har i udviklingen og den løbende drift været en troværdig og beredt samarbejdspartner, som i alle faser har givet den nødvendige kompetence og support, der er central ved valg af ekstern leverandør. Kundecitater Torben Kampp Madsen Financial Manager, Global Risk Management I både stort og småt har vi oplevet d60 som en professionel samarbejdspartner. Konsulenterne har været meget dygtige til at opfange detaljer, og fra projektledelse, tilgang til samarbejde, løsninger og prioriteringer til generel kommunikation, samt feedback på møder og initiativer har d60 været meget professionelle. d60 har leveret løsninger til handelsvirksomheder siden 2007 Natasha Vdovenko DLG Risk Management
Optimér værdikæden Moderne it-løsninger tilbyder mange muligheder for at understøtte virksomheders værdikæder. I dette tema har vi valgt at fokusere på de fordele, man kan opnå ved at udnytte muligheder for realtidselementer. Dealcapturing Activity Værdikæden i trading Trading-virksomheder ligner de fleste andre virksomheder i opbygningen med front, middle og back office. Her er de repræsenteret ved hhv. Trading, Risk og Finance. På tværs af disse afdelinger er der forskellige behov for et flow af data. I handelsvirksomheder gælder det generelt, at traderne indtaster handler, de indtastede data flyder videre til Risk-afdelingen, som vurderer om virksomhedens eksponering er acceptabel, og til Finance, som gennemfører handlerne. Contract management Invoicing Confirmation Flow Clearing
Operationel realtidsdata Dealcapturingsystemet er der, hvor traderne indtaster handlerne. Det er afgørende, at de informationer, man trækker på i resten af virksomheden, optræder korrekt. Dealcapturing handler derfor om at indfange alle handler i en struktureret form, således at data om alle virksomhedens handler kan anvendes både operationelt og til rapportering. Et dealcapturingsystem vil have til formål at sikre datakvaliteten. Der findes mange systemer, som kan håndtere disse funktioner. Realtidselementer kommer først ind, idet man aktivt vil anvende den indsamlede data til fx at styrke Trading-afdelingens beslutningskompetencer. Hvis en trader fx forhandler med en modpart om at foretage en handel med det samme, skal vedkommende være klædt på til at foretage den bedst mulige handel. En realtidsløsning kan her samle information fra interne kilder som dealcapturingsystemet og Contract Management-systemet, samt indhente data fra eksterne kilder, såsom Reuters, Bloomberg og børser. For traderen i forhandlingssituationen betyder det, at vedkommende har al data omkring modparten til rådighed. Traderne ved dermed med det samme, hvilken kunde de står overfor; er det en kunde, der betaler sine regninger, hvor god en kunde er det, hvor meget må man handle med den givne kunde (og hvor meget har man handlet for så vidt) hvad er betalingsbetingelserne i rammeaftalen mv. Dette kan også med fordel kombineres med et realtidsbillede af priser og andre eksterne forhold fra hele verden i samme brugerflade. Her kan man for eksempel berige data med forretningslogik og vurderinger og dermed også stille automatiske prisanalyser til rådighed, baseret på kurser og forhold lige nu. Rapportering med realtidsdata Rapportering er vigtig for enhver virksomhed for at få et helhedsbillede af forretningen. Intervallet for rapporterne kan adskille sig meget. Nogle rapporter er nødvendige at køre dagligt, andre blot en gang om måneden. I trading-branchen kan der være et behov for realtidsrapporter. Profit-loss-rapporter er rigtigt gode til få et billede af, hvordan virksomhedens tradere performer. Hvad man køber og sælger til, og hvor meget man tjener på de enkelte handler, er vigtig information. Profit-loss-rapporter er rigtigt gode til at give status på succesgraden af virksomhedens handler, men de er ikke gode til at forudsige fremtiden. Manglende udsyn betyder manglende overblik og kortere planlægningshorisont. Her giver en cashflow-rapport et bredere billede af virksomhedens risikoeksponering. Mange virksomheder fastlægger øvre og nedre grænser for risikovilligheden. For lav eksponering kan betyde for få eller konservative handler for høj kan omvendt udgøre en trussel for hele virksomheden.
Rapportering Cash Flow Profit Loss Eksponering Positioner Hjælpesystemer Kontrakthåndtering Markedsdata Risikostying Beholdningsstyring Leverandør Når der handles hurtigt, ændres risikoeksponering tilsvarende hurtigt. Det kan kræve en hurtig opbremsning af trading-aktiviteten, hvis centrale parametre pludselig ændrer sig drastisk. Realtidsgenerering af cashflow-rapporter kan her være vigtige. De kan inddrage handler i samme øjeblik, de indgås, og inddrage automatiske prisanalyser med kursopdateringer, samt information fra Contract Management-systemet om betalingsfrister og fra Finance om større udgiftsposter på vej. Kort sagt betyder det, at virksomheden er gearet til at skrue op og ned for aktiviteterne som en reaktion på et realtidsbillede. Værdikæde Virksomhed 4: Faktura 3: Kontrol 2: Ordre 1: Tilbud Kunde
Systemer og rapportering En typisk udfordring for tradingbranchen er evnen til at kunne handle hurtigt og korrekt. Grunden til at disse krav er særligt vigtige inden for Trading hænger sammen med hele værdigrundlaget, som handler om at købe og sælge på de rigtige tidspunkter og tage sig betalt for at løbe en kalkuleret risiko. Værdikæden er typisk opdelt i de tre (eller flere) hovedfunktioner: Indkøb/Salg (Trading), Risikostyring (Risk) og finans (Finance). Opdelingen sikrer dedikeret fokus på at foretage den bedste handel med en acceptabel risiko og opretholde et vedvarende og sundt cashflow. Realtid Trading er en kompleks disciplin med mange betydende faktorer. Der er dog nogle generelle faktorer, der altid gælder ved en god handel, og det er timing og risiko. Timing handler om at handle til den rigtige pris, og det betyder ofte at handle på det helt rigtige tidspunkt. I et volatilt marked stiller det store krav til de it-systemer, traderen er afhængig af til at foretage selve handlen i, og som skal understøtte beslutningen om at handle. Informationer om priser, udbud, kapacitet osv. skal være så opdaterede som muligt og ofte i noget, der minder om realtid. Risk-afdelingen skal have overblikket over de indgåede handler og deraf vurdere den samlede risiko. De skal løbende kunne følge med i nye handler, sammenholde det med aktive aftaler/leverancer, foretage en risikoanalyse, beregne nye guidelines/ grænseværdier for traderne og ikke mindst kommunikere dem til trading. Alt sammen processer, der stiller krav til automatisering og bearbejdning af data i realtid.
Fleksibilitet Ud over at kunne handle effektivt på et velinformeret grundlag er det vigtigt at kunne agere hurtigt i et omskifteligt marked. Nye forretningsmuligheder og markeder kan opstå pludseligt ud fra politiske beslutninger, naturkatastrofer og andre eksterne omvæltninger. I nogle brancher kan det være afgørende at kunne gribe disse nye muligheder, når de opstår, og have en værdikæde, der er smidig nok til at håndtere dem effektivt. Igen må det ikke være systemerne, der sætter begrænsningerne for forretningen, men derimod understøtter en hurtig time-to-market proces. Kravet om realtid og fleksibilitet er nogle af de udfordringer, der er mest kendetegnende for systemudvikling og rapportering til trading-virksomheder. Det er et centralt succeskriterie, at systemerne kan udveksle data hurtigt og effektivt på tværs af forretningsfunktioner og tilsvarende understøtter den tværgående kommunikation. Traditionelt set sker udtræk og behandling af data (ETL proces) fra rækken af kildesystemer til det centrale data warehouse via skemalagte batch jobs. Det vil sige, at med jævne mellemrum starter et job, der opretter en forbindelse til kildesystemerne,kopierer data over på f.eks. en Microsoft SQL Server, hvorefter data renses, samkøres og påføres eventuel forretningslogik. Endeligt loades data over i et rapporteringslag, hvor slutbrugerne har adgang til rapporter og analyser. Denne proces er en blanding af en skemalagt opgave (ETL) og en forespørgsel fra slutbrugeren (f.eks. at opdatere en pivottabel i Excel eller trække en ny rapport). En Business Intelligence (BI) løsning baseret på denne model er god til at håndtere store datamængder, lave komplekse transformationer og danne grundlag for ad hoc udtræk på både aggregeret og detaljeret niveau. Rigtig realtime BI er dog en udfordring. Nye krav til teknikken Ud over behovene for realtidsintegration og rapportering er der mange funktioner, der stadig har behov for adgang til historiske data på et detaljeret niveau for yderligere analyse og årsagsforklaring. Der er også mange typer af data, hvor realtid enten ikke giver mening eller ikke bidrager med en forretningsmæssig værdi. Dette mix af brugere, behov og data giver nogle særlige udfordringer for teknikken og arkitekturen bag denne type løsninger.
Software i realtid I Software Development (SD) arbejdes der i mange tilfælde med data på en anden måde. Det er mere en her og nu situation, hvor det er de data, en bruger arbejder med i det aktive skærmbillede, der er i fokus. Datamængderne er typisk mindre og i en meget konkret kontekst, og så er data mellem moduler og andre systemer ofte forbundet med en handling et event (f.eks. at brugere trykker på GEM). Denne handling og afgrænsede datamængde gør, at applikationer helt naturligt kan arbejde i realtid, og at aktuelle nøgletal (f.eks. samlet salg i dag) kan opdateres, så snart brugeren har foretaget en handling (f.eks. registreret et nyt salg). Den måde SD arbejder med data er dog ikke så hensigtsmæssig, når det drejer sig om komplekse samkøringer af større mængder data fra mange kilder og efterfølgende ad hoc rapportering. Generelt er behovet for realtidsintegration- og rapporteringsløsninger stigende, men trading-branchen skiller sig ud ved, at forretningsværdien ved realtidsadgang til data og informationer ofte er meget stor. Disse udfordringer gør, at hybridløsninger, hvor man kombinerer datahåndtering og lagring fra BI (f.eks. baseret på SQL Server) med eventbaseret opdateringer, ofte er de bedste.
Trading på web og i sky Nye webstandarder giver nye muligheder for at optimere forretningsgange. Dette er ikke mindst sandt i brancher, hvor tilgængelighed, hastighed og stabilitet er afgørende faktorer. Når et team skal arbejde sammen om at lave den helt rigtige løsning, er der brug for frihed til at træffe beslutninger og et godt fælles billede af, hvorfor nogle valg er bedre end andre på det konkrete projekt. Der kan være specifikke behov i den enkelte virksomhed, som designet skal passe til, men grundlæggende har ethvert forretningsområde nogle generelle behov, der er vigtigere end andre. Tilgængelighed og til rådighed Et overordnet forretningsområde, vi beskæftiger os rigtigt meget med, er trading, og selv inden for dette område er der store forskelle kunderne imellem, hvilket gør prioriteringen af funktionalitet vigtig. Det er eksempelvis en ret forskellig proces at handle med henholdsvis el eller korn i forhold til alt fra handelsfrekvens til hvilken risiko, der er forbundet med handlerne. Selvom virksomheders forretningsprocesser og dermed prioriteringer derfor er meget forskellige, er der dog ofte to kriterier, der stilles høje krav til på tværs af handelsvarer: accessibility og availability. Accessibility handler om fysisk tilgængelighed, altså hvorfra løsningen kan anvendes, og om den også kan køre på en computer, tablet eller telefon. Availability oversættes ofte til det samme på dansk, men betyder snarere til rådighed. Det handler om, hvorvidt servicen svarer, og dermed hvordan den håndterer mange brugere
Trading på web og i sky og stor belastning. Det går ofte rigtigt stærkt inden for trading, så derfor er begge dele afgørende, så traderne kan agere hurtigt og ikke skal begrænses af at skulle sidde ved en bestemt computer eller opleve, at en service ikke svarer. Webapplikationer i skyen Behovene for accessibility og availability har ikke altid været nemme at opfylde. I forhold til disse to behov er det derfor interessant, at det i stadig stigende grad bliver muligt at lave komplette webbaserede applikationer, der kan hostes i skyen. Traditionelle applikationer stiller krav til styresystemer og opdateringer, der skal foretages for hver enkelt installation. Disse problematikker forsvinder med webapplikationer i skyen, så der er meget frihed og accessibility at vinde, samtidig med at en række problemstillinger i udviklingsprocessen forsvinder. Muligheden for at hoste i skyen gør det på samme måde væsentligt lettere at garantere availability, eftersom serverplads skaleres i takt med efterspørgslen og således aldrig vil gå ud over performance. Samtidig er det hurtigere at komme i gang, og man sparer arbejdet med selv at vedligeholde et kørende miljø.
Nye webstandarder Under den store paraply, der kaldes HTML5, kommer der webstandarder, som gør det muligt at arbejde offline og lave langt mere avancerede brugergrænseflader, end man tidligere har kunne på web. Det giver mulighed for at tænke meget mere komplicerede arbejdsprocesser ind i langt mere tilgængelige brugerflader. Når vi taler om tilgængelighed og tilrådighed, er det også samtidig vigtigt at tale om datatilgængelighed og muligheden for at have det nyeste data til rådighed hele tiden, uden at det kræver manuelle handlinger. Her kan webapplikationer i dag tilføje nye dimensioner. Et vigtigt skridt med HTML5 er nemlig forskellige muligheder for at have forbindelse til serveren og modtage opdateringer i realtid. Inden for trading er positioner og handler virksomhedens omdrejningspunkt, så adgang til disse data er kritiske for at træffe de rigtige beslutninger. Jo mere direkte adgang der er til nøgletal, jo bedre mulighed er der for at fokusere på det værdiskabende arbejde. Disse muligheder for at gøre data hurtigt tilgængeligt når som helst og hvor som helst gør det tilet rigtigt interessant tidspunkt at arbejde med forretningsapplikationer på web på. Mulighederne er mange I d60 har vi implementeret en række løsninger, der viser operationelle data og grafer, men det er stadig et område, hvor vi sammen med vores kunder løbende får nye ideer til, hvordan vi kan optimere deres forretning og give dem mulighed for at handle hurtigere end deres konkurrenter. Mulighederne i forhold til at skabe friere rammer til at arbejde og samarbejde er ikke til at overse. Realtidsopdatering handler i høj grad om at få bedst mulig indsigt i forretningen, men det er også et værktøj til at kommunikere og udarbejde løsningsforslag i fællesskab, selvom man ikke sidder på samme fysiske lokation. Mulighederne tilfredsstiller på en gang de gamle behov for accessibility og availability, samtidig med at man udnytter muligheder for at arbejde og samarbejde - smartere. Verden er flyttet på nettet og over på mobile enheder, så nu er det tid til at forretningen og vores arbejdsmetoder kommer med.
Trading og messaging Når man laver software til virksomheder, hvor tradere afgiver bud på børser og laver handler, så er tid et af de vigtigste temaer! Det er altafgørende, at man kan nå at handle til en given kurs, og for virksomheder, som ønsker at handle på volatile markeder, stiller det ofte store krav til den software, de benytter. Integrerede løsninger Disse krav vil ofte inkludere evnen til at reagere på begivenheder i realtid samt evnen til at integrere oplysninger fra mange forskellige systemer og præsentere disse oplysninger på det rigtige sted på det rigtige tidspunkt. Software er igennem historien blevet integreret på mange forskellige måder via filoverførsel, delte databaser og diverse remote procedure call-protokoller, men den model, der bedst understøtter kravet om realtid og integration, er messaging. Messaging Messaging er i sin mest simple form evnen til at pakke information om en begivenhed, et event, ned i en lille klump data, som kan distribueres mellem systemer. Et eksempel kunne være eventet NyHandelOprettet. Dette event vil formentlig indeholde information, om hvem der er handlet med, mængder, kurser mm. hvad der nu er relevant at repræsentere i det domæne, man handler inden for. Hver eneste gang man i handelssystemet opretter en handel, vil der blive distribueret sådan en lille klump data, og på den måde bliver oplysningerne gjort tilgængelige for andre systemer. Denne abstrakte kommunikationsform skal naturligvis realiseres på en måde, som er interoperabel både mellem systemer internt i virksomheder, men også gerne med eksterne systemer samt stabil og tilgængelig, for med denne model er events lige så vigtige som data i databasen! Det var formentlig den erkendelse, der fik JPMorgan Chase til i 2003 at påbegynde arbejdet på Advanced Message Queueing Protocol, måske bedre kendt som AMQP, som er den standardiserede messaging-model, der benyttes i populære brokers som RabbitMQ og Apache Qpid, samt i en del af Microsofts Azure Service Bus. Message queues Men messaging kræver ikke en broker faktisk kan der være store fordele i at lave messaging uden et centralt knudepunkt, som kan ende med at være flaskehals i hele virksomheden. Den grundlæggende byggesten i messaging er message queues altså et sted, hvor applikationer kan aflevere beskeder,
som andre applikationer kan tage ud og der er Windows-platformen ganske interessant, da den siden Windows 2000 har haft Microsoft Message Queue, MSMQ, indbygget. Uanset hvilken kø-mekanisme man vælger at basere sin messaging på, så mener jeg, at det er vigtigt, at man benytter en fornuftig programmeringsmodel ovenpå, f.eks. i form af et messaging library, der udstiller de underliggende køer med en abstraktion, der passer godt til det programmeringssprog man benytter. Det giver både lav friktion, når der skal udvikles features, samt fleksibilitet i forhold til at kunne teste kode i isolation, portere kode til andre miljøer mm. I denne forbindelse kan abstraktionen service bus inddrages, og et eksempel fra C# kan f.eks. tage sig således ud (i handelsapplikationen): bus.publish(new NyHandelOprettet { Vol = 23, Price = 55 }); for at publicere en besked og gøre den tilgængelig for andre applikationer, og (i alle andre interesserede applikationer): bus.subscribe<nyhandeloprettet>(); kombineret med en message handler class HåndterNyeHandler : IHandleMessages<NyHandelOprettet> { public void Handle(NyHandelOprettet message) REBUS // her kan man håndtere beskeden } } { for at abonnere på og håndtere beskeder af denne type.som det fremgår af ovenstående kan det være ganske nemt som programmør at benytte sig af messaging, når blot der er passende byggeklodser til rådighed. En anden indlysende fordel ved at benytte et passende messaging library, er, at man på den måde undgår at koble sig direkte til den underliggende transportmekanisme, hvilket kan gøre det nemt at flytte en eller flere komponenter ud i skyen. Forretningskoden kan nemlig ofte forblive den samme, uanset om beskederne transporteres via MSMQ, RabbitMQ eller Azure Service Bus, hvilket medfører at man kan holde alle døre åbne mht. sammensætningen af en eventuel hybrid cloud-løsning. Hvis man er interesseret i at komme i gang med messaging på.net-platformen, så kan vi anbefale et kig på Rebus, som er en simpel service bus baseret på samme model som den udbredte NServiceBus. Rebus har alle de nævnte egenskaber, og den er nem at komme i gang med og så er den ganske gratis at benytte :)
Handelsplatform der understøtter hele værdikæden Vi har udviklet en handelsplatform, der understøtter processer i transaktionstunge virksomheder. Den er fleksibel, kan tilpasses virksomheders nuværende setup og udgøres af en række moduler, som efter behov kan understøtte eksisterende systemer. Den samlede platform gør det muligt at sikre fuld understøttelse af handelsaktiviteter gennem hele værdikæden. Understøt, supplér og udvikl dit nuværende setup Vi læner os op af virksomhedens eksisterende it-miljø og fokuserer på, at de enkelte forretningsprocesser i en virksomhed understøttes af den optimale It-løsning, hvad enten dette er et standardsystem, vores modul eller en skræddersyet løsning. Det helt essentielle er, at systemer integrerer med hinanden, så virksomheden har de rette værktøjer til rådighed.
Position Overview Cash Flow Profit/Loss Storage Prices Customer Profile Administration Log out Moduler $ Total in mio. $ Position Overview 14 Largest Products in MT Soy Wheat Palm oil Fish meal Citrus 134 122 121 103 95 Largest Customers in MT Customer v 3500 Customer w 2200 Customer x 2100 Customer y 1850 Total Cashflow Next Week Next 2 weeks Next month Next quarter Customer z 900
Aarhus Søren Frichs Vej 34 A 8230 Åbyhøj København Frode Jakobsens Plads 4, 2. 2720 Vanløse Tlf. +45 32 11 66 60 kontakt@d60.dk