+91-0000000000

}

Monday – Friday : 9:00 AM – 6:30 PM

Modified Darvas Technique

The Modified Darvas Technique AFL in Amibroker is a toolset focusing on identifying breakout areas and potential trends based on the Darvas method. Utilizing amibroker data feed  capabilities enables traders to analyze price movements and detect breakout patterns. This AFL aids traders in understanding market dynamics and making informed decisions based on breakout strategies.

/
Periods = 100;
function DarvasHigh( Periods )
{
 HHVtemp = HHV( High, Periods );
 result = HHVTemp;
 for( i = Periods + 4; i < BarCount; i++ )
 {
   result[ i ] = IIf( H[ i - 3 ] >= HHVTemp[ i - 4 ] AND
                     H[ i - 3 ] > H[ i - 2 ] AND
                     H[ i - 3 ] > H[ i - 1 ] AND
                     H[ i - 3 ] > H[ i ],
                     H[ i - 3 ],
                     result[ i - 1 ] );
 }
 return result;
}
function NewDarvasHigh( Periods )
{
  dh = DarvasHigh( Periods );
  return dh AND Nz( dh ) != Ref( Nz( dh ), -1 );
}
function NewDarvasLow( Periods )
{
  dh = DarvasHigh( Periods );
  ndl = Ref( L, -3 ) < Ref( L, -2 ) AND
        Ref( L, -3 ) < Ref( L, -1 ) AND
        Ref( L, -3 ) < L AND
        Ref( H, -2 ) < dh AND
        Ref( H, -1 ) < dh AND
        H < dh;
  return Nz( ndl ) AND Ref( Nz( ndl ), -1 ) < 1;
}
function DarvasLow( Periods )
{
  return ValueWhen( NewDarvasLow( Periods ), Ref( L, -3 ) );
}
function DarvasBoxEnd( Periods )
{
 end = BarsSince( NewDarvasHigh( Periods ) ) <
       BarsSince( Ref( NewDarvasLow( Periods ), -1 ) );
 return Nz( end ) AND NewDarvasLow( Periods );
}
function DarvasBoxHigh( Periods )
{
 dbe = DarvasBoxEnd( Periods );
 dbhi = ValueWhen( Nz( dbe ) AND NOT IsNull( Ref( dbe, -1 )),
       DarvasHigh(       Periods ) );
 return IIf( Nz( dbhi ) == 0, H + 1e-6, dbhi );
}
function DarvasBoxLow( Periods )
{
 dbe = DarvasBoxEnd( Periods );
 dblo = ValueWhen( Nz( dbe ) AND NOT IsNull( Ref( dbe, -1 )),
        DarvasLow( Periods ) );
 return IIf( Nz( dblo ) == 0, L - 1e-6, dblo );
}
function DarvasPossSell( Periods )
{
 dsl = Low < DarvasBoxLow( Periods );
 return Nz( dsl ) AND Ref( Nz( dsl ), -1 ) < Nz( dsl );
}
Plot( C, "Price", colorBlack, styleCandle );
Plot( DarvasLow( 100 ), "DL", colorRed );
Plot( DarvasHigh( 100 ), "DH", colorGreen );

Open chat
1
Hi, how can I help you?