SmartQuant Discussion

Optimization, Custom Views, Run Outside Shell
Page 1 of 1

Author:  erockenbach [ Fri Apr 22, 2011 8:25 am ]
Post subject:  Optimization, Custom Views, Run Outside Shell

Dear Dr. Anton,

Optimization... where is it? Did I miss something, is this going to be in a future release? When?

Custom Views... How would I plugin a custom view? Is it possible? I decompiled your chartviewers and implemented the interfaces IZoomable, IDrawable in my own class lib. How am I supposed to import a chart after I add an assembly reference in Visual Quant to my project compiled through VS?

Prism 4.0... Looking a little bit more at the event modeling and the "supposed plug and play", are you considering re-architecting anything given the fact that prism has been released and provides a better framework for loosely coupled events (event aggregator)? Also a really nice framework for region areas, module plugins (imodule) dynamically loading assemblies MEF, etc. In an app like this it really reduces the use of codedom style models.

I hate using SharpDevelop, QWhale, AvalonEdit functionality and I think I speak for 99.9% of the professional community in this area. The intillisense is never going to be accurate all the time, many plugins are nonexistent, unit testing is nonexistent, the list goes on (SD4 has gotten to be pretty good, but still that's not what’s being used). Can I develop the ENTIRE solution/blocks outside of VQ all together and simple include my assembly in and have VQ auto recognize what a block is for instance? I believe the answer is yes, but before I go all willy nilly on this I would like verification.

Is the TT adapter fully baked? I have a test fix account with velocity futures and attempted to hook it up this afternoon to no avail.

I would like to ultimately have the ability to run simulations/optimizations completely outside of any UI Shell. In a farm level scenario I would like to call something like RunSystem from a win service pass in objects receive results in a multithreaded format. Is this currently possible? Will this ever be possible?

Anytime I try to open something in VS from the context menu (such as a block) I get a file not found. Is this functionality fully baked?

Do you plan to ever implement engine redundancy? basically keeping core objects current state and synchronizing with a redundant server in the event of server failure? I've seen the broker settings look as though they are ready for prime time, but curious about any future plans unrelated to connection issues such as software experiences an unhandled exception and takes a poo or someone hits the shiny green button on your collocated server and your video game is over.

I noticed you are using QuickFix, haven't checked the status of the updated tags since the CME released news about the fact you have to include the auto trading reference, has this been updated in QuickFix at this point? Do you know if CME products are good to go?

What is the status of the beta? when is it RC?

With all of the above said I believe the product is definitely a step in the right direction. For starters .NET 4 opens up a lot of possibilities if used correctly. I'm seriously entertaining a very large farm of servers with this product and I'm more than happy to assist in the technical architecture. Thank you in advance for your response.

Best Regards,
Eric Rockenbach

Author:  Dr. Anton Fokin [ Fri Apr 22, 2011 8:15 pm ]
Post subject:  Re: Optimization, Custom Views, Run Outside Shell

We've been pretty quiet for a couple of months. Actually we've been working on the CLUB Server for VisualQuant. CLUB is CLoUd of Blocks. With the CLUB Server you can run a diagram locally in VisualQuant and send any block to a remote server with one mouse click.

What can we do with this?

- co-locate your strategy or application
- distribute your strategy or application globally to achieve the lowest latency. Fo example you can trade a cross exchange arbitrage strategy so that your startegy decision logic is running on a server in Moscow, one leg of your execution is co-located in Frankfurt and another leg is in Chicago. Why Moscow? Bacause it's in the middle on the map and you have about the same latency for both legs. This way you can be the first to build arbitrage spread and execute your orders. And after all you can control all this from any place on the globe.
- backtest your startegy on a powerful remote server
- distribute your strategy logic among several servers to improve backtesting speed
- optimize your strategy on a cluster of servers
- etc. etc.

Here is a simple demo video ... Server.wmv

and about the same but with two servers ... erver2.wmv


Author:  erockenbach [ Sat Apr 23, 2011 7:00 am ]
Post subject:  Re: Optimization, Custom Views, Run Outside Shell

Dr. Anton,

Sounds nice, I appreciate the response.

I was able to get plug in xaml views working from another thread post, both in the diagram and stapling them directly to sandock.

I'm still awaiting a response on Optimization. Am I missing something here?
I figured I could always create a stapled view and bind it to sandock then reflect all the block's properties in the given diagram to implement my own optimization. Question would be how would I "run" each optimization? Is there a RunStrategy or RunSimulation method that can be called from my custom view (outside the diagram of course)? I would still be in the context of the UI shell.

If there is something that's exposed to run the strategy could I also call it outside of the shell for example a Windows Service? And could I run it in a multithreaded manner, (i.e. no singleton issues)?

Great product a far step above the other's in the market.
Thanks again,
Eric Rockenbach

Author:  Dr. Anton Fokin [ Sat Apr 23, 2011 10:14 am ]
Post subject:  Re: Optimization, Custom Views, Run Outside Shell

Hi Eric,

we will include a custom GUI block example in the next VQ release.

Apart from "Run on Server" feature we've also added a "Run in Thread" property in the base block class. This means that any block can be executed in a separete thread (CPU). There is an event queue in the base block, so that all incoming events get queued and then dequed into a thread where actual block logic is running. You get event buffering + parallelizm for almost free, though you should control asynchronous event flow if you use this feature.

More on optimization and other issues in the next posts.


Author:  erockenbach [ Sat Apr 23, 2011 10:30 am ]
Post subject:  Re: Optimization, Custom Views, Run Outside Shell

Wow very nice. I'm loving this product.. great job!

Excited to see more on the optimization.

Thank you for the quick response.

Author:  Dr. Anton Fokin [ Sat Apr 23, 2011 12:58 pm ]
Post subject:  Re: Optimization, Custom Views, Run Outside Shell

Optimization. We wanted to introduce an idea of high level diagrams that control execution of other diagrams. This way we could impement optimization and other high level workfolows (similar to Scenario mechanism in OpenQuant but diagram based). It's still on our todo list but it's not on the top of the list.

Thus I think we can easily add optimization "programmatically", similar to OpenQuant. I.e. we can mark optimization parameters in (strategy) block code with attributes and add an objective function block. Then we run optimization algo within VisualQuant IDE.

Page 1 of 1 All times are UTC + 3 hours
Powered by phpBB® Forum Software © phpBB Group