SE1250897A1 - Ordermatchning - Google Patents

Ordermatchning Download PDF

Info

Publication number
SE1250897A1
SE1250897A1 SE1250897A SE1250897A SE1250897A1 SE 1250897 A1 SE1250897 A1 SE 1250897A1 SE 1250897 A SE1250897 A SE 1250897A SE 1250897 A SE1250897 A SE 1250897A SE 1250897 A1 SE1250897 A1 SE 1250897A1
Authority
SE
Sweden
Prior art keywords
orders
subset
row
subsct
bid
Prior art date
Application number
SE1250897A
Other languages
English (en)
Inventor
Hannes Joergen Edvardsson
Original Assignee
Cinnober Financial Technology Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP10150065A external-priority patent/EP2355015A1/en
Priority claimed from GB201000047A external-priority patent/GB2476677A/en
Application filed by Cinnober Financial Technology Ab filed Critical Cinnober Financial Technology Ab
Publication of SE1250897A1 publication Critical patent/SE1250897A1/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Human Resources & Organizations (AREA)
  • Game Theory and Decision Science (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Automatiserat handelssystem, vilket innefattar. ett gränssnitt för att ta emot ett flertal order som innefattar sälj- och köporder; och en handelsmodul för att matcha säljorderna och köporderna, där handelssystemet innefattar ett minne för att lagra nämnda flertal order;. en delmängdssummamodul konfigurerad att hitta delmängdssumman av säljorderna och delmängdssumman av köporderna av nämnda flertal order; och. en ordermatchningsmodul för att matcha en kombination av säljorder till en kombination av köporder baserad på delmängdssummorna av säljorderna och delmängdssummorna av köporderna,. där nämnda delmängdssummamodul är konfigurerad att hitta delmängdssummorna av en mängd order genom att ta hänsyn till en första mängd order av mängden av order, bestämma delmängdssummorna av den första mängden order, ta hänsyn till en andra mängd order av orderna där den andra mängden order innefattar minst en ytterligare order än den första mängden av order och att bestämma delmängdssummorna av den andra mängden order genom att använda de bestämda delmängdssummorna av den första mängden order.Fig. 1

Description

15 20 25 30 35 Problemet som ska lösas för varje mängd order är känt som delmängdsummaproblemet och är ett så-kallat NP-hard problem som innebär att inga kända algoritmer har en komplexitetsorder som är lägre än exponentiell komplexitet i termer av antal element i mängden. l praktiken innebär detta att problemets komplexitet växer mycket snabbt då flera ordar föreligger i beräkningarna.
Problemet växer om medlemmarna tillåts ge mera generaliserade minstavolymvillkor. Till exempel kan en medlem ge en order för en specifik totalvolym följt av ett villkor som specificerar den minsta volymen av den totala volymen som medlemmen är villig att acceptera. Till exempel kan en medlem ge en säljorder med volym 100, med minsta volymvillkor 40. om orderboken inkluderar en matchande köporder med volymen 50 skapas en affär för volymen 50, eftersom 50 är högre än minstavolymvillkoret av säljordern.
Det är ofta önskvärt att applicera specialregler till minsta volymvillkorsorder. Reglerna kan inkludera att inte garantera prioritet till minstavolymvillkorsorder över order med mindre generösa priser. Närmare bestämt måste för order utan volymvillkor en säljorder med ett högt pris alltid utföras innan en säljorder med ett lägre pris. Då minstavolymvillkor kan förhindra matchning måste denna regel ändras för att tillåta undantag för minstavolymorder.
Pga. ett stort antal olika tänkbara volymer som är tillåtna av minstavolymvillkorsorder och att reglerna måste följas gör minsta volymvillkorsorder det mera komplicerat att matcha sälj- och köporder.
Flera handelssystem tillhandahåller matchning av AoN-order och minstavolymvillkorsorder.
Emellertid tvingar komplexiteten med att hitta den optimala lösningen systemen att nöja sig med en suboptimal lösning, antingen genom att stoppa optimeringen efter ett konfigurerbart antal steg eller genom att implementera en ”bästa försök”-algoritm som inte garanterar den optimala lösningen men garanterar ett resultat inom en rimlig tid.
Dessutom inkluderar många av de kända handelssystemen inte order med minstavolymvillkor i beräkningen av jämviktspriset. Istället beräknas jämviktspriset typiskt från mängden order utan minsta volymvillkor och orderna med minsta volymvillkor matchas sedan med en bästa försök algoritm som tar jämviktspriset som inmatning. Problemet med detta sätt är att minstavolymvillkor vanligen appliceras på stora order. Om jämviktspriset enbart är baserat på små order avspeglar det inte den verkliga marknadssituationen. 10 15 20 25 30 35 Dynamisk programmering är en metod för att lösa komplexa problem genom att bryta ned dem till enklare delproblem på ett rekursivt sätt. Om en viss beräkning är ett delproblem i en större beräkning kan resultatet från beräkningen lagras och återanvändas i den större beräkningen.
Dymanisk programmering med ordet RAM av D. Pisinger, Algorithmica, 352128-145, 2003 beskriver en dynamisk programmeringsalgoritm för att lösa ett delmängdssummaproblem.
Uppfinningen gjordes med detta i åtanke.
Kortfattad beskrivning Enligt uppfinningen tillhandahålls ett automatiserat handelssystem, vilket innefattar ett gränssnitt för att ta emot ett flertal order som innefattar sälj- och köporder; och en handelsmodul för att matcha sälj- och köporderna, där handelsmodulen innefattar ett minne för att lagra nämnda flertal mottagna order; en delmängdsummamodul konfigurerad att hitta delmängdssummorna av säljorderna och delmängdssummorna av köporderna; och en ordermatchningsmodul för att matcha en kombination av säljorder till en kombination av köporder baserad på delmängdssummorna av säljorderna och delmängdssummorna av köporderna, där delmängdssummamodulen är konfigurerad att hitta delmängdssummorna av en mängd order genom att ta hänsyn till en första mängd order av mängden av order, att bestämma delmängdssummorna av den första mängden order, ta hänsyn till en andra mängd order där den andra mängden order innefattar minst en ytterligare order än den första mängden av order och att bestämma delmängdssummorna av den andra mängden order genom att använda de bestämda delmängdssummorna av den första mängden order.
Den första mängden order kan innefatta order ai med minsta volymvillkor ci och delmängdssummamodulen kan vara konfigurerad att bestämma ett värde gi, ,- som indikerar om en mängd Si={a1,....ai} innefattar en delmängd som summerar till ett värdej genom att notera att mängden Si={a1,....ai} har en delmängd som summerar till j, om SM har en delmängd som summerartill j eller om SM har en delmängd som summerar till j-k, där cisksai. Minstavolymvillkorsorder kan innefatta en eller flera AoN-order, där k=ai=c;.
Delmängdssummamodulen kan vara anordnad att konstruera en matris i vilken varje rad motsvarar en mängd order, Si, j, varje kolumn motsvarar en delmängdssummaj och elementet vid en viss position i, j indikerar om mängden S; har en delmängd som summerar till summanj och delmängdssummamodulen kan vara konfigurerad att populera en rad 10 15 20 25 30 35 genom att ta hänsyn till en mängd ordar som innefattar ytterligare en order än mängden order som motsvarar föregående rad och använda föregående rads elements värde.
Om nämnda ytterligare ena order är en AoN-order kan delmängdssummamodulen vara konfigurerad att addera en första kopia av den föregående raden till den nya raden; och addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar volymen av nämnda ytterligare ena order till den nya raden.
Om nämnda ytterligare ena order är en minstavolymvillkorsorder, kan delmängdssummamodulen vara konfigurerad att addera en första kopia av den föregående raden till den nya raden; addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar en tänkbar volym av nämnda ytterligare ena order och spridd för att representera alla tänkbara volymer av orderna till den nya raden.
Den andra kopian kan vara skiftad ett antal kolumner motsvarande den minsta volymen av nämnda ytterligare ena order och delmängdsmodulen kan vara konfigurerad att addera den andra kopian, skiftad nämnda antal kolumner, till en temporär rad; sätta element g,, , i den temporära raden för att indikera attj är en delmängdssumma om g,, ,.m av den andra kopian av den föregående raden, skiftad nämnda antal kolumner, indikerar att j-m är en delmängdssumma av den föregående raden, där m är ett heltal och 0 När alla order har adderats och alla rader har populerats har den sista raden i matrisen element som satts som indikerar volymerna som kan ges i hela mängden order. Således medger uppfinningen att delmängdssummaproblemet kan lösas förhållandevis snabbt.
Algoritmens hjärta och anledningen till dess hastighet anses vara att algoritmen arbetar på mängden volymsummor istället för på mängden elementdelmängder. Algoritmen kan anses vara en pseudopolynominalalgoritm_ Om g,,,=1 indikerar att mängden S, har en delmängd som summerartillj och g,,,=O indikerar att mängden S, inte har en delmängd som summerar tillj kan delmängdssummamodulen vara konfigurerad till att populera raderna av matrisen genom att sätta go, ,=1 förj =0 och go, , =O förj >O och använda rekursionen g,,, =1 iff(g,_,,,= 1 eller g,-,,,_a, = 1).
Om g,,,=1 indikerar att mängden S, har en delmängd som summerar tillj och g,,,=0 indikerar att mängden S, inte har en delmängd som summerar tillj och kan delmängdssummamodulen vara konfigurerad till att populera raderna av matrisen genom att sätta go, , =1 förj=O och go, ,=O förj>0 och använda rekursionen g,,,=1 iff (g,.,,, = 1 eller g,.,,,-,o=1) där qsksa, 10 15 20 25 30 35 Det automatiserade handelssystemet kan ytterligare innefatta medel för att begära orderna i en sekvens med avseende pà pris och delmängdssummamodulen kan vara konfigurerad att välja nämnda ytterligare ena order som nästa order i sekvensen.
Handelsmodulen kan ytterligare innefatta medel för att hitta den högsta gemensamma summan av nämnda delmängdssummor för säljorderna och nämnda delmängdssummor för mängderna köporder och ordermatchningsmodulen kan vara konfigurerad att bestämma en kombination av säljorder och en kombination av köporder som summerar till den högsta gemenSamma Summan.
Således medger uppfinningen att omsättningen kan maximeras genom att fullständigt lösa delmängdssummaproblemet för sälj- och köporderna.
Ordermatchningsmodulen kan ytterligare vara konfigurerad att, ur mängden order, hitta en lösningsdelmängd som summerar till den högsta gemensamma summan genom att a) sätta parameter V lika med den högsta gemensamma summan; b) hitta nämnda ytterligare ena order som adderats för att bilda mängden som motsvarar den lägsta raden i matrisen med delmängdssumman V, c) addera denna order till lösningsdelmängden; d) bestämma volymen av nämnda ytterligare order som tillåts handlas och volymen Vnästa som återstår efter nämnda ytterligare ena order tillåts handlas den bestämda volymen; e) sätta V=V-Vnästa f) upprepa stegen b) till e) tills V=0.
Således säkerställer det automatiserade handelsystemet att samma delmängd alltid hittas för en matris och en specifik summa.
Handelsmodulen kan vara konfigurerad att bestämma volymen som är tillåten att handla så att volymen som blir kvar maximeras. Av denna anledning kan handelsmodulen välja minsta möjliga volym för ordern som ska handlas samtidigt som man säkerställer att kombinationen av volymer som är tillåtna att handla summerar till den högsta gemensamma summan.
Således maximeras volymen som blir kvar för order med högre prioritet. För att hitta minsta möjliga volym för en order ai som är tillåten att handlas kan handelsmodulen bestämma volymen Vmax för hela ordern ai, volymen Vmm av minstavolymvillkor ci och skillnaden Vgack mellan Vmax och Vmm. Handelsmodulen undersöker sedan kolumnerna i intervallet [v- 10 15 20 25 30 35 (vmfivgack), v-vmin] pà raden omedelbart ovanför föreliggande rad och väljer den högsta delmängdssumman Vnästa i dessa kolumner.
Det automatiserade handelssystemet kan ytterligare innefatta en jämviktsprisberäkningsmodul konfigurerad att bestämma omsättningen vid varje möjligt pris baserat på delmängdssummamatrisen.
Gränssnittet kan vara konfigurerat till att ta emot flertalet order från ett flertal medlemsterminaler, där ordermatchningsmodulen kan vara konfigurerad till att skapa affärer mellan nämnda kombination av säljorder och nämnda kombination av köporder; och gränssnittet kan ytterligare vara konfigurerat till att kommunicera information om de matchade orderna som är tillåtna att handlas till nämnda medlemsterminaler.
Enligt uppfinningen tillhandahålls även ett förfarande för att matcha order i ett automatiserat handelssystem som innefattar: att ta emot ett flertal order i ett automatiserat handelssystem, där flertalet order innefattar sälj- och köporder; att lagra nämnda flertal order som givits till systemet i en orderbok; att bestämma delmängdssummorna av en mängd order som motsvarar säljorderna och bestämma delmängdssummorna för en mängd order som motsvarar säljorderna; och att matcha en kombination av säljorder med en kombination av köporder baserat på de bestämda delmängdssummorna för säljorderna och delmängdssummorna för köporderna, där att bestämma delmängdssummorna för en mängd order innefattar att ta hänsyn till en första mängd order, att bestämma delmängdssummorna av en första mängd order, att ta hänsyn till en andra mängd order där den andra mängden order innefattar minst en ytterligare order än den första mängden order, och att bestämma delmängdsummorna av den andra mängden order genom att använda de bestämda delmängdssummorna av den första mängden order.
Mängden order kan innefatta order ai med ett minstavolymvillkor ci och där att bestämma delmängdssumman av en mängd order innefattar att bestämma ett värde gi, J- som indikerar om en mängd Si = {a1,...,ai} innefattar en delmängdssumma som summerar till värdej genom att notera att mängden Si={a1,... ,ai} har en delmängdssumma som summerar till j, om SM har en delmängd som summerar tillj eller om SM har en delmängd som summerar till j-k, där ci sksai. Minstavolymvillkorsorder kan innefatta minst en alla-eller-ingen (AoN)-order, där k=ai=ci. 10 15 20 25 30 35 Att bestämma delmängdssumman av en mängd order kan innefatta att konstruera en matris i vilken varje rad motsvarar en mängd order, Sii, där varje kolumn motsvarar en delmängdssummaj och elementet vid en viss position i, j indikerar om mängden Si har en delmängd som summerar till värdetj och populera en ny rad genom att ta hänsyn till en mängd order som innefattar ytterligare en order än mängden order som motsvarar föregående rad och använda värdena av elementen hos föregående rad.
Om nämnda ytterligare en order som adderas är en AoN-order, kan att populera nämnda nya rad innefatta att addera en första kopia av den föregående raden till den nya raden, att addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar volymen av nämnda ytterligare en order, till den nya raden.
När den ytterligare ena ordern kan vara vilken som helst minstavolymvillkorsorder kan att populera nämnda nya rad innefatta att addera en första kopia av den föregående raden till nämnda nya rad, att addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar en möjlig volym av nämnda ytterligare en order och utsmetad för att representera alla möjliga volymer av ordern, till den nya raden.
Den andra kopian kan vara skiftad ett antal kolumner som motsvarar den minsta volymen av nämnda ytterligare ena order och populera nämnda rad kan ytterligare innefatta att addera den andra kopian, skiftad nämnda antal kolumner, till en temporär rad; att sätta element gi>i i den temporära raden för att indikera attj är en delmängdssumma om gi>i.iii av den andra kopian av den föregående raden, skiftad nämnda antal kolumner, indikerar att j-m är en delmängdssumma av den föregående raden, där m är ett heltal och 0 Att populera nämnda rad kan innefatta att sätta go, i=1 förj=o och go, i förj>0 och använda rekursionen gii = 1 íff(9i-1,i = 1 eller gi_i,i_ai = 1) där gii=1 indikerar att mängden Si inte har en delmängd som summerar till j och gi_ i=0 indikerar att mängden Si inte har en delmängd som summerar till j.
Att populera nämnda rad kan innefatta att sätta go, i=1 förj=O och 9o,1=0 förj>0 och att använda rekursionen gii =1 iff(gi_i, i= 1 eller gi_i_i_k =1) där cisksai och gii indikerar att mängden Si har en delmängd som summerar tillj och gii=0 indikerar att mängden Si inte behöver ha en delmängd som summerar till j. 10 15 20 25 30 35 Förfarandet kan ytterligare innefatta att beställa orderna i termer av pris i en sekvens och att välja nämnda ytterligare ena order som nästa order i sekvensen.
Att matcha en kombination av säljorder med en kombination av köporder kan innefatta att bestämma högsta gemensamma summa av nämnda delmängdssummor för säljorderna och nämnda delmängdssummor för köporderna.
Att matcha en kombination av säljorder med en kombination av köporder kan ytterligare innefatta att bestämma, från en mängd order, lösningsdelmängden som summerar till högsta gemensamma summan genom att a) sätta parameter v lika med den högsta gemensamma summan; b) hitta nämnda ytterligare ena order för att bilda mängden som motsvarar den lägsta raden i matrisen med delmängdssumman V, c) addera denna order till lösningsdelmängden; d) bestämma volymen av nämnda ytterligare ena order som är tillåten att handlas och volymen Vnäsw som är kvar efter nämnda ytterligare ena order tillåts handla den bestämda volymen; e) sätta V=V-Vnäs,a f) upprepa stegen b) till e) tills V=0.
Handelsmodulen kan vara konfigurerad till att bestämma volymen som är tillåten att handla så att volymen som blir kvar maximeras.
Förfarandet kan ytterligare innefatta att bestämma omsättningen vid varjejämviktspris av en mängd order baserat på den konstruerade matrisen.
I en del utföringsformer kan ta emot ett flertal order innefatta att ta emot ett flertal order från ett flertal medlemsterminaler, där förfarandet ytterligare innefattar att skapa affärer mellan kombinationen av köporder och kombinationen av säljorder och kommunicera information om de matchade orderna som är tillåtna att handla till nämnda medlemsterminaler.
Enligt uppfinningen tillhandahålls även ett datorprogram som innefattar instruktioner som när det körs av en processoranordning bringar processoranordningen att utföra ovan angivna metod.
Kortfattad beskrivning av ritningsfigurer 10 15 20 25 30 35 Utföringsformer av uppfinningen kommer nu att beskrivas, genom exempel, med hänvisning till åtföljande ritningsfigurer, av vilka: Fig. 1 är ett schematiskt schema som visar komponenter av ett automatiserat handelssystem; Fig. 2 är ett schematiskt schema som visar de olika faserna av en anropsauktion; Fig. 3 är ett schematiskt schema som visar olika moduler av en handelsmodul i det automatiserade handelssystemet; Fig. 4a och 4b visar ett exempel på sälj- och köporderna som kan lagras av en orderbok hos handelssystemet; Fig. 5a och 5b visar två tabeller för att lösa delsummaproblemen för sälj- och köporderna i figurerna 4a och 4b; Fig. 6a och 6b visar andra exempel pà sälj- och köporder som kan lagras av en orderbok hos handelssystemet; Fig. 7 visar en tabell för att beräkna jämviktspriset för orderna i figurerna 6a och 6b; Fig. 8a och 8b visar två tabeller för att lösa delmängdssummaproblemen för sälj- och köporderna i figurerna 6a och 6b; Fig. 9 visar en process för att matcha order; Fig. 10 visar en process för att lösa delmängdssummaproblemet för AoN-order som tagits emot i handelssystemet; Fig. 11 visar en process för att bestämma ettjämviktspris för en mängd order; Fig. 12 visar ett tredje exempel av order som kan lagras av en orderbok i handelssystemet; Fig. 13 visar en tabell för att lösa delmängdsummaproblemen för orderna i figur 13; Fig. 14 visar en process för att lösa delmängdssummaproblemet för alla slags minstavolymvillkorsorder som tagits emot av handelssystemet; och Fig. 15 visar en process för att bestämma delmängden som summerar till en specifik summa enligt en del utföringsformer av uppfinningen.
Detaljerad beskrivning Med hänvisning till Fig. 1 visas ett elektroniskt automatiserat handelsystem 1 som innefattar ett gränssnitt 2 för att kommunicera med marknadsmedlemmar, en handelsmodul 3, och en timing modul 4. Marknadsmedlemmarna ger sälj- och köporder 5a, 5b till det automatiserade handelsystemet 1 och om en eller flera av köporderna matchar en eller flera av säljorderna skapas en affär. Det elektroniska automatiserade handelsystemet 1 kan även använda gränssnittet 2 för att informera marknadsmedlemmarna när väl en affär skapas.
Handelsmodulen 3 innefattar en orderbok 6 för att lagra order som tas emot från marknadsmedlemmarna via gränssnittet 2. Handelsmodulen 3 innefattar vidare en 10 15 20 25 30 35 processoranordning 7 för att matcha orderna och skapa affärerna och ett minne 8 för att lagra programkod och data. Processoranordningen 7 kan matcha orderna och skapa affärerna genom att köra programkod lagrad i minnet 8. Orderboken 6 kan vara implementerad i ett minne, som utgör en del av, eller är avskilt från, minnet som visas i Fig. 1. Det automatiserade handelssystemet kan även innefatta, till exempel, en databas för att lagra detaljer om marknadsmedlemmar, ett gränssnitt för ett klareringssystem och ett ytterligare minne som lagrar inställningar (som inte visas).
Marknadsmedlemmarna kan ge orderna genom att använda ett antal medlemsterminaler 9 och gränssnittet 2 kan ta emot orderna från medlemsterminalerna 9. Orderna kan tas emot från medlemsterminalerna via ett kommunikationsnärverk. Medlemsterminalerna kan till exempel vara bordsdatorer men alla typer av lämpliga anordningar är tänkbara. Information som indikerar att angivna order har matchats kan sändas över kommunikationsnätverket till medlemsterminalerna 9 och visas på medlemsterminalerna. Det automatiserade handelssystemet 1 kan ytterligare förmedla information om de matchade orderna till ett klareringssystem för att medge affärer som resulterat från de matchade orderna att klareras och avslutas.
Enligt en del utföringsformer medger handelsystemet marknadsmedlemmarna att handla genom att använda en anropsauktion. Med hänvisning till Fig. 2 innefattar en anropsauktion tvà huvudfaser 10, 11. I den första fasen 10, som fortsättningsvis kallas föranropsfas, tar systemet emot och lagrar en eller flera säljorder 5a och en eller flera köporder 5b från marknadsmedlemmarna, utan att matcha sälj- och köporderna. Orderna tas emot genom gränssnittet 2 och lagras i orderboken 6. Denna fas fortsätter tills en viss tid, som ställts in med en timer i timing modulen 4 hos handelssystemet. I den andra fasen 11, som fortsättningsvis kallas auktionsfasen, matchas orderna. Den andra fasen innefattar tvà delfaser. I den första delfasen 11a beräknas ett jämviktspris. I den andra delfasen 11b matchas och skapas orderna som kan handlas vid jämviktspriset.
Det är känt hur man tar emot och lagrar order och föranropsfasen kommer därför inte beskrivas mera detaljerat i detta sammanhang. Auktionsfasen beskrivs nedan.
Med hänvisning till Fig. 3 kan processoranordningen 7 hos handelsmodulen 3 ha åtkomst till ett antal mjukvarurutineri minne 8 för att utföra auktionsfasen. I en utföringsform kan processoranordningen 7 och mjukvarurutinerna tillsammans ses som att utgöra ett antal moduler som visas i Fig. 3. Modulerna kan innefatta en jämviktsprisberäkningsmodul 12, en ordermatchningsmodul 13, en delmängdssummamodul 14, en gemensam modul 15 för att 10 10 15 20 25 30 35 bestämma en summa och ett minne 16 för att lagra data. I en del utföringsformer kan mjukvarurutinerna vara implementerade som objektorienterade program och modulerna kan sedan ses som olika objekt. Dessutom är i en del utföringsformer uppfinningen implementerad i hårdvara och processorerna och mjukvarurutinerna kan ersättas av dedikerade hårdvarumoduler. Uppgifterna som utförs av de olika modulerna kommer beskrivas mera detaljerat nedan.
Som framgåri Fig. 4a och 4b har, under föranropsfasen, säljorder med volymerna 3, 2 och 7 och köporder med volymerna 5, 3 och 6 tagits emot i det automatiserade handelssystemet.
Alla orderna är AoN-order. För enkelhets skull är alla order vid samma pris och jämviktspriset sätts till detta pris. Detta skulle normalt inte inträffa och en mera realistisk situation med order vid olika priser beskrivs senare.
För att hitta den högsta gemensamma summan för säljorderna och köporderna måste två delmängdssummaproblem lösas. Enligt uppfinningen används en dynamisk programalgoritm, i vilken problemet bryts ned i mindre problem för att reducera beräkningarnas komplexitet.
Utgående från säljorderna konstrueras en tabell för att bestämma delmängdssummorna som visas i Fig. 5a. Problemet bryts ned så att delmängdssummorna beräknas rekursivt för större och större ordermängder. Av denna anledning representerar varje rad i tabellen en mängd av order Si={a1,..., ai} och varje kolumn i raden representerar en summa av en viss delmängd av mängden order för den raden. En mängd order som motsvarar en rad innefattar ytterligare en order än mängden av order som motsvarar föregående rad. Orderna är anordnade i en viss sekvens och nästa order i sekvensen adderas till mängden av den föregående raden för att bilda mängden av en ny rad. Orderna kan beställas enligt tiden vid vilken de togs emot av handelssystemet. Den sista raden visar delmängdssummorna för en mängd order Sa som innefattar alla säljorder. Tabellen kana vara konstruerad av delmängdssummamodulen 14 i Fig. 3.
För att konstruera tabellen används hela mängden order sb={0, 3, 2, 7} där ao =0, a1=3, a2=2 och a3=7. Den första mängden som motsvarar den första raden väljs som den tomma mängden, med i=0. Denna mängd, S0={a0j, innefattar enbart a0=O. Den enda summan för denna mängd är därför 0, som visas i Fig. 5a. Den andra mängden innefattar element med i=0 och i=1, dvs. mängden S1=0, 3. Denna mängd innefattar delmängdssummorna av föregående mängd, dvs. summan 0 och delmängdssummorna skapas genom att addera det nya elementets värde till summorna av delmängderna av föregående mängd, i detta fall 11 10 15 20 25 30 enbart 3. Den andra raden i matrisen kan därför konstrueras genom att kopiera den första raden av matrisen plus addera en kopia av den första raden skiftad tre kolumner, dvs. antalet kolumnet lika med det nya elementet, a, i mängden.
Den tredje mängden skapas genom att addera ett annat element, a2=2 till mängden. Den tredje mängden är därför S2={O, 3, 2}. Den tredje raden konstrueras genom att igen kopiera föregående rad, den andra raden och addera en kopia av föregående rad skiftad ett antal kolumner lika med värdet av ordern som adderats till mängden. Som ett resultat visar den tredje raden alla summorna av alla delmängder av mängden {0, 3, 2}, nämligen O, 2, 3 och 5.
Slutligen skapas den fjärde mängden genom att addera det sista elementet, a3=7, till mängden för att bilda den fullständiga mängden S3={0, 3, 2, 7} och den fjärde raden skapas genom att kopiera den tredje raden och addera en annan kopia av den tredje raden, skiftad sju positioner. Den fjärde raden visar summan av alla delmängder av hela mängden O, 3, 2, 7, nämligen O, 2, 3, 5, 7, 9, 10 och 12.
Genom att använda en mera matematisk förklaring framgår från Fig. 5a att en mängd S,={a,,...,a,} har en delmängd som summerar till j, om S,_, har en delmängd som summerar till j eller om S,_, har en delmängd som summerar till skillnaden mellan j och volymen av a,_,_a.
Om g, , betecknar om en mängd S, har en delmängd som summerar tillj och g, ,- =1 indikerar att mängden S, har en delmängd som summerar tillj och 91, 1=0 indikerar att mängden S, inte har en delmängd som summerar till j, återfinns lösningen för 9,, genom att notera initialt tillstànd go, ,=1 förj=0 och go, , förj>0 och använda rekursionen.
Gi' 1:1 (gg, euef 95.1' j_a=1 1 Genom att använda detta uttryck kan tabellen i Fig. 5a omformas till sin motsvarande matris: 1000000000000 G=1001000000000 ”1011010000000 101101010 01 12 10 15 20 25 30 Matris 1 En liknande tabell som den som visas i Fig. 5a kan skapas för köporderna, 5, 3 och 6 utgående från den första raden som den tomma mängden med summan 0, addera ytterligare ett element till mängden av föregående rad för att skapa en ny rad och populera raden genom att kopiera föregående rad plus addera en kopia av den föregående raden skiftad ett antal positioner lika med värdet av ordern som adderats till den raden. En sådan tabell visas i Fig. 5b och tabellen och motsvarande matris visas nedan. 100000000000000 G_1o0oo1oooonoooo “100101001000000 100101101101001 Matris 2 Det framgår, vid en snabb jämförelse av de två matriserna eller de två tabellerna att den högsta gemensamma delmängdssumman är 9. Summan 9 utgörs av säljorderna 2 och 7 och köporderna 3 och 6. Således handlas säljorderna 2 och 7 med köporderna 3 och 6 och säljordern 3 och köpordern 5 blir kvar i orderboken 6. Naturligtvis kan delmängdssummorna snabbt återfinnas för en mängd med tre order. Med ett stort antal order blir emellertid problemet mera och mera komplext.
Systemet kan även hantera order som innefattar en del AoN-order och en del order utan minstavolymvillkor. Order utan minstavolymvillkor hanteras inte direkt i matrisen utan behandlas bredvid kolumnnumren. Således adderas om orderboken 6 även innefattade ett antal säljorder utan minstavolymvillkor med en total volym på 10, en förskjutning (eng. offset) på 10 till delmängdssummorna och summorna av den sista raden i en matris eller en tabell för orderna i Fig. 4a skulle vara 10, 12, 13, 15, 17, 19, 20 och 22 istället för 0,2, 3, 5, 7, 9, 10 och 12.
Naturligtvis kommer, i en mera realistisk situation, sälj- och köporderna att inkludera order med olika priser. Genom att använda samma värden för volymerna av order som i föregående exempel, visar Fig. 6a den första säljordern som 3@10000pence(p), den andra säljordern som 2@10300p och den tredje säljordern som 7@10200p. Fig. 6b visar den första köpordern som 5@9800p, den andra köpordern som 3@9900p och den tredje köpordern som 6@9700p. 13 10 15 20 25 30 35 Processen som krävs för att beräkna jämviktspriset för ett flertal AoN-order med olika priser, matcha orderna och skapa affärerna beskrivs med avseende på Fig. 6 till 11.
Det är önskvärt att sätta det valda priset som ger den högsta omsättningen som jämviktspriset. En tabell konstrueras därför där varje rad representerar ett tänkbart jämviktspris, som visas i Fig. 7 och för varje rad, är alla sälj- och köporder som accepterar detta pris och omsättningen och obalansen beräknas. Till exempel motsvarar den första raden priset 10300p. Vid detta pris skulle enbart säljordern 2@10200p acceptera priset, men alla medlemmar som gav köporder skulle vara villiga att göra affär. Om medlemmarna var förberedda på att sälja vid 9700p, 9800p och 9900p skulle de naturligt även vara förberedda på att sälja vid 10200p. Således är summan av den totala volymen säljorder 2 och summan av den totala volymen köporder är 14. De totala sälj- och köpordervolymerna beräknas på ett motsvarande sätt för de andra raderna.
Från tabellen i Fig. 7 framgår att delmängdssummaproblemen måste lösas för mängderna av order som är villiga att göra affär vid varje pris. Till exempel utgörs i den första raden, den totala säljordervolymen av en enskild AoN-order med volymen 2. Köporderna med lägst volym är ordern med volymen 3. Det finns därför ingen matchande order för säljordern med volymen 2 och en affär kan inte skapas. Tabellerna i Fig. 5a och 5b löser delmängdsummaproblemet för hela mängden köpordra och säljorderna och för en del delmängder av orderna, nämligen {0, 3} och {O, 3, 2} för säljorderna och {0, 5}, {O,5, 3}.
Emellertid hartabellerna i Fig. 5a och 5b en rad som motsvarar säljorderdelmängden {7, 2} som är villig att göra affär vid priset 10200p och köporderdelmängden 6, 5 som är villig att göra affär vid priset 9800p. Separata delmängdsmatriser kan sedan beräknas för att lösa detta problem. Emellertid väljs, enligt en del utföringsformer av uppfinningen, delmängderna Si av de ursprungliga matriserna istället så att lösningen för alla delmängdssummaproblem som krävs för att beräkna jämviktspriset så väl som orderna som är villiga att göra affär vid jämviktspriset kan återfinnas i två matriser, en för säljorderna och en för köporderna. Detta görs genom att beställa säljorderna att sänka priset så att a0=0, a1=2 och a3=3 och konstruera en mängd som motsvarar en ny rad i säljmatrisen genom att addera säljordern med näst högsta pris. Genom att välja ut mängderna på detta sätt kan alla kombinationer av säljorderna som krävs förjämviktsberäkningen bestämmas från den enskilda säljordermatrisen. På liknande sätt kommer, om köporderna beställas i ordning av ökande pris, så att a0=0, a1=6, a2=5 och a3=3 och en ny rad i köpordermatrisen skapas genom att addera köpordern för näst lägsta pris, alla kombinationer av köporder för jämviktsberäkningen vara tillgängliga från den enskilda köpordermatrisen. 14 10 15 20 25 30 35 De omräknade tabellerna som skapats när orderna beställas enligt pris visas i Fig. 8a och 8b och beskrivs mera detaljerat nedan. Den övergripande processen och de detaljerade processerna för att skapa delmängdsummamatriserna och för att etablera ett jämviktspris kommer nu att beskrivas med hänvisning till Fig. 9, 10 och 11.
Det första steget i processen för att beräkna jämviktspriset och att matcha orderna involverar att beställa en mängd order enligt pris, steg S1 i Fig. 9. Orderna vid samma pris kan beställas enligt tiden orderna togs emot av det automatiserade handelssystemet. Om handelsmodulen implementeras genom att använda ett flertal delmoduler som visas i Fig. 3, kan delmängdsummamodulen 14 ta emot säljorderna 5a och köporderna 5b från orderboken 6 och kan beställa orderna enligt pris. Delmängdsummamodulen 14 kan även beställa orderna enligt tiden de togs emot. Alternativt kan en annan modul utföra beställandet av orderna. Delmängdssummationsmodulen 14 fortsätter sedan med att skapa delmängdssummamatriserna, steg S2 i Fig. 9. En matris skapas för säljorderna och en matris skapas för köporderna. Delmängdssummamodulen 14 beräknar matriserna genom att skapa större och större mängder i ordern med ökande eller minskande pris. I en del utföringsformer utförs delmängdssummaberäkningarna för säljorderna och delmängdssummaberäkningarna för köporderna parallellt av tvâ processorer, såsom visas i Fig. 9. Alternativt kan en processor utföra de två beräkningarna i serie.
Delmängdssummamodulen 14 lagrar matriserna i minne 16.
Jämviktsprismodulen beräknar sedan jämviktspriset, steg S3, genom att samla alla order som är villiga att göra affär vid varje möjligt pris och beräkna omsättningen och obalansen vid varje tänkbart pris. För att beräkna omsättningen görjämviktsberäkningsmodulen ett anrop till modulen 15 för att bestämma den gemensamma summan.
Jämviktsberäkningsmodulen specificerar mängden order mellan vilka den högsta gemensamma summan behöver hittas och enheten för att bestämma den gemensamma summan bestämmer motsvarande raderi matriserna och bestämmer den högsta gemensamma summan och returnerar denna till jämviktsberäkningsmodulen. När väl jämviktspriset har beräknats lagras jämviktspriset och används av orderrnatchningsmodulen 13 som en inmatning för att beräkna matchande order och skapa affärer.
Ordermatchningsmodulen 13 gör ett anrop till modulen för att bestämma den gemensamma summan för att bestämma den högsta gemensamma delmängdssumman av säljordern och köpordern, steg S4. Modulen för att bestämma den gemensamma summan utför detta steg genom att hitta den högsta gemensamma summan i matrisens sista rad.
Ordermatchningsmodulen identifierar sedan delmängderna för vilka den högsta 15 10 15 20 25 30 gemensamma summan är summan, steg S5 och skapar affärerna mellan orderna av mängderna vid steg S6. Om orderboken inkluderar ett stor antal affärer, kan flera order summera till den högsta gemensamma summan. Ett förfarande för att hitta en delmängd som summerar till en viss summa, enligt en del utföringsformer av uppfinningen, beskrivs nedan med hänvisning till Fig. 15. Processen i Fig. 15 väljer alltid samma ordermängd förutsatt samma matris eller tabell.
Beräkningen av delmängdssummamatrisen, steg S2 i Fig. 9, kommer nu att beskrivas mera detaljerat med hänvisning till Fig. 10. Delmängdssummamodulen 14 anordnar först mängden order i en rad, steg S201, där det första elementet motsvarar en order med volymen 0.
Delmängdssummamodulen skapar sedan en matris, där varje rad representerar en mängd order och varje kolumn representerar en summa av en delmängd av mängden order vid steg S202. Den sätter vidare parametern i, som representerar en order i gruppen, till 0, vid steg S202. Den första raden av matrisen populeras sedan, steg S203, genom att skapa en första mängd S0 med den första ordern i gruppen, ao och populera den första raden genom att sätta det första elementet till 1 och alla andra element till noll för att visa att den enda delmängdssumman av den tomma mängden är noll. Parametern som representerar en order i gruppen, i, ökas sedan med 1 vid steg S204. En ny rad skapas vid steg S205 och en ny mängd som motsvarar raden skapas genom att addera ordern som identifierats av värdet av parametern i till mängden. Den första raden populeras sedan genom att kopiera föregående rad, steg S206, bestämma volymen av den nya ordern som adderats till mängden, S207 och addera en kopia till föregående rad, skiftad ett antal positioner som motsvarar volymen av den nya ordern, steg S208. Sedan bestäms vid steg S209 om alla order i gruppen har tagits med. Om inte, upprepas steg S204 till S209 för nästa mängd order som skapats genom att addera nästa orderi gruppen till föreliggande mängd order. När det bestämts vid steg S209 att föreliggande mängd innefattar alla order i gruppen går processen vidare till steg 2010 och matrisen lagras i minne 16.
Fig. 8a och 8b visar delmängdssummatabellerna omräknade med order av Fig. 6a och Bb beställda enligt pris och motsvarande matriser återges nedan. iooonoooooooo GR tilnooonnnrinn '1010000101000 1011010101101 16 10 15 20 25 30 Matris 3 l 0 0 0 0 0 0 0 0 0 0 0 I' l 0 f l G _: l 0 0 0 0 0 1 0 0 0 0 0 0 0 0 “ 1 0 0 0 0 1 l 0 0 0 0 1 0 l) 0 l 0 0 l 0 1 1 0 l 1 0 I 0 0 l _ Matris 4 Det framgår av matriserna att den sista raden i varje matris fortfarande är densamma som i motsvarande matris beräknad utan att beställa orderna enligt pris. Emellertid framgår det även att andra rader är olika. Till exempel ger rad 3 i matris 3 nu en lösning till delmängdssummaproblemet för säljordermängden {2, 7} som behövs för att beräkna omsättningen vid priser 10200p och 10100p och rad 3 i matris 4 ger en lösning till delmängdssummaproblemet för köpordermängden {5, 6} som behövs för att beräkna omsättningen vid pris 9800p.
Som beskrivs i anslutning till Fig. 9 bestäms, när väl matriserna har konstruerats, jämviktspriset vid steg S3. Processen för att bestämma jämviktspriset kommer nu att beskrivas mera detaljerat i anslutning till Fig.11. Processen för att bestämma jämviktspriset kan utföras genom modulen 12 förjämviktsprisberäkning. Modulen för jämviktsprisberäkning kan även göra anrop till andra moduler. Jämviktspriset sätts normalt till priset som ger den högsta omsättningen. Om emellertid den högsta omsättningen kan erhållas vid ett antal priser, kan en mängd regler användas för att hitta det optimala jämviktspriset. Vid steg S301 bestäms alla möjliga priser. Genom att använda exemplet i Fig. 7 är de möjliga priserna 9700p, 9800p, 9900p, 10000p, 10100p, 10200p och 10300p. Sedan bestäms vilka mängder av säljorder och vilka mängder köporder som är villiga att göra affär vid varje pris vid steg S302.
Omsättningen och obalansen för mängderna bestäms sedan vid steg S303. Detta kan utföras genom att modulen 12 för att beräkna jämvikt vidarebefordra information om mängderna som är villiga att göra affär vid varje pris till modulen 15 för att bestämma den gemensamma summan och modulen 15 för att bestämma den gemensamma summa 17 10 15 20 25 30 35 extraherar radernas värden som motsvarar de specificerade mängderna från de två delmängdssummamatriserna, hitta den högsta gemensamma summan och returnera detta värde till modulen 12 för att beräkna jämviktspris. l närmare detalj måste, för att beräkna omsättningen vid pris 10200p, den högsta gemensamma summan av säljordermängden {0, 2} och hela köpordern bestämmas. Modulen 15 för att bestämma den gemensamma summan kan ta emot mängder {0, 2} och {6, 5, 3} som inmatning från modulen 12 för att beräkna jämviktspris och som svar analysera den första raden av delmängdssummamatrisen för säljorderna och den sista raden för delmängdssummamatrisen för köporderna för att bestämma att den enda gemensamma summan är 0. För att beräkna omsättningen vid pris 10200p specificerar modulen 12 för att beräkna jämviktspris mängder {0, 2, 7} och {6, 5, 3} till funktionen som tillhandahålls av modulen 15 för att bestämma den gemensamma summan och modulen 15 för att bestämma den gemensamma summa accessar matriserna och bestämmer den högsta gemensamma summan mellan den tredje raden av säljmatrisen, som representerar mängden {2, 7} och den sista raden av köpmatrisen, som representerar hela mängden. Det inses att den högsta gemensamma summan är 9 och att denna därför skulle vara omsättningen vid pris 10200p. Detta är även sant vid pris 101 OOp. Vid pris 10000p skulle alla säljorder acceptera priset och så jämförs den sista raden av säljmatrisen med den sista raden av köpmatrisen. Omsättningen är fortfarande 9. Samma gäller vid pris 9900p. Vid pris 9800p skulle alla säljorder acceptera priset, men enbart köporder 5@980O och 6@9700p skulle acceptera priset. För att hitta högsta gemensamma summa för dessa orderjämförs den sista raden av säljmatrisen med den tredje raden av köpmatrisen och det framgår att den högsta summan är 6. Alla raderna av omsättningskolumen i Fig. 7 kan därför populeras genom att hänvisa till delmängdssummamatriserna.
Obalansen beräknas sedan baserad på omsättningen. Obalansen kan beräknas på olika sätt. Obalansen beräknas typiskt som skillnaden i volym mellan säljorderna och köporderna utan volymvillkoren som är kvar efter att orderna har matchats. Med andra ord är obalansen volymen av order utan volymvillkor som inte tillåts göra affär. Då det är svårt att definiera obalansen för minstavolymvillkorsorder, såsom AoN-order, är inte order som innefattar minsta volymvillkororder inkluderade i det slutliga obalansvärdet, enligt en del implementeringar. Emellertid påverkar, om en del order med minsta volymvillkor tillåts göra affär, orderna indirekt obalansen då den reducerar återstående ordervolym på den andra sidan. Då alla order som beskrivits i anslutning till Fig. 6 och 7 är AoN-order sätts obalansen till noll i varje rad i Fig. 7. Om emellertid, som ett exempel, orderna inte har minsta volymvillkor, skulle obalansen i den första raden vara -12 och obalansen i den sista raden skulle vara 6. 18 10 15 20 25 30 35 Processen fortsätter sedan till steg S304 och modulen för att beräkna jämviktspris bestämmer raderna med den högsta omsättningen. Om den högsta omsättningen enbart kan åstadkommas vid ett pris, sätts detta pris som jämviktspriset vid steg S305. Om emellertid den högsta omsättningen kan åstadkommas vid flera än ett pris fortsätter processen till steg S306 och raderna med den högsta omsättningen noteras. I Fig. 7 är den högsta omsättningen 9 och denna omsättning skulle åstadkommas vid fyra olika priser, 10200p, 10100p, 10000p och 9900p. Dessa rader måste sedan analyseras enligt ett antal regler för att hitta det optimala jämviktspriset.
Raderna analyseras först för att hitta det lägsta absoluta obalansvärdet. Vid steg S307 bestäms om en rad har ett lägre absolutobalansvärde än de andra raderna. Om en av raderna har ett lägre absolut obalansvärde fortsätter processen till steg S305 och priset av raden med absolutobalansvärdet sätts som jämviktspriset. Om emellertid flera än en av raderna med den högsta omsättningen har det lägsta absoluta obalansvärdet vis steg S307 noteras raderna med samma låga absoluta obalansvärde vid steg S308. I Fig. 7 skulle därför alla rader ha samma absoluta obalansvärde och processen skulle därför fortsätta till steg S308.
Vid steg S309 kontrolleras om alla rader med samma låga absoluta obalansvärde har en positiv obalans. Om alla rader har en positiv obalans bestäms raden med det högsta priset vid steg S310 och priset för denna rad sätts som jämviktspriset vid steg S305. Om istället alla rader inte har en positiv obalans kontrolleras om alla rader har en negativ obalans vid steg S311. Om alla rader har en negativ obalans bestäms raden med det lägsta priset vid steg S312 och priset för denna rad sätts som jämviktspriset vid steg S305. En rad skulle ha positiv obalans om volymen av säljorderna utan minstavolymvillkor överskrider volymen av köporderna utan minstavolymvillkor och som ett resultat uppfylls inte alla säljorder utan minstavolymvillkor. En rad skulle ha en negativ obalans om volymen av köporderna utan minstavolymvillkor överskrider volymen av säljorderna utan minsta volymvillkor och som ett resultat, lämnas en eller flera köporder utan minstavolymvillkor kvar i orderboken 6 efter auktionsfasen. Om alla rader inte har en positiv obalans, steg S309, eller en negativ obalans, steg S311, kontrolleras om alla rader har noll obalans vid steg S313. Om de har det bestäms raden med mittpunktspriset vid steg S314 och jämviktspriset sätts till priset av denna rad vid steg S305. I Fig. 7 har alla rader noll obalans då alla order är AoN-order och priserna därför sätts vid steg S305 till mittpunktspriset som är 10000p. Om raderna inte alla har en positiv obalans, en negativ obalans eller en noll obalans, måste raderna ha samma absoluta obalansvärden men en del värden måste vara positiva och en del värden måste vara 19 10 15 20 25 30 35 negativa. I detta fall bestäms raden med det högsta priset ur raderna med en positiv obalans vid steg S315 och jämviktspriset sätts till priset av denna rad vid steg S305.
Processen för att bestämma jämviktspriset, som beskrivits i anslutning till Fig. 11, säkerställer att priset som maximerar omsättningen väljs. Det garanterar även att order som är mera generöst prissatta än jämviktspriset handlas fullständigt.
Det framgår från tabellen i Fig. 7 att omsättningen vid jämviktspriset för 1000Op är 9. Vidare framgår av matris 3 och matris 4 att den lägsta raden av säljordermatrisen med en delmängdssumma som motsvarar en volym på 9 är den tredje raden som motsvarar mängden {2,7} och att den lägsta raden av köpmatrisen med en delmängdssumma motsvarar en volym på 9 är den tredje raden som motsvarar delmängden {6, 5}. En affär skapas därför mellan dessa order.
En del handelssystem medger alla typer av minstavolymvillkorsorder och inte enbart AoN- order att ges till anropsauktioner. I anslutning till Fig. 12 kan orderboken 6 ha tagit emot en säljorder för volymen 6, som är villig att göra affär med minst 4, en AoN-order på och en order för 15 men villig att göra affär på minst 10. Då en AoN-order enbart är villig att göra affär på hela volymen kan en AoN-order anses ha ett minstavolymvillkor lika med hela volymen som visas i Fig. 12. Förfarandena i Fig. 9 och 11 för AoN-order är på samma sätt applicerbara på order som innefattar minstavolymvillkorsorder. Emellertid behöver processen att beräkna delmängdssummamatrisen, steg S2 i Fig. 9 modifieras för att ta minstavolymvillkor i beräkningen. En process för att beräkna delmängdssummamatrisen för alla typer av minstavolymvillkorsorder kommer nu att beskrivas i anslutning till Fig. 13 och 14. En process för att bestämma mängden order som motsvarar en viss delmängdssumma som innefattar alla typer av minstavolymvillkorsorder kommer sedan beskrivas nedan i anslutning till Fig. 15.
Orderna beställs enligt pris. Orderna vid samma priser kan beställas enligt tiden de togs emot. Därefter, såsom visas i Fig. 13, skapas och den första raden av tabellen populerats på samma sätt som för mängden order som enbart innefattar AoN-order. Den första mängden som motsvarar den tomma mängden har en delmängdssumma på 0.
Den andra mängden innefattar ordar {0, 6(4)} där ai(ci) betecknar en order av volymen ai som är villig att göra affär med en minsta volym pà ci. Dà orderna a1(c1)=6(4) skulle vara villiga att handla en volym på 4, en volym på 5 och en volym på 6, innefattar delmängdssummorna i detta fall delmängdssummorna av föregående mängd, där delmängdssummorna skapats 20 10 15 20 25 30 genom att addera 4 till den föregående summan, genom att addera 5 till den föregående summan och genom att addera 6 till den föregående summan. Enligt en del utföringsformer konstrueras därför den andra raden genom att addera en kopia av den föregående raden i vilken delmängdssummorna skiftats ett antal kolumner lika med den minsta volymen som kan handlas för ordern och sedan smetas ut ett antal positioner som motsvarar alla volymerna mellan den minsta volymen och hela volymen.
Den tredje mängden skapas genom att addera ett ytterligare element, a2=5, till mängden, som bildar mängden {O, 6(4), 5}. Den tredje raden av matrisen konstrueras genom att åter kopiera föregående rad, den andra raden och addera en kopia av den föregående raden skiftad ett antal kolumner lika med värdet av nämnda AoN-order adderad till mängden.
Slutligen skapas den fjärde mängden genom att addera de sista orderna för volymen 15 med minstavolymvillkor 10 till mängden. Den fjärde raden populeras genom att kopiera den tredje raden och addera en kopia av den tredje raden, skiftad ett antal positioner lika med den minsta volymen 10 och utsmetad ett antal positioner för att täcka alla möjliga volymer mellan den minsta volymen och hela volymen 15. Genom att använda ett mera matematiskt uttryck har, när en order ai har ett minstavolymvillkor ci, en mängd Si={a1(c1),...,ai(ci)} en delmängd som summerar till j, om SM har en delmängd som summerar till j eller om SM har en delmängd som summerar till j-k, för alla k där cisksai.
Om gm betecknar om en mängd Si har en delmängd som summerar tillj och gi,,-=1 indikerar att mängden Si har en delmängd som summerar tillj och gi, ,-=0 indikerar att mängden S. inte har en delmängd som summerar till j, hittas lösningen för gi, j genom att uttrycka det ursprungliga tillståndet go, i=1 förj=0 och g0_ ,»=0 förj>O och använda rekursionen gi, 1:1 (gi.1_j=1 eller gi_1yj.k=1) CiSkÉai 2 Tabellen i Fig. 13 kan sedan omvandlas till sin motsvarande matris: I 0 0 0 0 0 0 0 0 0 0 0 l) ll ll l) l) ll ll l) ll ll 0 l) l) 0 ll G _ I 0 l) ll I I l 0 0 ll l) ll l) l) l) l) ll ll l) ll ll l) ll ll l) l) l) '°_l0()01ll0llll1000000000000000 1 0 0 o 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 21 10 15 20 25 30 35 Matris 5 Processen med att konstruera delmängdssummamatrisen, steg S2 i Fig. 9, för order som innefattar minstavolymorder sammanfattas i anslutning till Fig. 14.
Delmängdssummamodulen 14 anordnar först mängden order i en grupp, steg 82001, där det första elementet motsvarar en order med volym 0. Delmängdssummamodulen skapar sedan en matris, där varje rad representerar en mängd order och varje kolumn representerar en summa av en delmängd av mängden order. Den sätter vidare parameter i, som representerar en order i gruppen, till 0, steg 82002. Den första raden i matrisen populeras sedan, steg 82003, genom att skapa en första mängd S0 med den första ordern i gruppen ao och populera den första raden genom att sätta det första elementet till 1 och alla andra element till noll för att visa att enbart delmängdssumman av den tomma mängden är noll.
Parametern som representerar en orderi gruppen ökas sedan med 1 vid steg 82004. En ny rad skapas vid steg 82005 och en ny mängd som motsvarar raden skapas genom att addera ordern identifierad av värdet av parametern itill mängden. Den nya raden populeras sedan genom att utföra ett antal kopieringssteg. Först kopieras föregående rad till den nya raden vid steg 82006. Därefter skapas en temporär rad, volymen Vmm av minstavolymvillkor c, av ordern bestäms vid steg 82007 och en annan kopia av den föregående raden, skiftad ett antal positioner lika med värdet Vm,,, adderas till en temporär rad vid steg 82008. Värdena av den temporära raden måste sedan justeras för att ta med alla möjliga värden i beräkningen som kan handlas mellan den minsta volymen c, och hela ordern a,. Av denna anledning smetas eller sprids delmängdssummavärdena av den temporära raden ut ett antal kolumner som motsvarar orderns möjliga volymer. Detta görs genom att bestämma skillnaden Vsjac, mellan hela volymen a, och c, vid steg 82009. En parameter m, som representerar de möjliga värdena adderade till minstavolymvillkoret för att bilda hela volymen sätts till 1 vid detta steg.
Delmängdssummornaj i den temporära raden återfinns i steg 82010 och delmängdssummornaj+m sätts vid steg 82011. Då m=1 till att börja med betyder detta att delmängdssummorna som motsvarar minstavolymvillkoret plus volymen 1 sätts vid detta steg. Sedan kontrolleras vid steg 82012 om m är mindre än Vgack och om det är så, ökas m med 1 vid steg 82013 och steg 82011 upprepas. Således sprids delmängdssummorna ett ytterligare steg som motsvarar volymen som skapats genom att addera ytterligare en volym 1 till delmängdssummorna som redan finns i den temporära raden. Stegen 82011 till 82013 upprepas tills m=Vs,ack och delmängdssummorna i den temporära raden representerar delmängdssummorna som skulle kunna erhållas genom att addera varje möjlig volym av 22 10 15 20 25 30 35 ordern till nämnda minstavolymvillkor hos föregående rad. Den temporära raden adderas sedan till den nya raden vid steg 82014 med en logisk ELLER-operation.
Processen fortsätter sedan till steg 82015 och det kontrolleras om alla rader i matrisen har populerats. Med andra ord kontrolleras om alla order i gruppen har tagits hänsyn till, i vilket fall parametern i är lika med n. Om alla order inte har tagits hänsyn till upprepas steg 82004 till 82015 för nästa mängd order som skapats genom att addera nästa order i gruppen till föreliggande grupp av order. När man bestämt vid steg 82015 att föreliggande mängd innefattar alla order i gruppen går processen vidare till steg 82016 och matrisen lagras i minne 16.
Det framgår att processen i Fig. 14 även kan användas för AoN-order då för en AoN-order ai=ci och cisksaaai. Således kan processen i Fig. 14 användas för att skapa en delmängdssummamatris för en mängd order som innefattar enbart AoN-order, en del AoN- order och inga AoN-order.
Vidare framgår att den andra kopian inte behöver skiftas ett antal positioner som motsvarar volymen ci, den andra kopian kan skiftas ett antal positioner som motsvarar alla möjliga volymer av ordern och sedan kan bitar spridas i den ena riktningen eller i båda riktningarna såsom krävs.
I en utföringsform kan delmängdssummamodulen 14 använda olika algoritmer för olika order.
Till exempel kan, varje gång en order adderas till en mängd man bestämma om ordern är en AoN-order eller en minstavolymvillkorsorder. Om ordern är en AoN-order kan modulen utföra stegen S203 till S207 i Fig. 10. Om istället ordern är en minstavolymvillkorsorder kan modulen utföra stegen 82004 till 82015 i Fig. 14.
Det är uppenbart att istället för att smeta ut delmängdssummorna i den temporära raden kan en ny temporär rad skapas för varje möjlig volym som är tillåten att handlas av volymen med minstavolymvillkoret. Alla temporära rader kan sedan adderas till den nya raden med en enkel ELLER-operation. Alternativt behöver matrisen inte erhållas genom kopiering. Värdet av gi, j kan även beräknas genom att använda rekursion av Ekv. 1 eller 2 för varje position i matrisen. Emellertid kan kopiering av raderna medge att matriserna skapas på kortare tid då färre operationer behöver utföras.
Förfarandet med att bestämma mängden order som motsvarar en viss delmängdssumma i matrisen för alla typer av minstavolymvillkorsorder kommer nu att beskrivas i anslutning till 23 10 15 20 25 30 35 Fig. 15. Efter att en gemensam delmängdssumma har bestämts noterar ordermatchningsmodulen 13 volymen V som motsvarar den gemensamma delmängdssumman vid steg S501. Ordermatchningsmodulen 13 väljer sedan en av matriserna och hittar den lägsta raden där V är en delmängdssummavolym vid steg S502.
Genom att använda exemplet i Fig. 13 är, om den högsta gemensamma summan är 20, den lägsta raden där V=20 den sista raden. Ordermatchningsmodulen 13 bestämmer sedan ordern som motsvarar denna rad vid steg S503, i detta fall ordern 15(10) med en volym på 15 och ett minstavolymvillkor på 10, och adderar denna order till lösningsmängden.
Systemet känner vid denna punkt till stor del inte av ordern som får handlas. Detta bestäms vid steg S504. Vid steg S504 bestämmer ordermatchningsmodulen den maximala volymen Vmax av ordern som kan handlas, nämligen hela volymen av ai och den minsta volymen Vmin av ordern som tillåts handlas, nämligen volymen av minstavolymvillkoret ci.
Ordermatchningsmodulen 13 analyserar sedan vid steg S505 kolumnerna i föregående rad som motsvarar summorna i intervallet V-vmax och V-vmin och bestämmer den högsta summan i intervallet. Ordermatchningsmodulen kan bestämma den högsta summan i intervallet i föregående rad genom att helt enkelt välja det högsta kolumnnumret där en bit är satt.
Denna kolumn representerar volymen som är kvar efter att ordern har medgivits att handla en del av sin volym. Ordermatchningsmodulen 13 kan lagra detta kolumnnummer som Vnåsta.
Ett annat sätt att uttrycka intervallet som analyserats för att hitta den högsta gemensamma summan är [V-(vminwsjack), V-vmin] där vsiack är skillnaden mellan hela volymen vmax och den minsta volymen vmin. Vid steg S506 bestämmer ordermatchningsmodulen 13 att ordern får handla V-Vnästa av sin volym. Genom att använda exemplet ovan analyseras kolumnerna som motsvarar summorna i intervallet 20-15=5 till 20-10=10 och den högsta summan i dessa kolumner i föregående rad är 10. Vnäsja sätts därför till 10 och volymen av ordern som får handlas är 20-10=10. Vid steg S507 bestäms om Vnästa är noll. Om inte sätts V till Vnästa vid steg S508 och stegen S502 till S507 upprepas.
I exemplet som följer sätts V till Vnäsm=10 och det bestäms vid steg S502 att den tredje raden är den lägsta raden där 10 är en delmängdssumma och att orders som motsvarar denna rad, order 5, adderas till lösningsmängden vid steg S503. Då ordern 5 är en AoN-order innefattar intervallet för att analysera i raden omedelbart ovan vid steg S504 enbart innefattar ett värde, nämligen 10-5=5. Vnäsja sätts därför till 5 och det bestäms att AoN-order får handla volymen 10-5=5 vid steg S505. Då Vnästa fortfarande inte är noll, sätts V till 5 och processen upprepas.
Det har noterats att den andra raden är den lägsta raden med en delmängdssumma på 5 ordern 6(4) som motsvarar denna rad adderas till lösningsmängden. Kolumnerna i intervallet 6=-1 och 5-4=1 analyseras i raden omedelbart ovan och man har funnit att den enda 24 10 15 20 25 30 35 delmängdssumman i detta intervall är delmängdssumman av 0. Vnästa sätts till O och volymen som tillåts handlas av order 6(4) beräknas som 5-O=O. Sedan inses vid steg S507 att Vnåsta är O och lösningsmängden lagras vid steg S509. I detta fall innefattar lösningsmängden order 15(10) som tillåts handla volymen 10, AoN-order 5 tillåts handlas helt och order 6(4) tillåts handla 5.
Processen för att hitta delmängden som motsvarar den gemensamma delmängdsumman har enbart beskrivits ovan för en matris. Det inses att delmängden som motsvarar delmängdssumman i den andra matrisen skulle även behöva hittas genom att använda Samma pfOCeSS.
Det inses även att processen som beskrivits i anslutning till Fig. 15 är lika applicerbar till mängden order som enbart innefattar AoN-order eller inga AoN-order alls. Vidare kan processen även användas för att hitta delmängderna som motsvarar summorna som används för att beräkna omsättningen för att hitta jämviktspriset. Processen kan därför användas för att hitta en delmängd till alla typer av summor som hittats i samma matris.
Förfarandet som beskrivs i anslutning till Fig. 15 säkerställer att orderna med högt pris och tidsprioritet väljs för lösningsmängden. Till exempel säkerställer steg S502 att en order som är så låg som möjligt i sekvensen väljs. Detta innebär att säljorderna blir en order med så högt pris som möjligt och för köporder blir det en order med så lågt pris som möjligt. Om vidare det finns order vid samma pris väljer processen ordern som kom tidigast av de två orderna med samma volym. Vidare säkerställer stegen S505 och S506 att så små mängder som möjligt av en order matchas innan man går vidare till nästa högre rad. Detta medför även en fördel för order med högt pris och tidsprioritet. Algoritmen föredrar att matcha en liten del av en order med låg prioritet för att inkludera en order med högre prioritet.
Hanteringen av order med generellt volymvillkor är likaså applicerbar för order utan volymvillkor, då en order utan ett volymvillkor har en implicit minsta volym på 1. För prestandaorder handlas emellertid, som angivits ovan, order utan volymvillkor inte direkt i delmängdssummationsmatrisen, utan behandlas som förskjutna till kolumnantalen. Vidare applicerar handelsbörser typiskt regler till orderna som ger prioritet för order utan volymvillkor om orderna är vid samma pris. Börser vill typiskt belöna användare som lägger in order utan villkor. Därför hanteras, om en ordermängd innehåller ett antal volymvillkorsorder och dessutom en del order utan volymvillkor med aggregerad volym 100, detta genom att addera en förskjutning på 100 till alla kolumnantal i volymvilIkorsordermatrisen. Antag att matrisen sista rad innehåller bitar satta i kolumnerna 0, 20, 30 och 40. Förskjutningen 100 adderas 25 10 15 20 25 30 35 och resultatet är att möjliga volymer år 100, 120, 130 och 140. Detta är annorlunda än kopiera-skifta-operationen som används för att konstruera matrisen som beskrivits i anslutning till, till exempel, Fig. 14 i termer av att föregående volymer inte kopierats, utan enbart skiftats.
Enligt en del utföringsformer kan matrisen lagras genom att dela upp en rad i matrisen i block med lika storlek och lagra blocken i trädstrukturer. Blockstorleken är konfigurerbar, men i en utföringsform måste ett flertal av ett visst antal bitar, till exempel 64 bitar. I en implementering associeras varje rad med en trädstruktur där block som innehåller minst en bit är lagrade.
Block som inte har några bitar lagras inte. Detta gör lagring av glesa rader (dvs. rader med få bitar) effektiva. För att förbättra prestanda hos täta rader (dvs. rader med många bitar satta) behöver trädstrukturen inte hålla blockobjekt direkt. Istället innehåller den ett objekt som kan representera antingen ett block där minst en bit satts, eller flera på varandra följande block där alla bitar satts. Om objektet representerar ett block med minst en bit satt kan objektet innehålla en bitgrupp som består av ett antal 64-bitars heltal där motsvarande bitar satts tillsammans med ett heltal som representerar blocknumret. Om objektet representerar ett på varandra följande antal block där alla bitar satts innehåller blocket enbart startblockets nummer och slutblockets nummer. Objekten är lagrade i en trädstruktur enligt sina startblocknummer. En matris består av ett antal sådana träd, ett för varje rad.
Den nya raden kan sedan erhållas genom att kopiera blocken som motsvarar föregående rad till en ny mängd block. Att skapa en temporär mängd block, kopiera föregående block till den temporära mängden block och smeta ut summorna om så krävs och sedan addera bitarna av den temporära mängden block till de nya blocken med en logisk ELLER-operation.
Trots att specifika exempel av uppfinningen har beskrivits, definieras uppfinningens skyddsomfång av de åtföljande kraven och är inte begränsad till exemplen. Uppfinningen skulle därför kunna implementeras på andra sätt, vilket är uppenbart för fackmannen inom området.
Till exempel år det uppenbart att uppfinningen även kan användas för ett kontinuerligt system. Ordermatchningsmodulen kan ta emot en ny sälj- eller köporder och kan bestämma om en vilande matchande köp- eller säljorder finns i systemet. Om en vilande matchande order finns skapas en affär.
Vidare är det uppenbart att anordningen av moduler i Fig. 3 enbart är ett exempel och olika implementeringar av processoranordningen är tänkbar. 26 10 15 Dessutom är det uppenbart att orderna inte nödvändigtvis tas emot av ett antal medlemsterminaler över ett nätverk. Order kan även matas in i handelssystemet, till exempel av behöriga personer associerade med handelssystemet, som använder terminaler anslutna till handelssystemet eller direkt via ett användargränssnitt hos handelssystemet. 27

