Here's my very own Charge Macro for my Arms spec mainly! If you can improve it go for it! (Note: it almost maxes the 255 limit)
So what does it do? Simple: Firstly, it cancels Bladestorm and then charges in Battle/zerker stance if your target is harmful, switches to defensive stance and intervenes if your target is friendly! {spamming req due to GCD) Also this macro works on mouseovers so be careful where you're pointing but you can remove the @mouseover to make it function on targets only. It also equips your sword/shield in def stance and also goes back to battle if you mouseover a harmful target later! (note: Does not re-equip 2hander!)
The important bit: This is my PERSONAL macro, it works for me, it may/may not work for you! Try it nonetheless who knows it might improve your playstyle
Ciao!
#showtooltip
/cancelaura Bladestorm
/cast [stance:1/3,@mouseover,harm]Charge;[@mouseover,help]Defensive Stance
/cast [stance:2,@mouseover,help]Intervene;[harm]Battle Stance
/equip 16 [stance:2]Soul Blade
/equip 17 [stance:2]Elementium Earthguard