So if it's always at the same position from the right and always 4 characters, then please try:

With Range("A1")
.Characters(.Characters.Count - 8, 4).Font.Color = vbRed
End With

Using the second parameter we can specify the length which in your case is 4 characters. That way you won't have to parse characters one by one to format them. For more information please refer to the docs
Would you need to find the position of -
from the right, then use InstrRev
. This would substitute .Characters.Count - 8
as a starting position.
Edit:
Through the comments it became clear your are actually working with formulas based on other cells. Since you can't really change the font color within a formula, you could hide the actual formula and add a change event to the worksheet. A very basic example could be:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("C2:D2")) Is Nothing Then
With Range("B2")
.Value = .Offset(, -1).Value
.Characters(Len(.Value) - Len(.Offset(, 2).Value), Len(.Offset(, 2).Value)).Font.Color = vbRed
End With
End If
Application.EnableEvents = True
End Sub

In fact, if you go this route, you could also decide to actually remove the actuall formula alltogether and construct the text to format through VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("C2:D2")) Is Nothing Then
With Range("B2")
.Value = .Offset(, 1).Value & "(" & ChrW(8710) & .Offset(, 2).Value & ")"
.Characters(Len(.Value) - Len(.Offset(, 2).Value), Len(.Offset(, 2).Value)).Font.Color = vbRed
End With
End If
Application.EnableEvents = True
End Sub