Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

MarketAnalyzer Column returning whole numbers

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

    MarketAnalyzer Column returning whole numbers

    I've created a MarketAnalyzer Column that calculates the Current Price - Previous close. It Prints the correct values to the console however, the column shows the values as something entirely different. Here is code and I've also attached the script if you want to test:

    Code:
            double prevClose = 0;
            double priceChange = 0;
            protected override void OnMarketData(Data.MarketDataEventArgs marketDataUpdate)
            {
                if (marketDataUpdate.IsReset){
                    CurrentValue = double.MinValue;
                    return;
                }
    
                if (marketDataUpdate.MarketDataType == Data.MarketDataType.Last){
                    if(marketDataUpdate.Price == null)return;
                    //if prevClose has not been set yet
                    if(prevClose == 0)return;
    
                    priceChange = Math.Round(marketDataUpdate.Price - prevClose,2);
                    //This prints the value as expected
                    Print(priceChange);
                    //However the value in the column does not display correctly
                    CurrentValue = priceChange;
                    return;
                }
                if (marketDataUpdate.MarketDataType == Data.MarketDataType.LastClose){
                    if(marketDataUpdate.Price != null){
                         prevClose = marketDataUpdate.Price;
                    }
                }            
    
            }
    Here is a screenshot of the values shown in my window vs. what Prints out:
    World's leading screen capture + recorder from Snagit + Screencast by Techsmith. Capture, edit and share professional-quality content seamlessly.
    Attached Files
    Last edited by swcooke; 10-04-2019, 08:37 PM.

    #2
    Hello swcooke, thanks for your post.

    It looks like the DataType property is an int instead of a double. Add this to State.SetDefaults:

    DataType = typeof(double);

    Please let me know if I can assist any further.

    Comment


      #3
      Hi Chris,

      Sorry for the late reply on this. I have followed your instructions but it still does not output the correct value in the MarketAnalyzer window even though I have made the suggested change. Attached is my simply column. Can you run this and let me know what I am doing wrong? Here it is: npImpact.zip

      Comment


        #4
        Hello swcooke,

        I was also able to reproduce.

        I'm seeing the text is being formatted in Format() override.

        You are using 'Core.Globals.FormatQuantity((long) value, false);' to return an int.


        Try printing on line 68:
        Print(string.Format("priceChange: {0}, FormatQuantity(): {1}", priceChange, Core.Globals.FormatQuantity((long) priceChange, false)));

        Chelsea B.NinjaTrader Customer Service

        Comment


          #5
          Thanks! That solved the issue.

          Comment

          Latest Posts

          Collapse

          Topics Statistics Last Post
          Started by Geovanny Suaza, 02-11-2026, 06:32 PM
          0 responses
          647 views
          0 likes
          Last Post Geovanny Suaza  
          Started by Geovanny Suaza, 02-11-2026, 05:51 PM
          0 responses
          369 views
          1 like
          Last Post Geovanny Suaza  
          Started by Mindset, 02-09-2026, 11:44 AM
          0 responses
          108 views
          0 likes
          Last Post Mindset
          by Mindset
           
          Started by Geovanny Suaza, 02-02-2026, 12:30 PM
          0 responses
          572 views
          1 like
          Last Post Geovanny Suaza  
          Started by RFrosty, 01-28-2026, 06:49 PM
          0 responses
          573 views
          1 like
          Last Post RFrosty
          by RFrosty
           
          Working...
          X