Claims (31)

1. 0 15 20 25 30 35 Patentkrav 1.
2.
3. Automatiserat handelssystem, vilket innefattar ett gränssnitt för att ta emot ett flertal order som innefattar sälj- och köporder; och en handelsmodul för att matcha säljorderna och köporderna, där handelssystemet innefattar ett minne för att lagra nämnda flertal order; en delmängdssummamodul konfigurerad att hitta delmängdssumman av säljorderna och delmängdssumman av köporderna av nämnda flertal order; och en ordermatchningsmodul för att matcha en kombination av säljorder till en kombination av köporder baserad på delmängdssummorna av säljorderna och delmängdssummorna av köporderna, där nämnda delmängdssummamodul är konfigurerad att hitta delmängdssummorna av en mängd order genom att ta hänsyn till en första mängd order av mängden av order, bestämma delmängdssummorna av den första mängden order, ta hänsyn till en andra mängd order av orderna där den andra mängden order innefattar minst en ytterligare order än den första mängden av order och att bestämma delmängdssummorna av den andra mängden order genom att använda de bestämda delmängdssummorna av den första mängden order.
4. Automatiserat handelssystem enligt krav 1, där den första mängden order innefattar order ai med minsta volymvillkor ci och där delmängdssummamodulen är konfigurerad att bestämma ett värde gi, i som indikerar om en mängd Si={ai,....ai} innefattar en delmängd som summerar till värdej genom att notera att mängden Si={ai,... .ai} har en delmängd som summerar till j, om Si_i har en delmängd som summerar tillj eller om Sii har en delmängd som summerar till j-k, där cisksai.
5. Automatiserat handelssystem enligt krav 2, där minsta volymvillkorsorder innefattar minst en alla-eller-ingen-order, där k=ai=ci.
6. Automatiserat handelssystem enligt något av kraven 2 eller 3, där delmängdssummamodulen är anordnad att konstruera en matris i vilken varje rad motsvarar en mängd order, Si, i, varje kolumn motsvarar en delmängdssummaj och elementet gi, i vid en särskild position i, j indikerar om mängden Si har en delmängd som summerar till summanj och delmängdssummamodulen är konfigurerad att populera en rad genom att ta hänsyn till en mängd order som innefattar en ytterligare 28 10 15 20 25 30 35 order än mängden av order som motsvarar föregående rad och använda värdet av elementen i den föregående raden.
7. Automatiserat handelssystem enligt krav 4, där nämnda ytterligare ena order är en AoN-order och delmängdssummamodulen är konfigurerad att addera en första kopia av den föregående raden till den nya raden; och addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar volymen av nämnda ytterligare ena order, till den nya raden. .
8. Automatiserat handelssystem enligt krav 4, där nämnda ytterligare ena order är vilken som helst minstavolymvillkorsorder, och delmängdssummamodulen är konfigurerad att addera en första kopia av den föregående raden till den nya raden; addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar en möjlig volym av nämnda ytterligare ena order och spridd för att representera alla möjliga volymer av ordern, till den nya raden. _ Automatiserat handelssystem enligt krav 6, där den andra kopian är skiftad ett antal kolumner som motsvarar den minsta volymen av nämnda ytterligare ena order och delmängdssummamodulen är konfigurerad att addera den andra kopian, skiftad nämnda antal kolumner, till en temporär rad; sätta element g,, ,, i den temporära raden för att indikera attj är en delmängdssumma om g,, ,_m av den andra kopian av den föregående raden, skiftad nämnda antal kolumner, indikerar att j-m är en delmängdssumma av den föregående raden, där m är ett heltal och 0smsa,-c,. _ Automatiserat handelssystem enligt krav 4 till 7, där g,, ,=1 indikerar att mängden S, har en delmängd som summerar tillj och g, ,=O indikerar att mängden S, inte har en delmängd som summerar tillj och att delmängdssummamodulen är konfigurerad att populera raderna av matrisen genom att sätta go, ,=1 förj =O och go, , =0 förj >0 och använda rekursionen g,,, =1 iff(g,_,, ,= 1 eller g,_,,,_a, = 1). .
9. Automatiserat handelssystem enligt krav 4 till 7, där g, ,=1 indikerar att mängden S, har en delmängd som summerar till j och g,,,=O indikerar att mängden S, inte har en delmängd som summerar tillj och delmängdssummamodulen är konfigurerad att populera raderna av matrisen genom att sätta go, , =1 förj=O och go, ,=0 förj>0 och använda rekursionen g, ,=1 iff (g,.,,, = 1 eller g,_,, ,_,o=1) där c,sksa, 29 10 15 20 25 30 35
10. Automatiserat handelssystem enligt något av kraven 4 till 9, vilket ytterligare innefattar medel för att beställa mängden order till en sekvens med avseende på pris och där delmängdssummamodulen år konfigurerad att välja nämnda minst ytterligare order som nästa order i sekvensen.
11. Automatiserat handelssystem enligt något av kraven 4 till 10, där handelsmodulen ytterligare innefattar medel för att hitta den högsta gemensamma summan av nämnda delmängdssummor för säljorderna och nämnda delmängdssummor för köporderna och ordermatchningsmodulen är konfigurerad att bestämma en kombination av säljorder och en kombination av köporder som summerar till den högsta gemensamma summan.
12. Automatiserat handelssystem enligt krav 11, där ordermatchningsmodulen är konfigurerad att, från mängden order, hitta en lösningsdelmängd som summerar till den högsta gemensamma summan genom att a) sätta parameter V lika med den högsta gemensamma summan; b) hitta nämnda ytterligare ena order som adderats för att bilda mängden som motsvarar den lägsta raden i matrisen med delmängdssumman V, c) addera denna order till lösningsdelmängden; d) bestämma volymen av nämnda ytterligare ena order som tillåts handlas och volymen Vnäsm som återstår efter att nämnda ytterligare order tilläts handlas i den bestämda volymen; e) sätta V=V-V,,äs,a f) upprepa stegen b) till e) tills V=0.
13. Automatiserat handelssystem enligt krav 4 till 12, vilket ytterligare innefattar en jämviktsprisberäkningsmodul konfigurerad att bestämma omsättningen vid varje möjligt pris baserat på nämnda matris.
14. Automatiserat handelssystem enligt något av föregående krav, där gränssnittet är konfigurerat till att ta emot nämnda flertal order från ett flertal användarterminaler, där ordermatchningsmodulen är konfigurerad att skapa affärer mellan nämnda kombination av säljorder och nämnda kombination av köporder; och där gränssnittet ytterligare är konfigurerat att kommunicera information om de matchade orderna som är tillåtna att göra affär med användarterminalerna. 30 10 15 20 25 30 35
15.
16.
17.
18. Förfarande för att matcha order i ett automatiserat handelssystem som innefattar: att ta emot ett flertal order i ett automatiserat handelssystem, där flertalet order innefattar sälj- och köporder; att lagra nämnda flertal order som givits till systemet i en orderbok; att bestämma delmängdssummorna av en mängd order som motsvarar säljorderna och bestämma delmängdssummorna för en mängd order som motsvarar köporderna; och att matcha en kombination av säljorder till en kombination av köporder baserat på delmängdssummorna för säljorderna och delmängdssummorna för köporderna, där att bestämma delmängdssummorna för en mängd order innefattar att ta hänsyn till en första mängd order, att bestämma delmängdssummorna av den första mängden order, att ta hänsyn till en andra mängd order där den andra mängden order innefattar minst en ytterligare order, och att bestämma delmängdsummorna av den andra mängden order genom att använda de bestämda delmängdssummorna av den första mängden order. Förfarande enligt krav 15, där mängden order innefattar order ai med minstavolymvillkor ci och där att bestämma delmängdssumman av en mängd order innefattar att bestämma ett värde gl ,» som indikerar om en mängd Si = {a1,...,ai} innefattar en delmängdssumma som summerar till värdej genom att notera att mängden Si={a1,...,ai} har en delmängdssumma som summerar till j, om SM har en delmängd som summerar tillj eller om SM har en delmängd som summerar till j-k, där cl sksai. Förfarande enligt krav 16, där nämnda minstavolymvillkorsorder innefattar minst en alla-eller-ingen (AoN)-order, där k=ai=ci. Förfarande enligt krav 16 eller 17, där att bestämma delmängdssumman av en mängd av order innefattar att konstruera en matris i vilken varje rad motsvarar en mängd order, Si, ,-, där varje kolumn motsvarar en delmängdssumma] och elementet gr,- vid en viss position i, j indikerar om mängden S; har en delmängd som summerar till värdej, och att populera en ny rad genom att ta hänsyn till en mängd order som innefattar en ytterligare order än mängden order som motsvarar föregående rad och att använda värdena av elementen av föregående rad. 31 10 15 20 25 30 35
19.
20.
21.
22.
23.
24. Förfarande enligt krav 18, där nämnda ytterligare ena order som adderas är en AoN- order, och att populera nämnda nya rad innefattar att addera en första kopia av den föregående raden till den nya raden, att addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar volymen av nämnda ytterligare ena order, till den nya raden. Förfarande enligt krav 19, där nämnda ytterligare ena order är vilken som helst minstavolymvillkorsorder och att populera nämnda nya rad innefattar att addera en första kopia av den föregående raden till nämnda nya rad, att addera en andra kopia av den föregående raden, skiftad ett antal kolumner som motsvarar en möjlig volym av nämnda ytterligare ena order och utsmetad för att representera alla möjliga volymer av ordern, till den nya raden. Förfarande enligt krav 20, där den andra kopian skiftas ett antal kolumner som motsvarar den minsta volymen av nämnda ytterligare ena order och populera nämnda rad innefattar att addera den andra kopian, skiftad nämnda antal kolumner, till en temporär rad; att sätta element go,- i den temporära raden för att indikera attj är en delmängdssumma om gojtm av den andra kopian av den föregående raden, skiftad nämnda antal kolumner, indikerar att j-m är en delmängdssumma av den föregående raden, där m är ett heltal och 0 Förfarande enligt något av kraven 18 till 21, där g, j=1 indikerar att mängden Si har en delmängd som summerar tillj och g,_]=0 indikerar att mängden S, inte har en delmängd som summerar tillj och att populera nämnda rad innefattar att sätta go ,-=1 för j=0 och go, ,-=0 för j>0 och att använda rekursionen g,_,-=1 iff(gi_1,,»=1 eller gi.1,,o_a,=1). Förfarande enligt något av kraven 18 till 21, där g,,j=1 indikerar att mängden Sj har en delmängd som summerar tillj och gi,¿=O indikerar att mängden Si inte har en delmängd som summerar tillj och att populera nämnda rad innefattar att sätta go, ,»=1 för j=O och go, j=0 förj>0 och att använda rekursionen g,_,o=1 iff(g,_1,,-=1 eller gi_1_,-_ki=1), där cisksai. Förfarande enligt något av kraven 18 till 21, där förfarandet ytterligare innefattar att beställa orderna i termer av pris i en sekvens och att välja nämnda ytterligare ena order som nästa order i sekvensen_ 32 10 15 20 25 30 35
25.
26.
27.
28.
29.
30. Förfarande enligt något av kraven 18 till 24, där att matcha en kombination av säljorder till en kombination av köporder innefattar att bestämma den högsta gemensamma summan av nämnda delmängdssummor för säljorderna och nämnda delmängdssummor för köporderna. Förfarande enligt krav 25, där att matcha en kombination av säljorderna till en kombination av köporderna innefattar att bestämma, från mängden order, en lösningsdelmängd som summerar till den högsta gemensamma summan genom att a) sätta parameter v lika med den högsta gemensamma summan; b) hitta nämnda ytterligare ena order för att bilda mängden som motsvarar den lägsta raden i matrisen med delmängdssumman V, c) addera denna order till lösningsdelmängden; d) bestämma volymen av nämnda ytterligare ena order som är tillåten att handlas och volymen Vnästa som är kvar efter nämnda ytterligare ena order tillåts handla den bestämda volymen; e) sätta V=V-V,,ästa f) upprepa stegen b) till e) tills V=O. Förfarande enligt något av kraven 18 till 26, vilket ytterligare innefattar att bestämma omsättningen vid varje jämviktspris av en mängd order baserad på den konstruerade matrisen. Förfarande enligt något av kraven 18 till 27, där att ta emot ett flertal order innefattar att ta emot ett flertal order från ett flertal medlemsterminaler, vilket förfarande ytterligare innefattar att skapa affärer mellan kombinationen av köporder och kombinationen av säljorder och kommunicera information om de matchade orderna som är tillåtna att handlas till nämnda medlemsterminaler. Datorprogramprodukt som innefattar instruktioner som när den körs av en processoranordning bringar processoranordningen att utföra förfarandet enligt något av kraven 15 till 28. Automatiserat handelssystem, vilket innefattar: en handelsmodul för att matcha order, där handelsmodulen innefattar ett minne som lagrar ett flertal order som givits till systemet och en delmängdssummamodul konfigurerad att hitta delmängdssummorna av en mängd order av nämnda flertal order genom att ta hänsyn till en första mängd order av mängden order, att bestämma delmängdsummorna av den första mängden order, ta hänsyn till en andra 33 10 15
31. mängd order av orderna där den andra mängden order innefattar minst en ytterligare order än den första mängden order och att bestämma delmängdssummorna av den andra mängden order genom att använda de bestämda delmängdssummorna av den första mängden order. Förfarande för att matcha order i ett automatiserat handelssystem som innefattar: att lagra en orderbok som innefattar ett flertal order som givits till systemet; att bestämma delmängdssummorna av en mängd order av nämnda flertal order genom att ta hänsyn till en första mängd order av mängden order, bestämma delmängdssummorna av den första mängden order, ta hänsyn till en andra mängd order där den andra mängden order innefattar minst ytterligare en order än den första mängden order, och bestämma delmängdssummorna av den andra mängden order genom att använda de bestämda delmängdssummorna av den första mängden order. 34
SE1250897A 2010-01-04 2011-01-04 Ordermatchning SE1250897A1 (sv)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10150065A EP2355015A1 (en) 2010-01-04 2010-01-04 Order matching
GB201000047A GB2476677A (en) 2010-01-04 2010-01-04 Order matching
PCT/EP2011/050072 WO2011080351A1 (en) 2010-01-04 2011-01-04 Order matching

Publications (1)

Publication Number Publication Date
SE1250897A1 true SE1250897A1 (sv) 2012-10-04

Family

ID=44246931

Family Applications (1)

Application Number Title Priority Date Filing Date
SE1250897A SE1250897A1 (sv) 2010-01-04 2011-01-04 Ordermatchning

Country Status (4)

Country Link
US (2) US20130018773A1 (sv)
BR (1) BR112012016577A2 (sv)
SE (1) SE1250897A1 (sv)
WO (1) WO2011080351A1 (sv)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2807743B1 (de) * 2012-01-24 2016-01-13 Senvion GmbH Windpark-oberschwingungsprädiktor und verfahren dazu
US11544785B2 (en) * 2014-03-11 2023-01-03 Chicago Mercantile Exchange Inc. Market operation through regulation of incoming order match allocation and/or dynamic resting order match allocation priorities
DE102022000391A1 (de) 2022-02-02 2023-08-03 Wolfgang Halang Zuordnungsgerät für Handelsaufträge

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5880755A (ja) * 1981-11-09 1983-05-14 Sharp Corp 電子式計算機
US7689495B1 (en) * 2000-05-01 2010-03-30 Bloomberg L.P. System and method for processing trades using volume-weighted-average pricing techniques
US9172738B1 (en) * 2003-05-08 2015-10-27 Dynamic Mesh Networks, Inc. Collaborative logistics ecosystem: an extensible framework for collaborative logistics
US7613650B2 (en) * 2003-04-24 2009-11-03 Chicago Board Options Exchange, Incorporated Hybrid trading system for concurrently trading securities or derivatives through both electronic and open-outcry trading mechanisms
US7676421B2 (en) * 2003-04-24 2010-03-09 Chicago Board Options Exchange, Incorporated Method and system for providing an automated auction for internalization and complex orders in a hybrid trading system
US7552083B2 (en) * 2003-04-24 2009-06-23 Chicago Board Options Exchange, Incorporated Hybrid trading system for concurrently trading through both electronic and open-outcry trading mechanisms
US8924278B2 (en) * 2003-07-25 2014-12-30 Chicago Mercantile Exchange Inc. System and method for controlling markets during a stop loss trigger
US10699336B2 (en) * 2004-07-15 2020-06-30 New York Stock Exchange Llc System and method for managing and trading auction limit orders in a hybrid auction market
US8156036B1 (en) * 2006-04-28 2012-04-10 Pipeline Financial Group, Inc. Methods and systems related to trading engines
US7853499B2 (en) * 2007-03-29 2010-12-14 Board Of Trade Of The City Of Chicago System and method of allocating an incoming order to standing orders
US20120296824A1 (en) * 2007-12-28 2012-11-22 Rosano Sharon A Systems and methods for correction of information in card-not-present account-on-file transactions
US8170949B2 (en) * 2008-08-11 2012-05-01 Bgc Partners, Inc. Products and processes for order distribution
US8566218B2 (en) * 2008-10-07 2013-10-22 Chicago Mercantile Exchange Inc. Systems and methods for matching one or more incoming order to a standing order as a function of an inner market parameter
EP2715633A4 (en) * 2011-06-03 2014-12-17 Visa Int Service Ass APPARATUSES, METHODS, AND SYSTEMS FOR SELECTING VIRTUAL PORTFOLIO CARD
RU2602394C2 (ru) * 2011-06-07 2016-11-20 Виза Интернешнл Сервис Ассосиэйшн Устройства, способы и системы токенизации конфиденциальности платежей
US20130246125A1 (en) * 2012-03-15 2013-09-19 Visa U.S.A, Inc. Service Provider Analytics

