int BarsAgo = Swing(SwingStrength).SwingHighBar(0, 1, 300);
//if(BarsAgo < 6 || CurrentBar <= BarsAgo) return;
if(BarsAgo ==-1 || CurrentBar <= BarsAgo) return;
Print(string.Format("{0} | CurrentBar: {1}, BarsAgo: {2}", Time[0], CurrentBar, BarsAgo));
double swingHigh = Swing(SwingStrength).SwingHigh[BarsAgo];
int BarsAgo1 = Swing(SwingStrength).SwingLowBar(0, 1, 300);
if(BarsAgo1 ==-1 || CurrentBar <= BarsAgo1) return;
Print(string.Format("{0} | CurrentBar: {1}, BarsAgo1: {2}", Time[0], CurrentBar, BarsAgo1));
double swingLow = Swing(SwingStrength).SwingLow[BarsAgo1];
//Print(swingHigh);
int BarsAgo2 = Swing(SwingStrength).SwingHighBar(0, 2, 300);
if(BarsAgo2 ==-1 || CurrentBar <= BarsAgo2) return;
Print(string.Format("{0} | CurrentBar: {1}, BarsAgo2: {2}", Time[0], CurrentBar, BarsAgo2));
double swingHighPrevious = Swing(SwingStrength).SwingHigh[BarsAgo2];
//int BarsAgo3 = Swing(SwingStrength).SwingLowBar(0, 2, Bars.BarsSinceNewTradingDay);
int BarsAgo3 = Swing(SwingStrength).SwingLowBar(0, 2, 300);
Print(string.Format("{0} | CurrentBar: {1}, BarsAgo3: {2}", Time[0], CurrentBar, BarsAgo3));
if(BarsAgo3 ==-1 || CurrentBar <= BarsAgo3) return;
double swingLowPrevious = Swing(SwingStrength).SwingLow[BarsAgo3];
Sometime I find the BarAgo3 value is -1 which is how many bars before the current bar is the low before the previous low. I am wondering why it happens.

Comment