Syntax
Public Function VolumeOscillator(ByRef Data As Database, ByRef Volume As Field, ByVal ShortTerm As Integer, ByVal LongTerm As Integer, ByVal MAType As Integer, ByVal PointsOrPercent As Integer, Optional ByVal FieldAliasName As String = "") As RecordSet
Overview
The Volume Oscillator shows a spread of two different moving averages of volume over a specified period of time.
Interpretation
The Volume Oscillator offers a clear view of whether or not volume is increasing or decreasing.
Note
ShortTerm and LongTerm are both integers specifying the length of time used in the moving average calculations. MAType is an integer specifying the moving average type to be used (Simple = 1, Exponential = 2, TimeSeries = 3, Variable = 4, Triangular = 5, Weighted = 6, VIDYA = 7).
PointsOrPercent is an integer specifying Points output for 1 or Percent output for 2.
Class: Oscillator
Properties
Function | VolumeOscillator(Database, Field Volume, int ShortTerm, int LongTerm, int MAType, int PointsOrPercent, string Alias |
Return Type | Returns object pf type Recordset |
Default Field Name(s) | VolumeOscillator |
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) 'Oscillator indicator Dim _indRecord As New VTLGeneral.RecordSet() Dim osc As New VTLGeneral.Oscillator () _indRecord = osc.VolumeOscillator(DB,m_High,7,14,1,1,"") 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