SERVING THE QUANTITATIVE FINANCE COMMUNITY

 
User avatar
dd3
Topic Author
Posts: 246
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: 23951
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: 9865
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: 60470
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

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.
http://www.datasimfinancial.com
http://www.datasim.nl

Approach your problem from the right end and begin with the answers. Then one day, perhaps you will find the final question..
R. van Gulik
ABOUT WILMOTT

PW by JB

Wilmott.com has been "Serving the Quantitative Finance Community" since 2001. Continued...


Twitter LinkedIn Instagram

JOBS BOARD

JOBS BOARD

Looking for a quant job, risk, algo trading,...? Browse jobs here...


GZIP: On