With this copy and paste work I think I made a system tester simulating the VST system. Change the entry block for the exit block and you have the exit signal. Replace the 6 in in=6 by opt1 (define as begin 6 to end 6, step1) and the same for ex= with opt2 but then with 1 and you can compare the average of all tested stocks in one glance. If you create in the systemtester a system with C>opt1 as buying system and define opt1 here as 0, you can quickly see in one glance the buy and hold result of the same group of stock in a separate system run with te same parameters/time period. If you define the opt's above from 1 to 6 you can optimize for all situations. It does not score extremely very well overall with the fixed parameters 6 and 1. I don't know if that's the reason why the system isn't incorporated in the Metastock system tester but .....
{User inputs}
in:=6;
ex:=1;
spread:=3.5;
ATRpds:=6;
pds:=12;
x:=3;
{Price}
hi:=If(x=1,O,If(x=2,H,If(x=3,C,WC())));
lo:=If(x=2,L,hi);
{Volatility bands}
midl:=Mov((hi+lo)/2,pds,S);
top:=midl+ATR(ATRpds)*spread/2;
bot:=midl-ATR(ATRpds)*spread/2;
{Spread%}
spreadP:=(top-bot)/C*100;
{Raw signals}
entry:=
If(in=1,Cross(lo,bot),
If(in=2,Cross(lo,midl),
If(in=3,Cross(lo,top),
If(in=4,Cross(bot,hi),
If(in=5,Cross(midl,hi),
Cross(top,hi))))));
Entry=1
===================================================
Exit block
exit:=
If(ex=1,Cross(lo,bot),
If(ex=2,Cross(lo,midl),
If(ex=3,Cross(lo,top),
If(ex=4,Cross(bot,hi),
If(ex=5,Cross(midl,hi),
Cross(top,hi))))));
Exit=1