I looked in my old saved macros from when I played a few years back and found this:
!Loop
Assistant.Macros.HotKeyAction|0|Restock Agent-1
Assistant.Macros.PauseAction|00:00:00.8000000
Assistant.Macros.AbsoluteTargetAction|0|0|1076946730|1810|3232|7|3709
Assistant.Macros.PauseAction|00:00:03.9000000
Assistant.Macros.MacroCastSpellAction|30
Assistant.Macros.PauseAction|00:00:00.8000000
Assistant.Macros.WaitForTargetAction|30
Assistant.Macros.PauseAction|00:00:00.8000000
Assistant.Macros.HotKeyAction|1059|
Assistant.Macros.PauseAction|00:00:01
Assistant.Macros.IfAction|0|0|30
Assistant.Macros.HotKeyAction|0|Restock Agent-2
Assistant.Macros.PauseAction|00:00:00.8000000
Assistant.Macros.AbsoluteTargetAction|0|0|1076946730|1810|3232|7|3709
Assistant.Macros.PauseAction|00:00:05.6000000
Assistant.Macros.MacroCastSpellAction|29
Assistant.Macros.PauseAction|00:00:00.8000000
Assistant.Macros.WaitForTargetAction|30
Assistant.Macros.PauseAction|00:00:00.8000000
Assistant.Macros.HotKeyAction|1059|
Assistant.Macros.PauseAction|00:00:00.8000000
Assistant.Macros.EndIfAction
Assistant.Macros.PauseAction|00:00:00.7000000
Assistant.Macros.IfAction|1|0|20
Assistant.Macros.UseSkillAction|46
Assistant.Macros.PauseAction|00:00:01
Assistant.Macros.IfAction|4|0|you enter a meditative trance.
Assistant.Macros.PauseAction|00:00:40
Assistant.Macros.ElseAction
Assistant.Macros.PauseAction|00:00:10.7000000
Assistant.Macros.UseSkillAction|46
Assistant.Macros.PauseAction|00:00:30
Assistant.Macros.EndIfAction
Assistant.Macros.PauseAction|00:00:00.6000000
Assistant.Macros.EndIfAction
Assistant.Macros.PauseAction|00:00:01.5000000
This was used to cast lightining on myself over and over. Paste that into your macro list and with a few tweaks you can probably get it just how you want it.