The requirement to pull the first Open and last Close for each ticket, compute change and percentage, as well as total vol at the same time, complicates the process. This is a method that makes advantage of recordset loops. Suppose that the rows are already sorted by ticket and date and that the dataset is just for one year. I choose not to use the annoying angle brackets found in field headers. I suggest you take them out.
Sub AggData()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strT As String, dblOpen As Double, dblClose As Double, lngTot As Long, x As Integer, r As Integer, booEnd As Boolean
cn.Open "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & ThisWorkbook.FullName & ";HDR=Yes';"
rs.Open "SELECT * FROM [Sheet2$]", cn, adOpenStatic, adLockOptimistic
strT = rs!Ticker
x = 1
r = 2
Do While Not rs.EOF
    If strT = rs!Ticker Then
        If x = 1 Then dblOpen = rs!Open Else dblClose = rs!Close
        lngTot = lngTot + rs!Vol
        x = x + 1
        rs.MoveNext
        If rs.EOF Then booEnd = True
    Else
        booEnd = True
    End If
    If booEnd Then
        Debug.Print strT & "," & dblOpen & "," & dblClose & "," & lngTot
        Sheets("Sheet1").Cells(r, 9).Value = strT
        Sheets("Sheet1").Cells(r, 10).Value = dblClose - dblOpen
        Sheets("Sheet1").Cells(r, 11).Value = Round((dblClose - dblOpen) / dblOpen, 2)
        Sheets("Sheet1").Cells(r, 12).Value = lngTot
        r = r + 1
        booEnd = False
        If Not rs.EOF Then strT = rs!Ticker
        lngTot = 0
        x = 1
    End If
Loop
End Sub