highest and lowest rsi,how?

 

this its normal rsi code..its close price values...how change code?--> highest price,highest or lowest rsi valus?

 

 //+------------------------------------------------------------------+

//|                                                          RSI.mq4 |

//|                      Copyright ?2004, MetaQuotes Software Corp. |

//|                                       http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "Copyright ?2004, MetaQuotes Software Corp."

#property link      "http://www.metaquotes.net/"



#property indicator_separate_window

#property indicator_minimum 0

#property indicator_maximum 100

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

//---- input parameters

extern int RSIPeriod=14;

//---- buffers

double RSIBuffer[];

double PosBuffer[];

double NegBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int init()

  {

   string short_name;

//---- 2 additional buffers are used for counting.

   IndicatorBuffers(3);

   SetIndexBuffer(1,PosBuffer);

   SetIndexBuffer(2,NegBuffer);

//---- indicator line

   SetIndexStyle(0,DRAW_LINE);

   SetIndexBuffer(0,RSIBuffer);

//---- name for DataWindow and indicator subwindow label

   short_name="RSI("+RSIPeriod+")";

   IndicatorShortName(short_name);

   SetIndexLabel(0,short_name);

//----

   SetIndexDrawBegin(0,RSIPeriod);

//----

   return(0);

   int theBar;

double thelowest;

for(int i = 0; i <= 30; i++)

{

   double rsi; rsi = iRSI(NULL,0,14,PRICE_CLOSE, i);

   if( rsi < thelowest )//I just changed the ">" code there. 

    {

      thelowest = rsi;

      theBar = i;

   }

}











  }

//+------------------------------------------------------------------+

//| Relative Strength Index                                          |

//+------------------------------------------------------------------+

int start()

  {

   int    i,counted_bars=IndicatorCounted();

   double rel,negative,positive;

//----

   if(Bars<=RSIPeriod) return(0);

//---- initial zero

   if(counted_bars<1)

      for(i=1;i<=RSIPeriod;i++) RSIBuffer[Bars-i]=0.0;

//----

   i=Bars-RSIPeriod-1;

   if(counted_bars>=RSIPeriod) i=Bars-counted_bars-1;

   while(i>=0)

     {

      double sumn=0.0,sump=0.0;

      if(i==Bars-RSIPeriod-1)

        {

         int k=Bars-2;

         //---- initial accumulation

         while(k>=i)

           {

            rel=Close[k]-Close[k+1];

            if(rel>0) sump+=rel;

            else      sumn-=rel;

            k--;

           }

         positive=sump/RSIPeriod;

         negative=sumn/RSIPeriod;

        }

      else

        {

         //---- smoothed moving average

         rel=Close[i]-Close[i+1];

         if(rel>0) sump=rel;

         else      sumn=-rel;

         positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;

         negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;

        }

      PosBuffer[i]=positive;

      NegBuffer[i]=negative;

      if(negative==0.0) RSIBuffer[i]=0.0;

      else RSIBuffer[i]=100.0-100.0/(1+positive/negative);

      i--;

     }

//----

   return(0);

  }

//+------------------------------------------------------------------+
Reason: