Lausnum skal skilað til viðkomandi dæmakennara (sjá lista yfir dæmatíma).
Reynið að skrifa stutt, skýr og hnitmiðuð forrit. Notið réttan inndrátt og gætið þess að forritin ykkar séu læsileg.
Skiladagur: þriðjudaginn 27. mars fyrir kl 16:00
Leysið dæmi 2.5.22 í bókinni.
Stock market trading. Investors place buy and sell orders for a particular stock on an electronic exchange, specifying a maximum buy or minimum sell price that they are willing to pay, and how many shares they wish to trade at that price. Develop a program that uses priority queues to match up buyers and sellers and test it through simulation. Maintain two priority queues, one for buyers and one for sellers, executing trades whenever a new order can be matched with an existing order or orders.
Skrifið gagnamót fyrir MatchingEngine sem býður upp á að bæta við kauptilboði (buy/bid order) og sölutilboði (sell/ask order). Látið hvert tilboð innihalda verð og auðkenni þess sem lagði inn tilboðið. Látið MatchingEngine taka inn viðmót (interface) fyrir callback þegar viðskipti eiga sér stað (trade execution), þ.e. þegar kauptilboð er parað við sölutilboð. Látið notanda MatchingEngine skilgreina execution callback sem prentar bara út executions með upplýsingum um verð og auðkenni beggja aðila.
Skrifið notkunarlýsingu fyrir öll föll sem þið skrifið í MatchingEngine. Skrifið fastayrðingu gagna fyrir útfærslu ykkar á MatchingEngine gagnamótinu.
Viðskipti eiga sér stað þegar hæsta kauptilboð er hærra en lægsta sölutilboð.
Efni til að koma ykkur af stað:
Fyrir þá sem leiðast þá eru hér nokkrar hugmyndir að auka viðbótum: