You should just tell the person that you don't like it, politely of course. I had a guy friend who would do that to me. Called me buttnugget for no apparent reason. He thought he was being funny. I didn't find it funny at all, nor offensive, I just thought it was plain stupid. I never told him to stop however, because I would throw nicknames back in his face and he didn't like it. He eventually stopped.
if i were you, I wouldn't resort to calling her nicknames, but just tell her that you don't like the nickname. If she continues to call you that, then don't respond of answer to her because that's not your name! And you told her not to call you that.
Also, you said you two have a love-hate relationship, that could be the source of it! She may be pushing some sort of anger or hate out on you because she doesn't like you or is jealous for some reason. It would be best to just not be involved with a friend like that. I had a friend like that, I stopped talking to her because she treated me like crap and caused a lot of drama and grief! Totally not worth it.
Whatever you decide to do, I hope it turns out well.