The deliverables of this project include the following -
1. A Windows service (a long-running executable) that performs the following functions:
1.1 Accepts requests from a NinjaTrader Strategy to return optimized parameters for the following Ninja Trader Indicators: Moving Averages (SMA/EMA/WMA), RSI, MacD & Stochastics;
1.2 Returns Optimized values when queried back by the strategy once the optimized values become available;
1.3 Two variants of the query should be available, one will actually "wait" until the optimized values become available (used for historical back-testing) and another that will pass the results IF available and return control over the strategy (used for real-time trading);
1.4 When specifying the request, strategies should be able to pass the following optimization criteria-
(a) Instrument and Frequency (Assumption: by passing the strategy object by ref. the service will have access to the Instrument and Bar Series, otherwise they will have to be passed as separate parameters)
(b) The test period - The start point & number of bars on which to run the optimization: for example 0, 200 means the last 200 bars;
(c) Max. allowable draw-down for the duration of the defined test period;
(d) Min. & Max. acceptable number of signals for the duration of the defined test period;
1.5 Optimized values will be calculated using once of the following 2 methods specified by the request:
Method 1: Similar to NT's profit factor
Method 2: Similar to NT's [url removed, login to view] loss
2. Sample NinjaTrader Strategy templates should be included to demonstrate each of the supported indicators in both Historical and RealTime requests;
3. The solution is deliverable in the form of a .NET solution including a setup program that will install the following is expected:
(a) The service and its dependencies if any;
(b) The templates (NT strategies & the referenced assembly) directly onto NinjaTrader if possible.
The requirements above define all that is in scope for Phase I of this project, please proceed to bid with confidence, this is a very interesting project.
Buyer will respond to questions promptly.
- see above -
* Users could use different strategies and indicators, how could it be possible to make a single optimizer generate optimal inputs for all of them?
A: Great point, this intent of this project is to build a prototype that will support just a few standard indicators.
* How could we make sure the optimizer could generate the optimal parameters in a timely manner? (e.g., in a few milliseconds)
A: The prototype will not support very HFT (high frequency) systems, it is geared to strategies in the medium - high range (i.e: 1MIN strategies and greater optimized every nBars). In addition, should calculations intensive parameters be used in live mode, some "optimized parameters" may become available a few cycles late.
In some scenarios, managing risk is more important than pausing new entries until up-to-date optimized solutions becomes available.