Also Published As

Publication number Publication date
WO2011080351A1 (en) 2011-07-07
BR112012016577A2 (pt) 2018-09-18
US20210209690A1 (en) 2021-07-08
US20130018773A1 (en) 2013-01-17

Similar Documents

Publication Publication Date Title
Fowler A Rational Aesthetic
SE1250897A1 (sv) Ordermatchning
Tepavčević et al. Shape grammar in contemporary architectural theory and design
Mumford Form follows nature: The origins of American organic architecture
Drouffe Series analysis in four-dimensional Zn lattice gauge systems
JENNE Chemical modeling—goals, problems, approaches, and priorities
Opgenhaffen et al. 3D Modelling: crossing traditional boundaries between different research areas
Collins Continued fractions
Eisman In the Crucible: Bernhard Heisig and the Hotel Deutschland Murals
Sakkal Intersecting squares: applied geometry in the architecture of Timurid Samarkand
Al-Khafaji Diversity of architectural designs for bird houses in the Ottoman era
Diller et al. Architecture is a technology that has not yet discovered its agency
Bhowmik 150 years of Calcutta’s heritage art-college: A comprehensive study of its present declining situation
Pfarr-Harfst et al. 25 years of experience in virtual reconstructions-research projects, status quo of current research and visions for the future
Fejérdy Gyula Hajnóczi and a New Dimension of Heritage Restoration
Davey Support for the Fleet: architecture and engineering of the Royal Navy’s Bases 1700–1914
Esonboyeva ANALYSIS OF PRODUCTIVITY OF LEONTIEF LINEAR ECONOMIC MODEL UNDER INTERVAL DATA UNCERTAINTIES
Siggia The utility of field trips in teaching chemistry
Kearney Trace and fracture: legacies of the ‘ready-made’in contemporary South African art
Vulkov et al. Analytical and numerical methods for convection-dominated and singularly perturbed problems
Mage Proving the Beal conjecture
Ovsyak et al. Models of layers of information systems
Assi Inherited effect for tributary in the potter falantinos caralummpos
Granger Transcriptomic and computational approaches for interrogating metabolic interactions in the coral microbiome
Turan et al. The Object of Archaeology: From “Marbles” to the Archaeological Landscape

Legal Events

Date Code Title Description
NAV Patent application has lapsed