I can't seem to create more than 2 vertical lines with ObjectCreate

 

I thought for sure it was a problem with each line needing a unique name so I used a for loop to change a part of it each time. But it doesn't work. I want it to show a vertical line every time the stochastic crosses. This is my code for it. I'm thinking I need some kind of array to store the previous line values but I'm not sure how to do that. Any help would be greatly appreciated.

//+------------------------------------------------------------------+
//| expert showtrades function                                       |
//+------------------------------------------------------------------+
int ShowTrades()
  {
double faststo = iStochastic(NULL,0,14,3,3,0,0,0,1);
double prevfaststo = iStochastic(NULL,0,14,3,3,0,0,0,2);
double slowsto = iStochastic(NULL,0,14,3,3,0,0,1,1);
double prevslowsto = iStochastic(NULL,0,14,3,3,0,0,1,2);
//----
   if(faststo > slowsto && prevfaststo < prevslowsto)
      {
         for(int n=0;n<1000;n++)
            {
               ObjectCreate("buy "+n,0,0,Time[0],0);
               return;
            }
      }
   if(faststo < slowsto && prevfaststo > prevslowsto)
      {
         for(int o=0;o<1000;o++)
            {
               ObjectCreate("sell "+o,0,0,Time[0],0);
               return;
            }
      }
//----
  }
 
//+------------------------------------------------------------------+
//| expert showtrades function                                       |
//+------------------------------------------------------------------+
int ShowTrades()
  {
double faststo = iStochastic(NULL,0,14,3,3,0,0,0,1);           // hard coded for bar 1 value
double prevfaststo = iStochastic(NULL,0,14,3,3,0,0,0,2);       // bar 2
double slowsto = iStochastic(NULL,0,14,3,3,0,0,1,1);            // bar 1
double prevslowsto = iStochastic(NULL,0,14,3,3,0,0,1,2);          // bar 2
//----
   if(faststo > slowsto && prevfaststo < prevslowsto)
      {
         for(int n=0;n<1000;n++)
            {
               ObjectCreate("buy "+n,0,0,Time[0],0);           // see  objectslist how many lines you have at same place
               return;
            }
      }
   if(faststo < slowsto && prevfaststo > prevslowsto)
      {
         for(int o=0;o<1000;o++)
            {
               ObjectCreate("sell "+o,0,0,Time[0],0);
               return;
            }
      }
//----
  }

This is an alternative

//+------------------------------------------------------------------+
//| expert showtrades function                                       |
//+------------------------------------------------------------------+
int ShowTrades()
  {
double faststo = iStochastic(NULL,0,14,3,3,0,0,0,1);
double prevfaststo = iStochastic(NULL,0,14,3,3,0,0,0,2);
double slowsto = iStochastic(NULL,0,14,3,3,0,0,1,1);
double prevslowsto = iStochastic(NULL,0,14,3,3,0,0,1,2);
//----
   if(faststo > slowsto && prevfaststo < prevslowsto)
      {
       ObjectCreate("buy "+Time[0],0,0,Time[0],0);
      }
   if(faststo < slowsto && prevfaststo > prevslowsto)
      {
       ObjectCreate("sell "+Time[0],0,0,Time[0],0);
      }
//----
  }
 
deVries:

This is an alternative


Thank you, that worked much better.
Reason: