I have developed a formula that gives me Cross TrendLineDown with Volume How to have the slope of the Trendlines?
Thank’s
Formulas:
_SECTION_BEGIN("Cross Trendline Down + Vol.Divers");
/* dessine TrendLineDown si Vol. OK
- Cherche un P2>= P1 */
#include <Brake.afl>
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 ) ) ));
Long= Param("Sensitivity", 70,10,500,10 );
Plot( C,"Close", IIf( Brake(Long), ParamColor("Up Color", colorBlack ),
ParamColor("Down Color", colorCustom12 ) ),ParamStyle( "Style",GetPriceStyle() ) );
V15= Ref(MA(V,15),-1); V20= Ref(MA(V,20),-1) ; V50= Ref(MA(V,50),-1) ;
VolM= (Min(Min(V15,V20),V50)) ;
VolOK= IIf(C<1.9999,
V>300000 AND V>(5VolM) OR V>500000 AND V>(1.5VolM) ,
IIf(C>2 AND C<4.99,
V>200000 AND V>(5VolM) OR V>300000 AND V>(1.5VolM) ,
IIf(C>5 AND C<19.99,
V>150000 AND V>(5VolM) OR V>500000 AND V>(1.25VolM) ,
IIf(C>20,
V>100000 AND V>(3VolM) OR V>500000 AND V>(1.5VolM) ,0 )))) ;
//Plot(VolOK,"VolOK",colorTeal|styleOwnScale) ;
function ValPk(Size,P1)
{
Prix=LastValue(Peak(C,Size,P1));
return Prix ;
}
function NextPeak(S,P) // Trouve le prochain peak +>=
{
p= ValPk(S,P) ;
P2= IIf( P< ValPk(S,2),2, IIf( P< ValPk(S,3),3,
IIf( P< ValPk(S,4),4, IIf( P< ValPk(S,5),5,
IIf( P< ValPk(S,6),6, IIf( P< ValPk(S,7),3,
IIf( P< ValPk(S,8),8, IIf( P< ValPk(S,9),9,
IIf( P< ValPk(S,10),10, IIf( P< ValPk(S,11),11,
IIf( P< ValPk(S,12),12, IIf( P< ValPk(S,13),13,
IIf( P< ValPk(S,14),14, IIf( P< ValPk(S,15),5,
IIf( P< ValPk(S,16),16, IIf( P< ValPk(S,17),3,
IIf( P< ValPk(S,18),18, IIf( P< ValPk(S,19),9,
IIf( P< ValPk(S,20),20, 0 ))))))))))))))))))) ;
return P2 ;
}
function CrTrDn(Size,P1,P2)
{ /* dessine TrendLineDown si VOL. */
y0=LastValue(Peak(C,Size,P2));
y1=LastValue(Peak(C,Size,P1));
x0=BarCount - 1 - LastValue(PeakBars(C,Size,P2));
x1=BarCount - 1 - LastValue(PeakBars(C,Size,P1));
Line = LineArray( x0, y0, x1, y1, 1 );
CrTrend= IIf(VolOK AND Cross(C,Line),
Plot( Line, "\nTrend line", colorBlue,styleNoRescale,4+8 ), 0);
return CrTrend ; // OR Size ??????????
}
function TrDn(S,P) {OK= CrTrDn(S,P,NextPeak(S,P)) ; return OK ; }
Buy= IIf(C<4.9999,(TrDn(25,1) OR TrDn(25,2) OR TrDn(20,1) OR TrDn(20,2) OR
TrDn(15,1) OR TrDn(15,2) OR TrDn(10,1) OR TrDn(10,2) OR
TrDn(8,1) OR TrDn(8,2) OR TrDn(7,1) OR TrDn(7,2) OR
TrDn(6,1) OR TrDn(6,2) OR TrDn(5,1) OR TrDn(5,2)),
IIf(C>5 AND C<19.9999,(TrDn(25,1) OR TrDn(25,2) OR TrDn(20,1) OR TrDn(20,2) OR
TrDn(15,1) OR TrDn(15,2) OR TrDn(10,1) OR TrDn(10,2) OR
TrDn(5,1) OR TrDn(5,2) OR TrDn(4,1) OR TrDn(4,2) OR
TrDn(3,1) OR TrDn(3,2) ), 0));
Plot(Buy,"CrTrDn+Vol",colorBlue,styleOwnScale) ;
_SECTION_END();