i think the best thing for you to do is take your anger out through a sport that is very tiring or violent. by doing this, you use your anger to force yourself forward, force yourself to excel physically.
a good tiring sport is swimming, go swimming whenever you can, and each time, try and beat your previous or record length.
a good violent sport is kickboxing and normal boxing. both let you take your anger out on the air or a punch bag, and push you to push yourself to learn the techniques.
both of these sports let out your anger in constructive ways, instead of destructive ways, and at the end, both let you succumb to tiredness, so you dont have the energy to be angry.
i hope you can get out of this trend of hurting yourself, i would try to as well if i was in it. good luck.
p.s. if you have any questions, contact me.