Syntax
Public function ExponentialMovingAverage(ByRef Data As Database, ByRef Source As Field, ByVal Periods As Integer, ByVal StandardDeviations As Integer, ByVal MAType As Integer, Optional ByVal FieldAliasName As String = "") As RecordSet
Overview
Standard Deviation is a common statistical calculation that measures volatility. Other technical indicators are often calculated using standard deviations.
Interpretation
Major highs and lows often accompany extreme volatility. High values of standard deviations indicate that the price or indicator is more volatile than usual.
Note
StandardDeviations is an integer specifying the number of standard deviations to use in the 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).
Class: General
Parameters
Return Type | Return object of type Recordset |
Default Field Name(s) | StandardDeviation |
Sample
Public Sub main() 'Variables Dim _symbolInfo As VTLGeneral.CSymbol=ClientCode.GetSymbolByName("GOLD") 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 =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) 'CMO indicator Dim _indRecord As New VTLGeneral.RecordSet() Dim gnl As New VTLGeneral.General() _indRecord = gnl.StandardDeviation(DB,m_High,14,10,1,"StandardDeviation") For i = 1 To DB.getRecordCount output = output & CSTR(_indRecord.getValue("StandardDeviation", i) ) & vbcrlf Next GUI.MsgDialog(output) End Sub
See Also
Back to VTL Server Script Index