PDA

View Full Version : Please help to include MACD indicator in VTL server side script



nhasan
10-02-2015, 01:16 AM
Hi
I am trying to build a server side script using two indicators CCI and MACD
First I take CCI code given in help page and make a function named vCCI as private function
It's working fine
Then I just copy MACD code from the help page and paste in Sub Main section - but it's not responding
I tried the same code in a separate script and found it's working there
Same code copied from same page is working in one script but not in another - I am very much confused about it.

I am using VertexFx 10.5.3 VTL Editor

Please run the script in your platform and confirm whether it's my client issue or anything else.

Thanks

Rawan-HS
10-04-2015, 09:52 AM
Dear Naeem

we will check it and updating you soon .

Hassan-HS
10-07-2015, 07:54 AM
Hello Mr.Naeem,


Please check this code...



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-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)



'MACD indicator


Dim _indRecord As New VTLGeneral.RecordSet()


Dim osc As New VTLGeneral.Oscillator()


_indRecord = osc.MACD(DB,m_Recordset,5)

output = "MACD" & vbcrlf
For i = 0 To DB.getRecordCount-1


output = output & CSTR(_indRecord.getValue(_indRecord.getName(1), i) ) & vbcrlf


Next



GUI.MsgDialog(output)



Dim Idx As New VTLGeneral.Index()


_indRecord = Idx.CommodityChannelIndex(DB,m_Recordset,14)
output = "CommodityChannelIndex" & vbcrlf
For i = 0 To DB.getRecordCount-1
output = output & CSTR(_indRecord.getValue(_indRecord.getName(1), i) ) & vbcrlf
Next


GUI.MsgDialog(output)





End Sub