Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

NT 8.0.14.1 not working and unstable

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • NinjaTrader_Brett
    replied
    It is available for download now.

    Leave a comment:


  • James108
    replied
    Hi Brett

    Are you still planning to release this update today?

    Leave a comment:


  • NinjaTrader_Brett
    replied
    At the earliest, Wednesday afternoon but likely Thursday. I'll update this thread when posted.

    Leave a comment:


  • James108
    replied
    when do you expect 14.2 to be available?

    Leave a comment:


  • NinjaTrader_Brett
    replied
    An update:

    * We've been in communication with Harry to resolve the issue.
    * Harry's indicators depend on the order of operations between state management and OnRenderTargetChanged.
    * We did not document or expect internally that this order of operations is guaranteed.
    * We fixed a bug in R14 which caused the sequence of operations to change. Which we did not believe to be an error condition due to the point prior.
    * That bug fix is valid and should be maintained.


    As a result, release 14.2 will add a concept to NinjaTrader whereby guaranteeing order of operations on indicators and strategies in regards to State.Configure being prior to the first OnRenderTargetChanged, which should resolve the issue posted here. We will also add documentation noting that this sequence is now guaranteed.

    Thanks everyone for reporting the issue and sorry for the inconvenience.

    Leave a comment:


  • explorer101
    replied
    more QA on releases

    Since SharpDX issues were the crux of so many problems until early this year lets hope this gets full attention and is resolved and we dont regress ; please QA at ninja spend more time on these builds before releasing ; and consider how much effort and waste of time and resources it impacts your customer base ; we are coming out of feeling weary from the debacle of last year please do not send us back there !

    Leave a comment:


  • Zeos6
    replied
    Hi Harry,

    I completely agree. The brushes should be configured in State.Configure and NOT in State.defaults. I have had to recode a number of indicators already. My solution to the current problems with NT has been to create a media collection and initialize it via an initialization method which I call from State.Defaults. This is what works with the current version of NT. Once NT is corrected so that initialization can be done in State.Configure, I will simply move the initialization calls to State.Configure. But, I agree; this is a major pain.

    Leave a comment:


  • ren37
    replied
    SharpDX has null check for brushes and throws HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments] exception in this case.
    This can't crash Ninja, but indicator only.


    Sample has very strange try-catch code...
    It's a bad design IMO

    try
    {
    pivotRangeBrushDX = pivotRangeBrush.ToDxBrush(RenderTarget);
    centralRangeBrushDX = centralRangeBrush.ToDxBrush(RenderTarget);
    jacksonZonesBrushDX = jacksonZonesBrush.ToDxBrush(RenderTarget);
    transparentBrushDX = new SharpDX.Direct2D1.SolidColorBrush(RenderTarget, SharpDX.Color.Transparent);
    for (int seriesCount = 0; seriesCount < Values.Length; seriesCount++)
    brushesDX[seriesCount] = Plots[seriesCount].BrushDX;
    }
    catch (Exception e) { }

    I think the issue is here
    NinjaTrader.Gui.NinjaScript.IndicatorRenderBase.se t_RenderTarget(RenderTarget value)

    Stack from 14.1:
    2018-06-08 04:58:21:534 ERROR: Indicator '': Error on calling 'OnRenderTargetChanged' method: System.NullReferenceException: Object reference not set to an instance of an object. at VolumeProfile.VolumeProfile.a8jf0RgHNL3hFa2ovZy(Ob ject ) at VolumeProfile.VolumeProfile.OnRenderTargetChanged( ) at NinjaTrader.Gui.NinjaScript.IndicatorRenderBase.se t_RenderTarget(RenderTarget value)
    Last edited by ren37; 06-11-2018, 03:21 AM.

    Leave a comment:


  • Harry
    replied
    It is best practice to put as little code as possible into State.SetDefaults() to avoid compiling unnecessary stuff all the time.

    Therefore I have always set and frozen brushes in State.Configure. This was also recommended by NinjaTrader support at innumerable occasions.

    Problem here is that with NT 8.0.14.1 State.Configure() is delayed and sometimes called after OnRenderTargetChanged(). In that case brushes are not set and cannot be used.
    When the DX brushes are null, OnRender() crashes and no more new charts may be opened.

    Leave a comment:


  • Zeos6
    replied
    Hi Harry,

    I already flagged these issues more than a week ago. I was told that the proper way to initialize brushes was in State.Defaults even though I did it in State.Configure in all the previous versions of NT. You have amazing influence- the NT CEO responded to you.

    I have been trying to get something else, relatively simple, done as well but somehow it isn't happening even though NT said they would do it. Wish I had your amazing powers.

    Leave a comment:


  • Harry
    replied
    Originally posted by aligator View Post
    Thanks Harry,

    A question please:

    Is there a real advantage to using OnRender() and DX brushes and is there really an appreciable increase in performance.

    Programming indicators with DX brushes is more involved and tedious if one is plotting and drawing many objects, let alone a library of over 100 indicators. But I have not noticed a big difference compared to using non-DX brushes or OnRender() methods.

    Other than being a novelty (or for an actual limitation for which only DX would work) is it really worth the efforts?
    All brushes are finally being converted to DX Brushes, as NinjaTrader 8 uses SharpDX as a .Net wrapper of the DirectX API.

    I am only coding indicators with custom DX brushes, if there is a reason. The NinjaScript methods Draw.Text, Draw.Region etc. sometimes imply loading times for an indicator of several minutes, which can be reduced to less than a second with a custom plot.

    Also there are cases where the desired outcome cannot be produced with a standard plot or the inbuilt Draw methods. In these cases a custom plot is needed.

    A good example is the Ichimoku indicator. When you use Draw.Region, the line crosses will not be correctly filled, and also it is not easy to plot anything forward outside of the price area, if you use standard plots.
    Attached Files

    Leave a comment:


  • aligator
    replied
    Originally posted by Harry View Post
    Thank you for your feedback. This is the first response I have had.

    All isues we have had could be finally traced back to OnRenderTargetChanged() being called prior to State.Configure().
    Thanks Harry,

    A question please:

    Is there a real advantage to using OnRender() and DX brushes and is there really an appreciable increase in performance.

    Programming indicators with DX brushes is more involved and tedious if one is plotting and drawing many objects, let alone a library of over 100 indicators. But I have not noticed a big difference compared to using non-DX brushes or OnRender() methods.

    Other than being a novelty (or for an actual limitation for which only DX would work) is it really worth the efforts?

    Leave a comment:


  • Harry
    replied
    Originally posted by NinjaTrader_Ray View Post
    Thanks Harry. This has been escalated to the appropriate individuals for further analysis.
    Thank you for your feedback. This is the first response I have had.

    All isues we have had could be finally traced back to OnRenderTargetChanged() being called prior to State.Configure().

    Leave a comment:


  • NinjaTrader_Ray
    replied
    Thanks Harry. This has been escalated to the appropriate individuals for further analysis.

    Leave a comment:


  • Harry
    replied
    Synchronization problem clearly identified

    Here is the problem identified. You just need to insert Print instructions for checking it.

    With NinjaTrader 8.0.13.1 and all prior releases the order in which State.Configure(), OnRenderTargetChanged() and OnRender() were called, was always

    1. State.Configure()
    2. OnRenderTargetChanged()
    3. OnRender()

    With NinjaTrader 8.0.14.1 OnRenderTargetChanged() is often called prior to State.Configure(). This is what is at the origin of all freezes and crashes, as State.Configure is used for initialization of brushes and other parameters.

    OnRenderTargetChanged() 16:16:23.733
    State.Configure() 16:16:23.736
    OnRender() 16:16:23.803

    The times show the start times (Print instruction inserted on top) and you will notice that OnRenderTargetChanged() was triggered prior to State.Configure().

    This lack of synchronization causes major disasters and freezing of NT 8.0.14.1. Please guys fix it as soon as possible!

    Leave a comment:

Latest Posts

Collapse

Topics Statistics Last Post
Started by rtwave, 04-12-2024, 09:30 AM
4 responses
29 views
0 likes
Last Post rtwave
by rtwave
 
Started by yertle, Yesterday, 08:38 AM
7 responses
28 views
0 likes
Last Post yertle
by yertle
 
Started by bmartz, 03-12-2024, 06:12 AM
2 responses
21 views
0 likes
Last Post bmartz
by bmartz
 
Started by funk10101, Today, 12:02 AM
0 responses
6 views
0 likes
Last Post funk10101  
Started by gravdigaz6, Yesterday, 11:40 PM
1 response
9 views
0 likes
Last Post NinjaTrader_Manfred  
Working...
X