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

  • NinjaTrader_PatrickH
    replied
    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?

    Leave a comment:


  • panther6500
    started a topic How to get script to work with NT7

    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

Latest Posts

Collapse

Topics Statistics Last Post
Started by zstheorist, Today, 07:52 PM
0 responses
3 views
0 likes
Last Post zstheorist  
Started by pmachiraju, 11-01-2023, 04:46 AM
8 responses
149 views
0 likes
Last Post rehmans
by rehmans
 
Started by mattbsea, Today, 05:44 PM
0 responses
5 views
0 likes
Last Post mattbsea  
Started by RideMe, 04-07-2024, 04:54 PM
6 responses
33 views
0 likes
Last Post RideMe
by RideMe
 
Started by tkaboris, Today, 05:13 PM
0 responses
5 views
0 likes
Last Post tkaboris  
Working...
X