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

 

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

Interpretation
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.

Note
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.


Class:
NeuralNetwork


Syntax

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


Sample

Public Sub main()

        'Variables

        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

                m_High.setValue(i,_historyData(i))

         Next
 

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

        For i  = 1 To _recordCount-1

                m_Low.setValue(i,_historyData(i))

        Next 


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

        For i  = 1 To _recordCount-1

                m_Open.setValue(i,_historyData(i))

        Next 


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

        For i  = 1 To _recordCount-1

                m_Close.setValue(i,_historyData(i))

        Next 
 

        m_Recordset.addField(m_Open)

        m_Recordset.addField(m_High)

        m_Recordset.addField(m_Low)

        m_Recordset.addField(m_Close)
 

        '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

        Next
 

        GUI.MsgDialog(output)

 

End Sub

 


See Also


Back to VTL Server Script Index

 

(0 vote(s))
Helpful
Not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments:
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