As your question suggest, he's both.
He's disgracefully treated by the Christians: they mock his religion, refuse to trade with him, spit on him in the street, and - even in the trial scene - mock him and taunt him to his face. Throughout the play he's referred to as "Jew" rather than "Shylock", and you can see why he longs to "feed fat" his grudge against the Christians.
He is devastated when his daughter leaves him, without any warning, and without any evidence of negative behaviour towards her from him (she says "this house is hell", though the scene doesn't make it clear exactly why she feels like that). Shylock is, I think Shakespeare makes it very clear, a victim.
He is also a villain. He deliberately opts for the "pound of flesh" because he has a grudge against Antonio, and, when the chance comes to get his revenge, he behaves in an extremely undignified and certainly unmerciful way. He gloats in front of Antonio, even attending the gaoler who arrest him, and openly proclaims his right to the flesh, against any sense of common humanity, in a public court. He also values his money extremely highly - not negative in itself - but, when he seems to value his ducats more than his daugther, you have to be suspicious. He's undoubtedly also a villain.
You can make a case either way. For me, I'd argue that he's both at once: though like the Wittgenstein duck/rabbit, at any one moment he seems one or the other.