Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Working with Unity #87

Closed
YohanBaillot opened this issue May 12, 2021 · 1 comment
Closed

Working with Unity #87

YohanBaillot opened this issue May 12, 2021 · 1 comment

Comments

@YohanBaillot
Copy link

Hello, I am a Unity developer and expert in Augmented Reality visualization. I am interested to develop a trading interface and dashboard using AR to show data on more 3D space than available on a 2D screen, very much like shown here https://www.finextra.com/newsarticle/28712/citi-taps-microsoft-hololens-for-virtual-reality-trading. I see there seem to be some Unity code in this project (its in the list of technologies used), but dont see any mention of it in the readme and instead WFP seems to be used for the UI. Is there any use of Unity that I could start from or is the project modular enough to replace the UI rendering from WFP to Unity and if so is there a good starting point you would recommend looking at? Thanks!

@grantcolley
Copy link
Owner

grantcolley commented May 16, 2021

Hi, the Unity I refer to is a dependency injection container, often used with Prism when building WPF applications. Here is some info on it. I am not familiar with the Unity you refer to but I can see how the name may cause some confusion.

The application consists of a UI and server component. The main purpose of the UI is to launch custom trade strategies to be run on a server component, then visualise the running strategies in real-time.

The server component, tradeserver, is totally de-coupled from the UI and, until last year, a separate repository on github. The example implementation of the tradeserver is hosted in a console app.

All the current UI specific code can be found in the assemblies with 'Wpf' in the name. So the UI can be swapped out. I myself plan on a Blazor WebAssembly implementation of the UI at some point.

A custom trade strategy is written in it's own assembly by inheriting TradeStrategyBase. I added the moving average strategy as a basic example of how one can be implemented. To run the strategy the UI would 'http post' the strategy, comprising config and assembly, to the server. The tradeserver dynamically loads the strategy assembly into memory and then runs it.
The running strategy subscribes to trade feed, order book etc. and can execute buy/sell orders. The strategy can also publish real time strategy data e.g. trade feed, with moving average and buy / sell trigger points overlayed etc.
The UI can subscribe to these notifications and visualise them in any way it wants. The WPF implementation of the moving average strategy is just an example of how this can be done. The UI can also manage the running strategy by 'bumping' its parameters in real time i.e. update strategy parameters and post them to the running strategy which can apply them immediately e.g. move buy/sell points or pause/resume placing orders while the strategy continues to run.

The trading module, by the way, was more of a visual 'proof of concept' for subscribing to real-time trade feeds, order books and statistics and to place buy/sell orders in accounts on different exchanges (I use binance and kucoin as an example). All of these constructs are used by the custom strategies.

Hope this helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants