H.V.
One thing you can try, when she is in a bad mood, is tell her that if she has a bad attitude to go into her room for some alone time. Not really a time out, but more of a "go in there and do that" kinda of thing.
When my son gets whiny or angry I tell him to go do that. He goes in his room, yells, screams etc and after a min or two comes out and says "riley all better mom"
Works for me.
Other than that have you thought of who she might have picked that up from? My son never hit people until I started taking him to an old friend of mines house. Her little one hit so my son thought it was ok to do so.
Needless to say, he hit his daddy once, and Woah after he saw the effect of that from daddy he's never done it again.
Also sometimes little kids seem to "act out" when they want attention, but also when they are tired, or hungry.