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