Syntax
Public function HighLowBands(ByRef Data As Database, ByRef HighPrice As Field, ByRef LowPrice As Field, ByRef ClosePrice As Field, ByVal Periods As Integer) As RecordSet
Overview
High Low Bands consist of triangular moving averages calculated from the underlying price, shifted up and down by a fixed percentage, and include a median value.
Interpretation
When prices rise above the upper band or fall below the lower band, a change in direction may occur when the price penetrates the band after a small reversal from the opposite direction.
Note
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).
Class: Bands
Parameters
Return Type | Object type of Recordset |
Default Field Name(s) | HighLowBandsTop, HighLowBandsMedian, HighLowBandsBottom |
Sample
Public Sub main() 'Variables Dim _symbolInfo As VTLGeneral.CSymbol=ClientCode.GetSymbolByName("EUR/USD") Dim DB As New VTLGeneral.Database() Dim rsOHLCV As New VTLGeneral.RecordSet() 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 =ClientCode.Bars(_symbolInfo.ID.VTLGeneral.ENUM_PERIOD.Day) 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-1, "Open") m_High.initialize(_recordCount-1, "High") m_Low.initialize(_recordCount-1, "Low") m_Close.initialize(_recordCount-1, "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 = 0 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 = 0 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 = 0 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 = 0 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) 'HighLowBands indicator Dim _indRecord As New VTLGeneral.RecordSet() Dim bnd As New VTLGeneral.Bands() _indRecord = bnd.HighLowBands(DB,m_High,m_Low,m_Close,14) For i = 1 To DB.getRecordCount output = output & CSTR(_indRecord.getValue("HighLowBandsMedian", i) ) & vbcrlf Next GUI.MsgDialog(output) End Sub
See Also
Back to VTL Server Script Index