Syntax
Public function TradeVolumeIndex(ByRef Data As Database, ByRef Source As Field, ByVal Volume As Field, ByVal MinTickValue As Double, Optional ByVal FieldAliasName As String = "") As RecordSet
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
Parameters
Return Type | Return object of typeRecordset |
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