Ok so I think I have answered my own question, been playing around for hours today and I finally just got the SkillLong version to match the static int one.

Quote:

while(asset(loop("EUR/USD","GBP/USD",USD/CHF"))) {

int crossed = SkillLong[0];
int Delay = 3;


if(crossOver(LP5,LP10))
SkillLong[0] = Delay;
else if(crossUnder(LP5,LP10))
SkillLong[0] = -Delay;

if(SkillLong[0] > 0 && crossOver(RSI10,50))) {
enterLong();
crossed = 0;
SkillLong[0] = crossed;
} else if(SkillLong[0] < 0 && crossUnder(RSI10,50))) {
enterShort();
crossed = 0;
SkillLong[0] = crossed;
} else
SkillLong[0] -= sign(crossed);
}


Ok so this is how I understand the theory. We create a variable called crossed and store SkillLong[0] into it. Then we store the Delay into SkillLong[0]. Next we check if SkillLong[0] > or < than 0. If it is trade is entered long or short. Then we store 0 back into crosssed and then store crossed back into SkillLong[0]. I got the same results running this code vs the static int crossed = 0 method on one asset so I assume its right. Any feedback or advice still would very much be appreciated.