Neural Indicator
Posted by Mohammad Rahhal, Last modified by Abdullah Almasharfah on 14 December 2018 11:57 PM


The Neural Indicator uses a neural network (an advanced form of artificial intelligence) to analyze non-linearity that may be hidden in technical indicators.

The Neural Indicator output most closely resembles an oscillator. Values may have a wide range and are seldom the same for each run through the neural network (due to random initialization) unless a very strong relationship between future price and the indicator being analyzed exists, or the network has been overtrained.

The NeuralNetwork class is different from other TA classes. This is not a standard technical indicator, but rather an advanced form of artificial intelligence. The NeuralIndicator function may take several minutes to complete, depending on argument values. LearningRate is a double value specifying the neural network learning rate (0.1 to 1+), Epochs is a long value specifying the amount of neural network learning to perform (1 to 32,000 – 500 or less is recommended), and PercentTrain is a double value specifying the amount of data to be used as an out-of-sample neural network training set.



Public function TradeVolumeIndex(ByRef Data As DatabaseByRef Source As FieldByVal Volume As Field, ByVal MinTickValue As DoubleOptional ByVal FieldAliasName As String = "") As RecordSet


Return Type Return object of type Recordset 
Default Field Name(s) NeuralIndicator


Public Sub main()


        Dim _symbolInfo As VTLGeneral.CSymbol=ClientCode.GetSymbolByName("GOLD")

        Dim DB As New VTLGeneral.Database()

        Dim RecordCount As Integer

        Dim m_Recordset As VTLGeneral.RecordSet

        Dim _historyData As object()

        Dim output As String

        Dim Record As Integer

        Dim m_Date As VTLGeneral.Field

        Dim m_Open As VTLGeneral.Field

        Dim m_High As VTLGeneral.Field

        Dim m_Low As VTLGeneral.Field

        Dim m_Close As VTLGeneral.Field

        Dim j As Integer = 0

        Dim i As Integer = 0

        Dim _recordCount As Integer =100

        m_Recordset = DB.CreateRecord

        m_Open = New VTLGeneral.Field

        m_High = New VTLGeneral.Field

        m_Low = New VTLGeneral.Field

        m_Close = New VTLGeneral.Field

        DB.RecordCount = _recordCount

        RecordCount = _recordCount

        'Initialize Recordsets

        m_Open.initialize(_recordCount, "Open")

        m_High.initialize(_recordCount, "High")

        m_Low.initialize(_recordCount, "Low")

        m_Close.initialize(_recordCount, "Close")

        'load high, low ,open and data

         _historyData = ClientCode.GetChartHistory(_symbolInfo.ID, VTLGeneral.ENUM_PERIOD.Day,VTLGeneral.ENUM_HISTORY_TYPE.HIS_HIGH, _recordCount)

         For i  = 1 To _recordCount-1



        _historyData = ClientCode.GetChartHistory(_symbolInfo.ID, VTLGeneral.ENUM_PERIOD.Day,VTLGeneral.ENUM_HISTORY_TYPE.HIS_LOW, _recordCount)

        For i  = 1 To _recordCount-1



        _historyData = ClientCode.GetChartHistory(_symbolInfo.ID, VTLGeneral.ENUM_PERIOD.Day,VTLGeneral.ENUM_HISTORY_TYPE.HIS_OPEN, _recordCount)

        For i  = 1 To _recordCount-1



        _historyData = ClientCode.GetChartHistory(_symbolInfo.ID, VTLGeneral.ENUM_PERIOD.Day,VTLGeneral.ENUM_HISTORY_TYPE.HIS_CLOSE, _recordCount)

        For i  = 1 To _recordCount-1







        'NeuralIndicator indicator

        Dim _indRecord As New VTLGeneral.RecordSet()

        Dim _neuralNetwork  As New VTLGeneral.NeuralNetwork ()

        _indRecord = _neuralNetwork.NeuralIndicator(DB,m_High,14,0.5,5,60)

        For i = 1 To DB.getRecordCount

                output = output  &  CSTR(_indRecord.getValue(_indRecord.getName(1), i) ) & vbcrlf




End Sub


See Also

Back to VTL Server Script Index


(0 vote(s))
Not helpful

Comments (0)
Post a new comment
Full Name:
CAPTCHA Verification 
Please enter the text you see in the image into the textbox below (we use this to prevent automated submissions).

Help Desk Software by Hybrid Solutions