Serving the Quantitative Finance Community

 
User avatar
dd3
Topic Author
Posts: 4
Joined: June 8th, 2010, 9:02 am

Implementation of dynamic pricing

June 27th, 2016, 12:15 pm

I'm working on a product that prices in real-time, and I'm interested in how to describe this pricing information to the machines that actually do the trading.One approach would be to distribute the actual bid/ask prices to these machines and they blindly use those values until told otherwise.A second approach would be to instead send some statistical information about each item being traded to them, and then they use that to compute a price on the fly.The first approach has the advantage that the trading machines are quite dumb, but the disadvantage that they will miss out on pricing movements until our number crunching machines distribute a new price.The second approach makes things more complex but I'm not sure how to 'describe' a pricing model. Sending the coefficients of a graph is one possibility and would be quick to compute, or perhaps some simple statistical info.To actually distribute the information we could use ZeroMQ or poll a redis db every few seconds.How do others approach this? I assume if you're using FPGAs you'd use to first approach to save space and for speed.
 
User avatar
Traden4Alpha
Posts: 3300
Joined: September 20th, 2002, 8:30 pm

Implementation of dynamic pricing

June 27th, 2016, 1:15 pm

What about distributing a tiny compiled function that encodes Real_Time_Price = f(Time, Market_Bid_Price, Market_Ask_Price) were f uses what ever simple/fast functions (e.g., multiply-accumulate, LUT, etc.) the trading machine can compute in O(0) time.I'm not sure ZeroMQ is the right approach. Do you really want a true queue (which might become congested) or do you want the trading machine to ALWAYS use the latest result from the crunching machine even if that means skipping an intermediate message from the crunching machine? Perhaps something like a 3-item ping-pong buffer would ensure there's always: 1) a latest function space that's open to the trading machine in mid-read; 2) a next function space that's in mid-write by the crunching machine, and 3) an obsolete function space available for the next-write event. State machines on either side would control read and write access so that the trading and crunching machines always have access with no waiting.
 
User avatar
Alan
Posts: 2958
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

Implementation of dynamic pricing

June 28th, 2016, 12:31 am

How about: send out a price and Greeks. Presumably the trading machines have real-time access to the fast market data that can be usedwith the Greeks to update the price. Also maybe encode a rule that says, if the fast market data has changed by more than X%, don't usethe Greeks to update, but wait for the number crunching machine to update the price.
 
User avatar
Cuchulainn
Posts: 20254
Joined: July 16th, 2004, 7:38 am
Location: 20, 000

Implementation of dynamic pricing

June 28th, 2016, 6:15 pm

What about some event channel/ distributed Publisher Subscriber, e.g. Boost Log, ACE Channel or stuff like that? RT is a wide concept; hard, soft, do lives get lost if you miss an event?
Last edited by Cuchulainn on June 27th, 2016, 10:00 pm, edited 1 time in total.