Simple Coding Help - No Promise.

Using 5 minutes chart will give you a rolling high for 60 minutes (last 12 bars)

Hi = HHV(H,12);

To Exclude last bar

Hi = Ref(HHV(H,12),-1);

To apply only on selected candle

Hi = SelectedValue(Ref(HHV(H,12),-1));

to Plot

Plot(SelectedValue(Ref(HHV(H,12),-1)),"12 bars Hi",colorBlue, styleLine);

Now do same for low

Plot(SelectedValue(Ref(LLV(L,12),-1)),"12 bars Lo",colorRed, styleLine);

to do the same for 90 minutes choose 18 bars instead of 12

Plot(SelectedValue(Ref(HHV(H,18),-1)),"18 bars Hi",colorBlue,styleLine);


Happy :)
Thanks a lot Happy Sing :clap::clap::clap: Always try to keep all happy :clap::clapping::clapping:
 
Using 5 minutes chart will give you a rolling high for 60 minutes (last 12 bars)

Hi = HHV(H,12);

To Exclude last bar

Hi = Ref(HHV(H,12),-1);

To apply only on selected candle

Hi = SelectedValue(Ref(HHV(H,12),-1));

to Plot

Plot(SelectedValue(Ref(HHV(H,12),-1)),"12 bars Hi",colorBlue, styleLine);

Now do same for low

Plot(SelectedValue(Ref(LLV(L,12),-1)),"12 bars Lo",colorRed, styleLine);

to do the same for 90 minutes choose 18 bars instead of 12

Plot(SelectedValue(Ref(HHV(H,18),-1)),"18 bars Hi",colorBlue,styleLine);


Happy :)
Hi Happy,

Any small function to restrict to show only day wise of 60/90 minutes excluding current candle.

lets take an example of MCX:-

If we select candle around 10:30 it shd show high/Low from start of the day i.e 10 AM instead looking back to 12 and 18 including yesterday.

Thanks in advance:thumb:
 
Hi Happy,

Any small function to restrict to show only day wise of 60/90 minutes excluding current candle.

lets take an example of MCX:-

If we select candle around 10:30 it shd show high/Low from start of the day i.e 10 AM instead looking back to 12 and 18 including yesterday.

Thanks in advance:thumb:
Possible . . . .

Code:
IIf(Day()==SelectedValue(Day()),Ref(HHV(H,12),-1),Null)
Now any more ideas you will have to learn and code on your own :thumb:


Happy :)
 
Thanks for reply....

here i add 4 day sma on renko so please add condition if ...

1. if red candle break moving average line down side show red arrow
2. if green candle break moving average line up side show green arrow.

afl is below...

_SECTION_BEGIN("kishor");
SetBarsRequired(100000,100000);
//------------------------------------------------------------------+
// Block 1 |
//------------------------------------------------------------------+
VR=ParamToggle("View Renko","Bricks|Lines/Bars",0);
FV=Param("Initial size volatility",20,20,20,20);
MV=Param("Method calculation volatility",0,0,2,1);
PeriodVol=Param("Period calculation volatility",14,2,100,1);
Multiplier=Param("Multiplier volatility",1,0.1,10,0.1);
MR=ParamToggle("Method Renko","floating|fixed",1);
SG=ParamToggle("Show gap","No|Yes",1);
CG=ParamColor("Colour show gap",11);
MaxBS=Param("Maximum size brick",0,0,10,0.1);
MinBS=Param("Minimum size brick",0,0,10,0.1);
RenkoUp=ParamColor("Colour Renko upwards",colorGreen);
RenkoDown=ParamColor("Colour Renko downwards",colorRed);
SB=ParamStyle("View bars",defaultval=styleCandle,mask=maskPrice);
color3=ParamColor("Colour bars",colorBlack);
History=Param("History size",500000,1,BarCount);

