Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

How to use more than two brushes On Render

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

    How to use more than two brushes On Render

    Hello everyone

    I would like to use more than two background colors depending on levels of delta.

    No problem with just two

    protected override void OnRender(ChartControl chartControl, ChartScale chartScale)
    {........

    if (ShowTotalDelta)
    {
    SharpDX.Direct2D1.Brush deltaColor;

    if (totalDelta > 0)
    deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget);
    else
    deltaColor = TotalDelta2Color.ToDxBrush(RenderTarget);

    RenderTarget.FillRectangle(new RectangleF(xBar, (float)(ChartPanel.H - 12), (float)(chartControl.BarWidth * 2), (float)rectangleOffset), deltaColor);

    .......}


    But if I want four different colors an error "Use of unassigned local variable"deltaColor"" appears


    if (totalDelta > 0
    && totalDelta < 75)
    { deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget); }
    if (totalDelta >= 75
    && totalDelta < 150)
    { deltaColor = TotalDelta3Color.ToDxBrush(RenderTarget); }

    if (totalDelta < 0
    && totalDelta > -75)
    { deltaColor = TotalDelta2Color.ToDxBrush(RenderTarget); }
    if (totalDelta <= -75
    && totalDelta > -150)
    { deltaColor = TotalDelta4Color.ToDxBrush(RenderTarget); }

    Any idea how can I do this?

    Thanks

    #2
    Hello Rosario,

    Thanks for your post.

    When do you see the error message? When compiling?

    Does the error message point to a specific line in your code?
    Paul H.NinjaTrader Customer Service

    Comment


      #3
      Hello Paul

      Yes, error is compiling.

      Line

      RenderTarget.FillRectangle(new RectangleF(xBar, (float)(ChartPanel.H - 12), (float)(chartControl.BarWidth * 2), (float)rectangleOffset), deltaColor);

      Sincerely,

      Rosario

      Comment


        #4
        Hello Rosario,

        Thanks for your reply.

        I would suggest adding a "default" assignment that will provide a brush color in case your if statements don't provide a brush color.

        For example

        deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget); // default color

        if (totalDelta > 0
        && totalDelta < 75)
        { deltaColor = TotalDelta1Color.ToDxBrush(RenderTarget); }
        if (totalDelta >= 75
        && totalDelta < 150)
        { deltaColor = TotalDelta3Color.ToDxBrush(RenderTarget); }

        if (totalDelta < 0
        && totalDelta > -75)
        { deltaColor = TotalDelta2Color.ToDxBrush(RenderTarget); }
        if (totalDelta <= -75
        && totalDelta > -150)
        { deltaColor = TotalDelta4Color.ToDxBrush(RenderTarget); }
        Paul H.NinjaTrader Customer Service

        Comment


          #5
          Hello, Paul

          Thanks a lot! It works!

          Comment

          Latest Posts

          Collapse

          Topics Statistics Last Post
          Started by arvidvanstaey, Today, 02:19 PM
          4 responses
          11 views
          0 likes
          Last Post arvidvanstaey  
          Started by samish18, 04-17-2024, 08:57 AM
          16 responses
          61 views
          0 likes
          Last Post samish18  
          Started by jordanq2, Today, 03:10 PM
          2 responses
          9 views
          0 likes
          Last Post jordanq2  
          Started by traderqz, Today, 12:06 AM
          10 responses
          18 views
          0 likes
          Last Post traderqz  
          Started by algospoke, 04-17-2024, 06:40 PM
          5 responses
          48 views
          0 likes
          Last Post NinjaTrader_Jesse  
          Working...
          X