- Please remove the compiler warnings. Using Visual Studio, I'm getting hundreds of compiler warnings about type conflicts between NinjaTrader.Custom and NinjaTrader.Vendor. These obscure actual relevant warnings in my code.
- Please consider changing text alignment (see image). Currently, left alignment is right of center and right alignment is left of center! It doesn't match NT7, BTW - which was even more weird. See attached image for proposal.
- Please add overloaded draw methods that allow replicating what plots do. Currently, some of the draw methods only take start and end bars ago parameters. This makes the resulting graphic not aligned properly with the bar it is connected to (see image). If you are drawing a line, for example, it crosses the bounds of two bars. If you have a plot with a dash style of Hash, each graphic is centered within the bounds of a single bar. I can never get used to this. I keep having to do mental gymnastics to figure this out instead of focusing on my research. Suggestion: Add overloads that take just a bars ago parameter that would have the graphic centered within the bounds of the bar just like a plot would. e.g (Draw.Line(..., barsAgo...). Adding a size parameter (on triangle, dot, etc...) would be welcomed as well.
- Please update the Order class to enable easily identifying if the order is an Entry or Exit order. Currently, there is no way to tell from an order if it is an entry or exit (unless I'm missing something). This makes doing custom order handling (which I have to because of a bug I encountered) unnecessarily tedious. On Execution, there is a property.
- Please make playback consistent with realtime (Fix the assignment of Order during playback). The documentation states the following:
Playback Connection
When connected to the Playback Connection, calling market order based methods such as EnterLong() and EnterShort() will result in order state events being fired prior to the order method return an Order object. This is done to ensure that all events are in sync at high speed market replays. - Please allow using SetStopLoss and SetProfitTarget to accept an Indicator/Series parameter. It would be nice to be able to trail stop loss and profit without having to manually adjust.
- Please clarify the backup operation. The documentation says it should allow backing up on a schedule, however, I only see "Please remind me to back up my files every". The scheduling option is more convenient.
- It would be nice to be able to add an indicator to the chart from another indicator just as you can from a strategy. Currently, one has to recreate all the plots from the child indicator to show them on the chart. This is an unnecessary burden.
- Please consider making the base class for indicators and strategies partial. It would be nice to be able to add common properties and methods that apply to both. Makes it easier to pass to other classes so they can access the additional properties without having to create separate methods, constructors or interfaces.
Notes:
If anyone is interested, I made the following changes in order to show the proposed fix.
Text alignment - changed OnRender in @Text.cs - after the line that assigns layoutRect):
if (Alignment == TextAlignment.Left) layoutRect.Offset(-(chartControl.BarWidth + chartControl.BarMarginLeft), 0); else if (Alignment == TextAlignment.Right) layoutRect.Offset(chartControl.BarWidth + chartControl.BarMarginLeft, 0);
startPoint.X += chartControl.BarWidth + chartControl.BarMarginLeft; endPoint.X += chartControl.BarWidth + chartControl.BarMarginLeft;
Comment