One Step Ahead: How Société Générale Stays on Top with SGBot - Live from Innovate Asia 2019
Pricing fluctuates from moment to moment. So, how do you stay one step ahead and make trade decisions with accurate, timely information?
At Innovate Asia 2019, Société Générale demonstrated how SGBot provides pricing information, intraday volume curves, market impact estimates, expected residual on orders, and more, all in real time. Read the full session transcript below to see how the team increased the quality and speed of pricing information, improving client experience and overall internal cost effectiveness.
Viv Rosenfeld, VP - Electronic Trading, Société Générale:
Good afternoon, everyone. Welcome back. What we're going to talk about today is really the usage of Symphony in a trading environment. In particular, how Symphony has allowed the facilitation of chatbots, and how the use of chatbots within our day to day has helped streamline and improve the operational aspect of what we do.
I'm going to talk a little bit about some of the challenges we were faced with initially. Then I'm going to run through how Symphony has allowed us to innovate solutions to some of those problems. And then lastly, what we're going to do is run a demonstration on actually our production environment to show you in lifetime, what's happening, what we're doing, how we're interacting with the bots through Symphony as the conduit.
Before I launch into that I think it's worth explaining a little bit about who we are, what we do, and how our day to day lives are interacting with Symphony. With me on stage, I have Jonathan Smith from Dimensional, and then Guillaume and myself working at Société Générale. It's really a classic buy side, sell side type situation.
Jonathan has orders that he has to execute across the Asia Pacific markets. He's using trading technology that resides across a number of his brokers of which we are one. And that technology is being used to execute his trades in a manner, that has been a great thing. That leads me to what we were really trying to achieve through this work. That's three things; transparency, automation, and flexibility.
What I mean by transparency is being able to submit information that's useful to Jona on the trading side, coming from our trading technology system. I think where as an industry we've struggled is we have the fixed protocol that's very good at transferring order information and execution level information back to the buy side. But I think where we've struggled in general is being when we want to relay more detailed, more structured information back to them. There hasn't been a really interesting, good way, a conduit of getting that information back.
Automation is as it sounds, it's automating what we do, it's doing more with less. We all have cost pressures across our businesses. It's looking for ways of automating our day to day lives to help improve the operation of what we do. Then flexibility ties in with those other two items. In order to get that transparency, that automation, we need a flexible tool. We need a tool that's going to allow us to submit information of varying different structures. We need a way that we can interact with different counterparts in a flexible manner. That leads us into what we've come up with through the Symphony.
I'll just give you a little bit of an example of each of those ones. In terms of transparency, I think in terms of one of the challenges that perhaps the buy side is facing, and Jonathan can speak to that, is trying to get that extra information out of your orders - what's happening on the sell side?
Sure. A good example is, as Viv said, we trade with them using algorithms, and we're trading thousands of orders every single day across the whole region. But periodically, we'll need to know exactly where we placed for a specific order in an order book. That's typically when traditionally in the past, we'd go to Viv or another coverage person and ask them to look in their systems to see where we're placed for that security. These processes take two or three minutes of us going back and forth in a chat, chatting on exactly where we place.
But we're able to do now is just simply input a command and the bot that sits, it's actually on the side, will actually run a query on their side and actually spit back the answer to us in the chat very quickly. A process that would typically take two or three minutes in the past is now happening almost instantly to give us the information we need. We're able to really customize the format that we see that information in as well so it's easily digestible by the traders.
Yeah, that's right. Then I think the other advantage for us as well is the accuracy, because we know that we're reading information that's coming directly from the trading system, and sending that back to the client. We know that what's going back is exactly what's happening in the order book at that time. Then in terms of automation, that previous example was still automation, but I think something that better reflects it is some work that Jona and his team have done around IOIs.
Yeah, sure. This has probably been the biggest efficiency gain for us. IOIs or indications of interests, as most of you already know, are high touch brokers sending through flow down the chat to us. We then have a look at that security, see if it matches something we'd like to buy or sell on the day, and then we can begin the negotiations.
But again, traditionally, the way this worked before we started using these bots was, we'd have to manually look into our execution system, our order management system, our portfolio capacity system, and then run a number of qualitative and quantitative checks to see whether it's actually a valid order for us to buy. Only at that point, can we really go and start a negotiation with a broker.
Again, using the bot that we have now, what we've been able to do is enable some of our brokers, some of our high touch brokers to actually use some of these bot commands so they can actually input an IOI command into a chat, which will then query the systems on our side. They'll actually query our order management system, our execution management system and our portfolio capacity system. It'll also run these qualitative checks for us. Things around momentum, ADV, and it'll give us an indication on pricing that we should be expecting for these securities, and also a quantity that we should expect.
Again, that type of process per IOI used to take us about five minutes to do all that manual work. Again, that's work that we're getting done in about 10 seconds now. It doesn't sound like a lot, it's only four or five minutes. But when you're looking at 50 to 100 IOIs a day, and you're saving five minutes each time, it really adds up. That's been a huge efficiency saver for us.
Now, I can talk a little bit about how the Symphony fit into this picture. As we would have heard today already, Symphony really gives us that secure channel that allows us to communicate back to our clients. In addition, the fact that there's an API on the end of it gives us the flexibility of being able to develop, basically, whatever we want, to access data on our side, transmit that data back to the client side, and then have that interpreted and acted upon depending on the situation.
That's really been instrumental for us in solving some of these problems. I think the other component to this that we touched on briefly is the natural language processing element for bots. By that, I mean, we're not bound by very strict precise messaging logic that is required to be input by the client or by on our side in order to interact. But because we're using these chatbots, we're able to be a bit more flexible, a bit more natural in the communication. That's really where Symphony's benefited us.
I had a slide on technical nature of what we're doing. I'm not going to spend too much time on it in the interest of time, because I'd like to get to the demonstration. But I guess the key point here is around isolation. So, isolation of system, isolation of process, isolation of access. Where we're trying to separate the querying of the data from the actual algo itself. An algorithm that we're running with can contain a large notional amount of orders, can have quite a significant impact if there's an issue to it.
In order to retain the integrity of the system, we're separating the access. The other point, I guess to make on that, is that by having a database that is queried by the bot, there's really no limit to what information we can feed into that. You'll see later in the demonstration, we have quite a varied data set that you can retrieve.
I guess the other point I just flagged here is, in terms of the development cycle for this. The technical setup has been relatively simple. We really have done this work with one developer, Guillame - he is on stage with me. I think for Jonathan, it's been a similar situation.
Yeah, that's right. We only have one resource, and it's not even a dedicated resource. We have a trader who does it on the side, yeah.
Yeah, exactly. Without much further ado, I think it'd be good to get into the demonstration aspect of it. Just to set the scene here a little bit. What you're looking at is a chat room that basically replicates exactly the sort of thing that Jonathan would look at when he's trading and interacting with us on the broker side.
We have dialogue trader to trader in the chat about orders, about settlement issues, et cetera. And then the body is sitting within that framework, being able to respond to queries. You'll notice that we have to reference the bot. For those who are not up to date on their Greek mythology, Hermes was the messenger to the gods, hence the name.
Really, with the interface that we're looking at here, this is a production environment. What happened this morning is in Hong Kong, some colleagues input some orders, and we're now querying that system to retrieve information. As an example of what we can get at, I guess the first thing to start with would be say, order level information. General market type information related to particular stock.
One thing that might be of interest would be, let me know how 66 hK, the MTR Corporation, how does that trade on a daily basis? What's the daily volume that that stock would trade? We can query that in. The bot can return that information.
Again, to the point I made earlier around the natural language processing, we're not bound by specific wording in order to get that information back. We have the flexibility to be able to feed in different commands and retrieve the information separately. So far, you've seen probably a good idea of that kind of level of info that we can retrieve. I think a good point now would be to show you something a little bit in terms of the flexibility of the system.
I mentioned earlier that one of the goals of what we're trying to achieve here relies on our flexible system. Being able to send data of different formats back through the conduit that we have in Symphony. What we can do here is we can actually send picture type information back. In this case, same stock, same sort of level of info. We're interested to know, for the volume for that stock for that day, how does that look? Show me what the algo is seeing and how the algo is reading that information to interpret how we're going to trade it. And then return that information back to us.
That's quite groundbreaking in terms of some of the things that we're able to achieve through opening up different data sets and through the flexibility of the platform. Another point on that, what I mentioned earlier is that there isn't really much of a limitation in terms of what data we can make available. In this example, we're looking at market microstructure information. So, give me the market hours for Hong Kong. Then the bot can go away, you can query that information, and it can come back with the market hours.
Now, I think we get a good idea of the higher level information that we've exposed. Where it gets really interesting is when we start looking at more customized solutions. How do we get this automation that we talked about before? What we can see here, Jona can talk to in terms of some work that we've done in consultation with him around the bot.
Sure, sir. One of the compliance requirements that we have internally is that every day we make sure that all of the accounts are setup for the brokers we're trading with, and particularly in markets like Korea. Again, traditionally what we have to do is go into our order management system, or our execution system and really exploit all of the accounts that we've been trading for these markets. Manually put them into a chat and have a broker on the other side manually check them.
Again, it's probably about a five minute process every morning. But as you can see from the screen here as well, what we're able to do on our side is simply put in a command that says, check accounts that will connect directly to our systems internally, export all of the accounts that we have on that day, automatically place them with all the different brokers that we're trading with on that day. Then the brokers can check those accounts.
The interesting part is that the bot on our side can now communicate with the bot that they have. Maybe, you want to speak to that interaction?
Yes, it's an exciting point in that we've got a bot on the client side that's interacting with a bot on the outside in a process that we do three times a day every day. Taiwan, Korea, India are now fully automated. We can see when they came into production, I remember thinking, oh, well, okay, all this talk does really translate into something that can make a beneficial difference.
Then now I'll just quickly go into some of the more order level type information we can retrieve. There's an example here where we want to look at, say, the value of my orders today. In this case, we can go ahead and query the orders that we have in the system, and will come back with the order level information. The other thing you're seeing here is the layering type query. The initial request that we had to the bot, there was not enough information, it wasn't sure, do you want all the orders today, or do you just want the actively traded orders?
In this way, we're able to have a bit of back and forth, again, using the natural language processing element to help fulfill the request. Further to this, we can start looking at more algo specific type information, to do with the way the order is actually trading. In that regard, we can query information regarding ... For example, in this case, we're talking about close orders. These are orders where the client is targeting the close, expecting to trade as late in the day as possible. But here we're querying the algo and saying, let me know which of these orders that you need to start trading earlier. In this case, we can go away, retrieve that information, come back with the start time. This is something that we do pretty much on a daily basis.
Another example, further to this. I guess here's a good idea where you can see where we are having an issue with understanding the request. So, we can come back, reformulate it with the full information, retrieve the data that we need. Perfect. Then another example in a similar vein might be orders that are not going to complete. For whatever reason, due to market conditions, order size, parameters around the order, restrictions on volume, we have orders in the system that I'm not going to be able to fully complete today. That's another query that we can run through the bot. It can go away, query the algo system and come back with that level of information.
Hopefully, that gives you a good idea of some of the things that we're doing, and using Symphony as a secure conduit between the buy and sell side with an API to allow us to build on either side - some functionality that has helped improve our lives. Thank you.
Angie Lau, moderator:
Thank you guys. That's Viv and Jonathan. Quick question before I let you go, we're seeing how you're using this in real life right now. What are the next steps you think as you envision this moving forward?
This is something we were talking about earlier and also having seen the presentations today, I think where it gets interesting is when we start getting richer data going back and forwards. So far, what we have is fairly vanilla type information, textual base, maybe some picture based information, the groundwork for further development. We've seen that with some of the presentations today in terms of richer controls being able to be sent back and forwards. Being able to input more data in that query. That's something that we're excited about.
All right, give it up for the guys at Société Générale.