//------------------------------------------------------------------+
// Block 2 |
//------------------------------------------------------------------+
i=Max(BarCount-1-History,PeriodVol+1);
r=j=0;
direction=0;
iGapUp=iGapDown=0;
rOpen[0]=rHigh[0]=rLow[0]=rClose[0]=jUp=jDown=Open;
//-------------------------------------------------------------------
switch(MV)
{
case 0: Volatility=FV; break;
case 1: Volatility=ATR(PeriodVol)*Multiplier; break;
case 2: Volatility=StDev(Open,PeriodVol)*Multiplier; break;
}
BrickSize=Volatility[i-1];
//-------------------------------------------------------------------+
// Block 3 |
//-------------------------------------------------------------------+
while(i<=BarCount-1)
{
if(SG==1)
{
if(High[i-1]<Low)
{
iGapUp=1;
}
else
{
if(Low[i-1]>High)
{
iGapDown=1;
}
}
}
//-------------------------------------------------------------------
if(MR==0)
{
BrickSize=Volatility[i-1];
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
}
//------------------------------------------------------------------+
// Block 4 |
//------------------------------------------------------------------+
if(direction==0)
{
if(Open-rClose[r]>BrickSize)
{
rClose[r]=rOpen[r]+BrickSize;
rHigh[r]=rClose[r];
direction=1;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoUp;
}
continue;
}
//-------------------------------------------------------------------
else
{
if(rClose[r]-Open>BrickSize)
{
rClose[r]=rOpen[r]-BrickSize;
rLow[r]=rClose[r];
direction=2;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoDown;
}
continue;
}
}
}
//------------------------------------------------------------------+
// Block 5 |
//------------------------------------------------------------------+
else
{
if(direction==1)
{
if(rOpen[r]-Open>BrickSize)
{
r++;
rOpen[r]=rOpen[r-1];
rHigh[r]=rOpen[r];
rClose[r]=rOpen[r]-BrickSize;
rLow[r]=rClose[r];
direction=2;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoDown;
}
continue;
}
//-------------------------------------------------------------------
else
{
while(Open-rClose[r]>BrickSize)
{
r++;
rOpen[r]=rClose[r-1];
rLow[r]=rOpen[r];
rClose[r]=rOpen[r]+BrickSize;
rHigh[r]=rClose[r];
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoUp;
}
}
}
}
//------------------------------------------------------------------+
// Block 6 |
//------------------------------------------------------------------+
else
{
if(direction==2)
{
if(Open-rOpen[r]>BrickSize)
{
r++;
rOpen[r]=rOpen[r-1];
rLow[r]=rOpen[r];
rClose[r]=rOpen[r]+BrickSize;
rHigh[r]=rClose[r];
direction=1;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoUp;
}
continue;
}
//-------------------------------------------------------------------
else
{
while(rClose[r]-Open>BrickSize)
{
r++;
rOpen[r]=rClose[r-1];
rHigh[r]=rOpen[r];
rClose[r]=rOpen[r]-BrickSize;
rLow[r]=rClose[r];
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoDown;
}
}
}
}
}
}
//------------------------------------------------------------------+
// Block 7 |
//------------------------------------------------------------------+
if(VR==1)
{
jOpen[j]=Open;
jHigh[j]=High;
jLow[j]=Low;
jClose[j]=Close;
//-------------------------------------------------------------------
if(direction==1)
{
jUp[j]=rClose[r];
jDown[j]=rOpen[r];
color2[j]=color[r];
}
else
{
if(direction==2)
{
jUp[j]=rOpen[r];
jDown[j]=rClose[r];
color2[j]=color[r];
}
}
j++;
}
i++;
}
//------------------------------------------------------------------+
// Block 8 |
//------------------------------------------------------------------+
if(VR==1)
{
delta=BarCount-j;
jOpen=Ref(jOpen,-delta);
jHigh=Ref(jHigh,-delta);
jLow=Ref(jLow,-delta);
jClose=Ref(jClose,-delta);
jUp=Ref(jUp,-delta);
jDown=Ref(jDown,-delta);
color2=Ref(color2,-delta);
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
PlotOHLC(jOpen,jHigh,jLow,jClose,"SRI",color3,SB);
Plot(jUp,"Up",color2,styleThick);
Plot(jDown,"Down",color2,styleThick);
}
//-------------------------------------------------------------------
else
{
delta=BarCount-1-r;
rOpen=Ref(rOpen,-delta);
rHigh=Ref(rHigh,-delta);
rLow=Ref(rLow,-delta);
rClose=Ref(rClose,-delta);
color=Ref(color,-delta);
PlotOHLC(rOpen,rHigh,rLow,rClose,"SRI",color,styleCandle);
}



_SECTION_END();

_SECTION_BEGIN("MA");
P = ParamField("Price field",-1);
Periods = Param("Periods", 4, 2, 300, 1, 10 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
_SECTION_END();



I work on these afl if arrow add so its possible to backteast last two or more year..

if any one can add arrow please please add...

Here i add one jpg for afl...

Thanks
 

Attachments

Thanks for reply....

here i add 4 day sma on renko so please add condition if ...

1. if red candle break moving average line down side show red arrow
2. if green candle break moving average line up side show green arrow.

afl is below...

_
Code:
SECTION_BEGIN("kishor");
SetBarsRequired(100000,100000);
//------------------------------------------------------------------+
// Block 1                                                          |
//------------------------------------------------------------------+
  VR=ParamToggle("View Renko","Bricks|Lines/Bars",0);                
  FV=Param("Initial size volatility",20,20,20,20);            
  MV=Param("Method calculation volatility",0,0,2,1);                 
  PeriodVol=Param("Period calculation volatility",14,2,100,1);       
  Multiplier=Param("Multiplier volatility",1,0.1,10,0.1);           
  MR=ParamToggle("Method Renko","floating|fixed",1);         
  SG=ParamToggle("Show gap","No|Yes",1);                     
  CG=ParamColor("Colour show gap",11);                     
  MaxBS=Param("Maximum size brick",0,0,10,0.1);             
  MinBS=Param("Minimum size brick",0,0,10,0.1);              
  RenkoUp=ParamColor("Colour Renko upwards",colorGreen);      
  RenkoDown=ParamColor("Colour Renko downwards",colorRed);
  SB=ParamStyle("View bars",defaultval=styleCandle,mask=maskPrice);    
  color3=ParamColor("Colour bars",colorBlack);
  History=Param("History size",500000,1,BarCount);  
  
//------------------------------------------------------------------+
// Block 2                                                          |
//------------------------------------------------------------------+
  i=Max(BarCount-1-History,PeriodVol+1);                             
  r=j=0;                                                             
  direction=0;                                                       
  iGapUp=iGapDown=0; 
  rOpen[0]=rHigh[0]=rLow[0]=rClose[0]=jUp=jDown=Open[i];             
//------------------------------------------------------------------- 
  switch(MV)
    {
     case 0: Volatility=FV; break;                                   
     case 1: Volatility=ATR(PeriodVol)*Multiplier; break;             
     case 2: Volatility=StDev(Open,PeriodVol)*Multiplier; break;     
    }         
  BrickSize=Volatility[i-1];                                         
//-------------------------------------------------------------------+
// Block 3                                                           |
//-------------------------------------------------------------------+
  while(i<=BarCount-1)
    { 
     if(SG==1)
       {
        if(High[i-1]<Low[i])
          {
           iGapUp[i]=1;                                       
          }
          else
          {
           if(Low[i-1]>High[i])
             {
              iGapDown[i]=1;
             }
          }
       } 
//------------------------------------------------------------------- 
     if(MR==0)  
       {
        BrickSize=Volatility[i-1];
        if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}                 
        if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}                
       } 
//------------------------------------------------------------------+
// Block 4                                                          |
//------------------------------------------------------------------+
     if(direction==0)                                                 
       {                                                   
        if(Open[i]-rClose[r]>BrickSize)                              
          {                                                 
           rClose[r]=rOpen[r]+BrickSize;
           rHigh[r]=rClose[r];
           direction=1;
//------------------------------------------------------------------- 
           BrickSize=Volatility[i];
           if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}                
           if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//------------------------------------------------------------------- 
           if(iGapUp[i]==1|iGapDown[i]==1)                           
             {
              color[r]=CG;                                           
             }
             else
             {
              color[r]=RenkoUp;                                      
             }
           continue;                                                                                       
          }                                                           
//------------------------------------------------------------------- 
          else
          {
           if(rClose[r]-Open[i]>BrickSize)                             
             {
              rClose[r]=rOpen[r]-BrickSize;
              rLow[r]=rClose[r];
              direction=2;
//------------------------------------------------------------------- 
              BrickSize=Volatility[i];
              if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}                
              if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//------------------------------------------------------------------- 
              if(iGapUp[i]==1|iGapDown[i]==1)
                {
                 color[r]=CG;                                        
                }
                else
                {
                 color[r]=RenkoDown;                                         
                }
              continue;                                         
             }
          }
       }
//------------------------------------------------------------------+
// Block 5                                                          |
//------------------------------------------------------------------+
       else                                                         
       { 
        if(direction==1)                                             
          {
           if(rOpen[r]-Open[i]>BrickSize)                                                                     
             {
              r++;
              rOpen[r]=rOpen[r-1];
              rHigh[r]=rOpen[r];
              rClose[r]=rOpen[r]-BrickSize;
              rLow[r]=rClose[r];
              direction=2;
//------------------------------------------------------------------- 
              BrickSize=Volatility[i];
              if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}                
              if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//------------------------------------------------------------------- 
              if(iGapUp[i]==1|iGapDown[i]==1)
                {
                 color[r]=CG;                                        
                }
                else
                {
                 color[r]=RenkoDown;                                         
                }
              continue;                                                   
             }
//------------------------------------------------------------------- 
             else
             {
              while(Open[i]-rClose[r]>BrickSize)        
                {
                 r++;
                 rOpen[r]=rClose[r-1];
                 rLow[r]=rOpen[r];
                 rClose[r]=rOpen[r]+BrickSize;
                 rHigh[r]=rClose[r];
//------------------------------------------------------------------- 
                 BrickSize=Volatility[i];
                 if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}                
                 if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//------------------------------------------------------------------- 
                 if(iGapUp[i]==1|iGapDown[i]==1)
                   {
                    color[r]=CG;                                        
                   }
                   else
                   {
                    color[r]=RenkoUp;                                         
                   }
                }
             }
          }
//------------------------------------------------------------------+
// Block 6                                                          |
//------------------------------------------------------------------+
          else
          {
           if(direction==2)                                          
             {
              if(Open[i]-rOpen[r]>BrickSize)
                {
                 r++;
                 rOpen[r]=rOpen[r-1];
                 rLow[r]=rOpen[r];
                 rClose[r]=rOpen[r]+BrickSize;
                 rHigh[r]=rClose[r];
                 direction=1;
//------------------------------------------------------------------- 
                 BrickSize=Volatility[i];
                 if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}                
                 if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//------------------------------------------------------------------- 
                 if(iGapUp[i]==1|iGapDown[i]==1)
                   {
                    color[r]=CG;                                        
                   }
                   else
                   {
                    color[r]=RenkoUp;                                         
                   }
                 continue;  
                }
//------------------------------------------------------------------- 
                else
                {
                 while(rClose[r]-Open[i]>BrickSize)                                                        
                   {
                    r++;
                    rOpen[r]=rClose[r-1];
                    rHigh[r]=rOpen[r];
                    rClose[r]=rOpen[r]-BrickSize;
                    rLow[r]=rClose[r];
//------------------------------------------------------------------- 
                    BrickSize=Volatility[i];
                    if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}                
                    if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
                    if(iGapUp[i]==1|iGapDown[i]==1)
                      {
                       color[r]=CG;                                        
                      }
                      else
                      {
                       color[r]=RenkoDown;                                         
                      }
                    }
                }
             }
          }
       }                                                             
//------------------------------------------------------------------+
// Block 7                                                          |
//------------------------------------------------------------------+
     if(VR==1)                                                       
       {
        jOpen[j]=Open[i];
        jHigh[j]=High[i];
        jLow[j]=Low[i];
        jClose[j]=Close[i];
//-------------------------------------------------------------------
        if(direction==1)
          {
           jUp[j]=rClose[r];
           jDown[j]=rOpen[r];
           color2[j]=color[r];
          }
          else
          {
           if(direction==2)
             {
              jUp[j]=rOpen[r];
              jDown[j]=rClose[r];
              color2[j]=color[r];
             }
          }
        j++;
       }                                                                    
     i++;                                                                                         
    }                                                                
//------------------------------------------------------------------+
// Block 8                                                          |
//------------------------------------------------------------------+
  if(VR==1)                                                          
    {
     delta=BarCount-j;
     jOpen=Ref(jOpen,-delta);                                        
     jHigh=Ref(jHigh,-delta);                                        
     jLow=Ref(jLow,-delta);
     jClose=Ref(jClose,-delta);
     jUp=Ref(jUp,-delta);
     jDown=Ref(jDown,-delta);
     color2=Ref(color2,-delta);
     SetChartOptions(0,chartShowArrows|chartShowDates);
     _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
     PlotOHLC(jOpen,jHigh,jLow,jClose,"SRI",color3,SB);                       
     Plot(jUp,"Up",color2,styleThick);                                                 
     Plot(jDown,"Down",color2,styleThick); 
    }
//-------------------------------------------------------------------
    else                                                            
    {  
     delta=BarCount-1-r;                                              
     rOpen=Ref(rOpen,-delta);                                        
     rHigh=Ref(rHigh,-delta);                                        
     rLow=Ref(rLow,-delta);
     rClose=Ref(rClose,-delta);
     color=Ref(color,-delta);
     PlotOHLC(rOpen,rHigh,rLow,rClose,"SRI",color,styleCandle);      
    }


			   
_SECTION_END();

_SECTION_BEGIN("MA");
P = ParamField("Price field",-1);
Periods = Param("Periods", 4, 2, 300, 1, 10 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
_SECTION_END();
I work on these afl if arrow add so its possible to backteast last two or more year..

if any one can add arrow please please add...

Here i add one jpg for afl...

Thanks
Pls learn using # to wrap code. Its difficult to read the posts.
 

VJAY

Well-Known Member
Dear Happy bhai,
Can you please tell me ma value used in following code?

HiVolume = IIf(V > (2 * MA(V,10)
 
Dear Happy bhai,
Can you please tell me ma value used in following code?

HiVolume = IIf(V > (2 * MA(V,10)
10 period. If volume is greater than twice the value of 10 MA of V.
Right :thumb:

It indicates small spurt in volume based on short term averages good to used with index futures

For critical turns or with stock futures/scrips can use higher period and bigger change for e.g.

Code:
HiVolume = IIf(V >= (3 * MA(V,200);

Happy :)
 
Pls learn using # to wrap code. Its difficult to read the posts.

means what i dont know....

Its it possible to add buy sell arrow in following afl

if red candle sell arrow and if green candle buy arrow

cod is below...


_SECTION_BEGIN("kishor");
SetBarsRequired(100000,100000);
//------------------------------------------------------------------+
// Block 1 |
//------------------------------------------------------------------+
VR=ParamToggle("View Renko","Bricks|Lines/Bars",0);
FV=Param("Initial size volatility",20,20,20,20);
MV=Param("Method calculation volatility",0,0,2,1);
PeriodVol=Param("Period calculation volatility",14,2,100,1);
Multiplier=Param("Multiplier volatility",1,0.1,10,0.1);
MR=ParamToggle("Method Renko","floating|fixed",1);
SG=ParamToggle("Show gap","No|Yes",1);
CG=ParamColor("Colour show gap",11);
MaxBS=Param("Maximum size brick",0,0,10,0.1);
MinBS=Param("Minimum size brick",0,0,10,0.1);
RenkoUp=ParamColor("Colour Renko upwards",colorGreen);
RenkoDown=ParamColor("Colour Renko downwards",colorRed);
SB=ParamStyle("View bars",defaultval=styleCandle,mask=maskPrice);
color3=ParamColor("Colour bars",colorBlack);
History=Param("History size",500000,1,BarCount);

//------------------------------------------------------------------+
// Block 2 |
//------------------------------------------------------------------+
i=Max(BarCount-1-History,PeriodVol+1);
r=j=0;
direction=0;
iGapUp=iGapDown=0;
rOpen[0]=rHigh[0]=rLow[0]=rClose[0]=jUp=jDown=Open;
//-------------------------------------------------------------------
switch(MV)
{
case 0: Volatility=FV; break;
case 1: Volatility=ATR(PeriodVol)*Multiplier; break;
case 2: Volatility=StDev(Open,PeriodVol)*Multiplier; break;
}
BrickSize=Volatility[i-1];
//-------------------------------------------------------------------+
// Block 3 |
//-------------------------------------------------------------------+
while(i<=BarCount-1)
{
if(SG==1)
{
if(High[i-1]<Low)
{
iGapUp=1;
}
else
{
if(Low[i-1]>High)
{
iGapDown=1;
}
}
}
//-------------------------------------------------------------------
if(MR==0)
{
BrickSize=Volatility[i-1];
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
}
//------------------------------------------------------------------+
// Block 4 |
//------------------------------------------------------------------+
if(direction==0)
{
if(Open-rClose[r]>BrickSize)
{
rClose[r]=rOpen[r]+BrickSize;
rHigh[r]=rClose[r];
direction=1;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoUp;
}
continue;
}
//-------------------------------------------------------------------
else
{
if(rClose[r]-Open>BrickSize)
{
rClose[r]=rOpen[r]-BrickSize;
rLow[r]=rClose[r];
direction=2;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoDown;
}
continue;
}
}
}
//------------------------------------------------------------------+
// Block 5 |
//------------------------------------------------------------------+
else
{
if(direction==1)
{
if(rOpen[r]-Open>BrickSize)
{
r++;
rOpen[r]=rOpen[r-1];
rHigh[r]=rOpen[r];
rClose[r]=rOpen[r]-BrickSize;
rLow[r]=rClose[r];
direction=2;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoDown;
}
continue;
}
//-------------------------------------------------------------------
else
{
while(Open-rClose[r]>BrickSize)
{
r++;
rOpen[r]=rClose[r-1];
rLow[r]=rOpen[r];
rClose[r]=rOpen[r]+BrickSize;
rHigh[r]=rClose[r];
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoUp;
}
}
}
}
//------------------------------------------------------------------+
// Block 6 |
//------------------------------------------------------------------+
else
{
if(direction==2)
{
if(Open-rOpen[r]>BrickSize)
{
r++;
rOpen[r]=rOpen[r-1];
rLow[r]=rOpen[r];
rClose[r]=rOpen[r]+BrickSize;
rHigh[r]=rClose[r];
direction=1;
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoUp;
}
continue;
}
//-------------------------------------------------------------------
else
{
while(rClose[r]-Open>BrickSize)
{
r++;
rOpen[r]=rClose[r-1];
rHigh[r]=rOpen[r];
rClose[r]=rOpen[r]-BrickSize;
rLow[r]=rClose[r];
//-------------------------------------------------------------------
BrickSize=Volatility;
if(MaxBS>0) {BrickSize=Min(MaxBS,BrickSize);}
if(MinBS>0) {BrickSize=Max(MinBS,BrickSize);}
//-------------------------------------------------------------------
if(iGapUp==1|iGapDown==1)
{
color[r]=CG;
}
else
{
color[r]=RenkoDown;
}
}
}
}
}
}
//------------------------------------------------------------------+
// Block 7 |
//------------------------------------------------------------------+
if(VR==1)
{
jOpen[j]=Open;
jHigh[j]=High;
jLow[j]=Low;
jClose[j]=Close;
//-------------------------------------------------------------------
if(direction==1)
{
jUp[j]=rClose[r];
jDown[j]=rOpen[r];
color2[j]=color[r];
}
else
{
if(direction==2)
{
jUp[j]=rOpen[r];
jDown[j]=rClose[r];
color2[j]=color[r];
}
}
j++;
}
i++;
}
//------------------------------------------------------------------+
// Block 8 |
//------------------------------------------------------------------+
if(VR==1)
{
delta=BarCount-j;
jOpen=Ref(jOpen,-delta);
jHigh=Ref(jHigh,-delta);
jLow=Ref(jLow,-delta);
jClose=Ref(jClose,-delta);
jUp=Ref(jUp,-delta);
jDown=Ref(jDown,-delta);
color2=Ref(color2,-delta);
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
PlotOHLC(jOpen,jHigh,jLow,jClose,"SRI",color3,SB);
Plot(jUp,"Up",color2,styleThick);
Plot(jDown,"Down",color2,styleThick);
}
//-------------------------------------------------------------------
else
{
delta=BarCount-1-r;
rOpen=Ref(rOpen,-delta);
rHigh=Ref(rHigh,-delta);
rLow=Ref(rLow,-delta);
rClose=Ref(rClose,-delta);
color=Ref(color,-delta);
PlotOHLC(rOpen,rHigh,rLow,rClose,"SRI",color,styleCandle);
}



_SECTION_END();:confused::confused::confused:
 

Similar threads