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 get script to work with NT7

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

    How to get script to work with NT7

    I have a script I found online of an indicator I have been looking for. Unfortunately I have no background in coding and not exactly sure on how I can import this text into a working indicator for NT7. I would appreciate any guidance on importing this to work with NT7. I have the copy of the script as it was presented on the webpage:

    Its a Trade Volume Index [TVI] indicator

    Code:
    #region Namespaces
    using System;
    #endregion
    
    namespace ScriptCode {
        /// <summary>
        /// Indicator scripts are used for calculating a series of numerical values.
        /// 
        /// This script can be used in several ways:
        /// (1) It can be used on a chart.
        /// (2) It can be used from another script.
        /// (3) It can be used as a script column in a watchlist.
        /// </summary>
        public partial class MyIndicator : IndicatorScriptBase // NEVER CHANGE THE CLASS NAME
        {
    #region Variables
            // Use for the underlying symbol index on which to calculate the indicator script.
            private int _symbolIndex;
            // Use for the minimum tick size.
            private double _MTV;
    #endregion
    
    #region OnInitialize
            /// <summary>
            /// This function accepts the user parameters for the script and is called when a new indicator instance is created. 
            /// One of the parameters accepted by it must be that of a symbol or another script that is
            /// based on a symbol (drawing, indicator, pattern or signal). This symbol will be used as the underlying symbol for the indicator.
            /// 
            /// The parameter values can be specified from the user interface (UI) or from another script, depending on usage.
            /// </summary>
            /// --------------------------------------------------------------------------------------------------
            ///                                 INSTRUCTIONS - PLEASE READ CAREFULLY
            /// --------------------------------------------------------------------------------------------------
            /// YOU MUST SET A PARAM TAG FOR EACH PARAMETER ACCEPTED BY THIS FUNCTION.
            /// ALL PARAM TAGS SHOULD BE SET IN THE 'OnInitialize' REGION, RIGHT ABOVE THE 'OnInitialize' FUNCTION.
            /// THE ORDER OF THE TAGS MUST MATCH THE ORDER OF THE ACTUAL PARAMETERS.
    
            /// REQUIRED ATTRIBUTES:
            /// (1) name: The exact parameter name.
            /// (2) type: The type of data to collect from the user: 
            /// Set to "Integer" when the data type is 'int'
            /// Set to "IntegerArray" when the data type is 'int[]'
            /// Set to "DateTime" when the data type is 'long' (The 'long' data type can only be used for date/time representation)
            /// Set to "DateTimeArray" when the data type is 'long[]' (The 'long' data type can only be used for date/time representation)
            /// Set to "Boolean" when the data type is 'bool'
            /// Set to "BooleanArray" when the data type is 'bool[]'
            /// Set to "Double" when the data type is 'double'
            /// Set to "DoubleArray" when the data type is 'double[]'
            /// Set to "String" when the data type is 'string'
            /// Set to "StringArray" when the data type is 'string[]'
            /// Set to "Indicator" when the data type is 'Indicator'
            /// Set to "Pattern" when the data type is 'Pattern'
            /// Set to "Signal" when the data type is 'Signal'
            /// Set to "Drawing" when the data type is 'Drawing'
            /// Set to "Symbol" when the data type is 'int' representing a symbol index.
    
            /// OPTIONAL ATTRIBUTES:
            /// (3) default: The default parameter value is only valid when the type is Integer, Boolean, Double or String. 
            /// (4) min: The minimum parameter value is only valid when the type is Integer or Double.
            /// (5) max: The maximum parameter value is only valid when the type is Integer or Double.
    
            /// EXAMPLE: <param name="" type="" default="" min="" max="">Enter the parameter description here.</param> 
            /// --------------------------------------------------------------------------------------------------
            /// <param name="symbolIndex" type="Symbol">Use for the underlying symbol index on which to calculate the indicator script.</param>
            public void OnInitialize(
                int symbolIndex) {
                // Set the symbol index.
                _symbolIndex = symbolIndex;
                // Set the MTV value.
                _MTV = SymbolTick(symbolIndex);
            }
    #endregion
    
    #region OnValue
            /// <summary>
            /// This function is used for calculating the indicator value for the latest bar (see the Indicator functions).
            /// </summary>
            /// <returns>The indicator value for the latest bar.</returns>
            public override double OnValue() {
                // Check whether the two consecutive closing prices have moved more than one tick.
                if (BarClose(_symbolIndex, 0) - BarClose(_symbolIndex, 1) > _MTV)
                    return this[1] + BarVolume(_symbolIndex, 0);
                else
                    return this[1] - BarVolume(_symbolIndex, 0);
            }
    #endregion
    
    #region OnRegisterPens
            /// <summary>
            /// This function is used for registering the indicator pens (see the IndicatorRegisterPen function).
            /// </summary>
            public override void OnRegisterPens() {
                // Register a pen.
                IndicatorRegisterPen(0, "Pen", IQ_Color.MIDNIGHT_BLUE, IQ_DashStyle.SOLID, 1);
            }
    #endregion
    
    #region OnSelectPen
            /// <summary>
            /// This function is used for selecting a registered indicator pen with which to color the latest indicator value.
            /// Call the IndicatorRegisterPen function from the OnRegisterPens function in order to register an indicator pen.
            /// </summary>
            /// <returns>The indicator pen index to use for coloring the latest indicator value.</returns>
            public override byte OnSelectPen() {
                // Color the indicator value with the zero pen.
                return 0;
            }
    #endregion
        }
    }

    Hope that someone can help with this

    #2
    Hello panther6500,

    Thank you for your post and welcome to the NinjaTrader Support Forum!

    This code is not in a format that would be recognized as an indicator in NinjaTrader 7. Do you know what version of NinjaTrader this was developed for? Or what trading platform?

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by maybeimnotrader, Yesterday, 05:46 PM
    2 responses
    21 views
    0 likes
    Last Post maybeimnotrader  
    Started by adeelshahzad, Today, 03:54 AM
    5 responses
    32 views
    0 likes
    Last Post NinjaTrader_BrandonH  
    Started by stafe, 04-15-2024, 08:34 PM
    7 responses
    32 views
    0 likes
    Last Post NinjaTrader_ChelseaB  
    Started by merzo, 06-25-2023, 02:19 AM
    10 responses
    823 views
    1 like
    Last Post NinjaTrader_ChristopherJ  
    Started by frankthearm, Today, 09:08 AM
    5 responses
    22 views
    0 likes
    Last Post NinjaTrader_Clayton  
    Working...
    X