Login
Try VertexFX
  • Home
  • Knowledgebase
  • Blog
  • Forum
  • Home
  • Knowledgebase
  • Blog
  • Forum

Band Indicators

home/Knowledge Base/Technical Support/API/Client API's/VTL/VTL Server Scripts/Technical Analysis (TA)/Band Indicators/Moving Average Envelope

Moving Average Envelope

1 views 0 December 16, 2021 hybrid-solutions

Syntax

Public function MovingAverageEnvelope(ByRef Data As Database, ByRef Source As Field, ByVal Periods As Integer, ByVal MAType As Integer, ByVal Shift As Double) As RecordSet

Overview

Moving Average Envelopes consist of moving averages calculated from the underlying price, shifted up and down by a fixed percentage.

Interpretation

Moving Average Envelopes (or trading bands) can be imposed over an actual price or another indicator.
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

The shift is a double value specifying the percentage of shift for each moving average from the actual values.
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 Return object of type Recordset
Default Field Name(s) EnvelopeTop, EnvelopeBottom


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 =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)         'MovingAverageEnvelope indicator        Dim _indRecord As New  VTLGeneral.RecordSet()        Dim bnd As New VTLGeneral.Bands()        _indRecord = bnd.MovingAverageEnvelope(DB,m_Close,14,1,1)         For i = 0 To DB.getRecordCount-1                output = output  &  CSTR(_indRecord.getValue("EnvelopeTop", i) ) & vbcrlf        Next         GUI.MsgDialog(output) End Sub  

See Also

  • FractalChaosBands
  • Keltner
  • PrimeNumberBands


Back to VTL Server Script Index

Was this helpful?

Yes  No
Leave A Comment Cancel reply

About
VertexFX Trader has a closed-loop trading structure with Backoffice dealing desk, Client Terminals, Dedicated Hosting, White Labelling and Bridging Capabilities. Through VertexFX Risk Management Bridge...
Categories
  • Technical Support
  • Social Trading
  • VertexFX Pro Setup
  • Mobile Trader
  • Lite VertexFX Mobile Trader
Community
  • Blog
  • Forum
  • Media Center
Need Support?
If you need any further help, don't hesitate to send a support request to our support team.
Contact Support
  • Privacy Policy
  • Brokers Terms
  • Traders EULA
  • ISV Terms
  • Plugins EULA
  • Copyright 2022 hybridsolutions.com. All Rights Reserved.