I know it takes some reprogramming, but trying saying something besides "no". At that age, children are not able to comprehend that you are saying "no, I don't want you to climb there because you might get hurt."
If she is about to do something that might hurt her, try using the word "danger" or something similar. We use that with my daughter and it got a better reaction than "no".
You could also just say "stop". If she is familiar with the "Stop and Go" game, she will understand that better than "no".
Her hitting sounds like a normal reaction to being frustrated. It is no reflection on your parenting, just her limited ability to communicate. When she reacts that way, make sure to ask her why she is doing it. Ask her if she is angry or sad and help her learn the words to express herself, then she won't feel a need to hit herself. Respond with "I am sorry your are sad right now, but Mommy doesn't want you to hurt yourself climbing on the stairs." Acknowledge her feelings and give her an explaination for your reaction.
I know it may seem silly to justify yourself to a 15 month old, but if it is attention she wants, then this is a good way to show it to her.