Syntax
Public function Fibonacci(ByRef Source As Field, ByVal StartPeriod As Integer, ByVal EndPeriod As Integer, Optional ByVal FieldAliasName As String = "") As RecordSet
Overview
Fibonacci numbers were discovered by Leonardo Fibonacci in the late 1100’s while studying the great pyramids in Egypt.
Interpretation
Fibonacci numbers are members of a sequence where each number is the sum of the two previous numbers. For example: 1,2,3,4,8,13,21,34,55… Market turning points may occur on or near a Fibonacci time zone
Note
The Fibonacci function returns a Recordset object. Returned values are present only between the start and end periods of the calculation as specified in the function arguments. All other values in the returned Recordset object will equal to zero (0).
Class: LineStudy
Parameters
Return Type |
Returns object of type Recordset |
Default Field Name(s) |
Fibonacci |
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 =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)
'Fibonacci indicator
Dim _indRecord As New VTLGeneral.RecordSet()
Dim ls As New VTLGeneral.LineStudy()
_indRecord = ls.Fibonacci(m_High,14,30,"Fibonacci")
For i = 0 To DB.getRecordCount-1
output = output & CSTR(_indRecord.getValue("Fibonacci", i) ) & vbcrlf
Next
GUI.MsgDialog(output)
End Sub
See Also
Back to VTL Server Script Index
|