Join our facebook group for Amibroker afl code discussion https://www.facebook.com/groups/603980776889348

Candle Stick Target Dotted Pattern


Candle Stick Target Dotted Pattern
Candle Stick Target Dotted Pattern


//www.aflcode.com
_SECTION_BEGIN("A CandlestickTargeting Pattern");

function msPattPos( element ) 
{ 
Value1 = Ref( H, -1 ); 
Value2 = Ref( L, -1 ); 
Value3 = ( Value1 + Value2 )/2; 
Dist = Ref( ATR( 10 ), -1 ); 
Value4 = Value1 + Dist; 
Value5 = Value2 - Dist; 

result = IIf( element < Value5, 0, 
IIf( element < Value2, 1, 
IIf( element < Value3, 2, 
IIf( element < Value1, 3, 
IIf( element < Value4, 4, 
5 ) ) ) ) ); 

return result; 
} 

function msPattToText( patt ) 
{ 
result = WriteIf( patt == 0, " is below previous (Low - ATR 10) ", 
WriteIf( patt == 1, " is above (at) previous (Low - ATR 10) and below previous Low ", 
WriteIf( patt == 2, " is above (at) previous Low and below previous Midpoint ", 
WriteIf( patt == 3, " is above (at) previous Midpoint and below previous High ", 
WriteIf( patt == 4, " is above (at) previous High and below (High + ATR 10) ", 
" is above (at) previous (High + ATR(10) " ) ) ) ) ); 

return result; 
} 

function msRecognize() 
{ 
return 1000 * msPattPos( Open ) + 100 * msPattPos( High ) + 10 * msPattPos( Low ) + msPattPos( Close ); 
} 

function msPatternDescription( patt ) 
{ 
return "Open: " + msPattToText( round( ( patt / 1000 ) % 10 ) ) + "\n" + 
"High: " + msPattToText( round( ( patt / 100 ) % 10 ) ) + "\n" + 
"Low: " + msPattToText( round( ( patt / 10 ) % 10 ) ) + "\n" + 
"Close: " + msPattToText( round( patt % 10 ) ); 
} 

patts = msRecognize(); 

// by default use pattern occuring at selected bar 
DesiredPattern = SelectedValue( patts ); 

// if you want manual-entry of pattern code from parameter dialog 
// then uncomment the line below 
//DesiredPattern=Param("Pattern to look for", 3434, 0, 5555, 0 ); 

Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g", O, H, L, C); 
Title = Title + "\nPattern code is : " + DesiredPattern + "\n" +
msPatternDescription( DesiredPattern ); 

Plot( C, "Price", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 



PattCloseAbove = DesiredPattern == patts AND Ref( Close > Open, 1 ); 
PattCloseBelow = DesiredPattern == patts AND Ref( Close < Open, 1 ); 

PlotShapes( ( DesiredPattern == patts ) * shapeCircle , 
IIf( PattCloseAbove, colorGreen, 
IIf( PattCloseBelow, colorRed, colorBlue ) ), 
0, High, 30 ); 

NumPatterns = LastValue( Cum( DesiredPattern == patts ) ); 

NumPattCloseAbove = LastValue( Cum( PattCloseAbove ) ); 
NumPattCloseBelow = LastValue( Cum( PattCloseBelow ) ); 
NumPattCloseEqual = NumPatterns - NumPattCloseAbove - NumPattCloseBelow; 

Title = Title + 
"\n\nTotal number of Patterns: " + NumPatterns + 
"\n% on Total Bars: " + 100 * NumPatterns/BarCount + 
"\nIn the next bar\n" + 
EncodeColor(colorGreen) + 
"Close has been above the open " + NumPattCloseAbove + 
" (" + NumPattCloseAbove / NumPatterns + "%) times\n" + 
EncodeColor(colorRed) + 
"Close has been below the open " + NumPattCloseBelow + " (" + 
NumPattCloseBelow / NumPatterns +" %) times\n" + 
EncodeColor(colorBlue) + 
"Close has been equal to the open " + NumPattCloseEqual + " (" + 
NumPattCloseEqual / NumPatterns +" %)times"; 

_SECTION_END();

Previous
Next Post »