Stock Portfolio Organizer
The ultimate porfolio management solution.
Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Modified Renko Chart for Amibroker (AFL)
Rating:
3 / 5 (Votes 5)
Tags:
amibroker, chart
newest afl wriiiten by G. Kavanagh
Screenshots
Indicator / Formula
Copy & Paste Friendly
// Modified Renko Chart with custom date axis // and high/low winks // Loosely based on Renko chart formula by G. Kavanagh // from AmBroker on-line formula library (id=521) // Modifications & fixes TJ 2014 function FillRun( dir, num, changedir ) { global i, j, modified, dt, RKC, RKO, RKD, RKH, RKL; for( x = 1; x <= num AND j < BarCount - 1; x++ ) { j++; extra = ( changedir AND x == 1 ) * dir; RKC[ j ] = RKC[ j - 1 ] + dir + extra; RKO[ j ] = RKC[ j - 1 ] + IIf( modified, 0, extra ); RKD[ j ] = dt[ i ]; RKH[ j ] = High[ i - 1 ]; RKL[ j ] = Low[ i - 1 ]; } } SetBarsRequired( sbrAll, sbrAll ); Brick = Param( "Brick Size", 0.001, 0.0001, 1.00, 0.001 ); reverse = 2; intra = ParamToggle( "Intraday", "No|Yes", 0 ); modified = ParamToggle( "Modified", "No|Yes", 0 ); // Convert the closing price to rising and falling rounded bricks CF = ceil( C / Brick ); CR = floor( C / Brick ); // initialize first element j = 0; RKC[j] = CF[0]; RKO[j] = CF[0] + 1; RKD = 0; RKH = 0; RKL = 0; dt = IIf( intra, floor( TimeNum() / 100 ), DateNum() ); dir = -1; // 1 is up, -1 is down // Loop to produce the Renko values in number of bricks for( i = 1; i < BarCount - 1; i++ ) { if( j >= BarCount ) break; // no more room -> finish if( CF[i] <= RKC[j] - 1 AND dir < 0 ) // Continue down { num = RKC[j] - CF[i]; FillRun( dir, num, False ); } else if( CR[i] >= RKC[j] + Reverse AND dir < 0 ) // Change down to up { num = CR[i] - RKC[j]; dir = 1; FillRun( dir, num, True ); } else if( CR[i] >= RKC[j] + 1 AND dir > 0 ) // Continue Up { num = CR[i] - RKC[j]; FillRun( dir, num, False ); } else if( CF[i] <= RKC[j] - Reverse AND dir > 0 ) // Change up to down { num = RKC[j] - CF[i]; dir = -1; FillRun( dir, num, True ); } } // move the chart to right end of chart space, ie last brick on last bar position delta = BarCount - 1 - j; RKC = Ref( RKC, -delta ); RKO = Ref( RKO, -delta ); RKD = Ref( RKD, -delta ); RKH = Ref( RKH, -delta ); RKL = Ref( RKL, -delta ); C = RKC * Brick; O = RKO * Brick; H = IIf( modified, RKH, Max( C, O ) ); L = IIf( modified, RKL, Min( C, O ) ); Plot( C, "", IIf( C > O, colorGreen, colorRed ), styleCandle ); m1 = MA( ( C + H + L ) / 3, 8 ); m2 = MA( C, 8 ); Plot( m1, "SMA Typ", colorBlue ); Plot( m2, "SMA Renko", colorOrange ); Cover = Cross( m2, m1 ); Sell = Cross( m1, m2 ); Short = Sell AND C < O; Buy = Cover AND C > O; PlotShapes( shapeUpArrow * Buy, colorGreen, 0, m1 ); PlotShapes( shapeDownArrow * Sell, colorRed, 0, m1 ); PlotShapes( shapeHollowUpArrow * Cover, colorGreen, 0, m1, -25 ); PlotShapes( shapeHollowDownArrow * Short, colorRed, 0, m1, -25 ); color = IIf( Flip( Buy, Sell ), ColorRGB( 220, 255, 220 ),IIf( Flip( Short, Cover ), ColorRGB( 255, 220, 220 ), colorWhite ) ); Plot( 1, "", color, styleArea | styleOwnScale, 0, 1, 0, -1 ); xnum = floor( RKD / 1000 ); XChange = IIf( xnum != Ref( xnum, -1 ), 1, Null ); Plot( XChange, "", colorGrey50, styleHistogram | styleOwnScale, 0, 1 ); // Draw renko-date axis MonthNames = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"; fvb = FirstVisibleValue( BarIndex() ); lvb = LastVisibleValue( BarIndex() ); for( i = fvb; i < lvb; i++ ) { if( XChange[ i ] ) { if( intra ) datetext = StrFormat( "%02gh", floor( RKD[ i ] / 100 ) ); else if( ( xnum[ i ] % 100 ) == 1 ) datetext = StrFormat( "%04.0f", 1900 + ( xnum[ i ] / 100 ) ); else datetext = StrExtract( MonthNames, ( xnum[ i ] % 100 ) - 1 ); PlotText( datetext , i, LowestVisibleValue( Low ), colorGrey50, colorWhite, -20 ); } } Title = Name() + StrFormat( " - 20%06.0f", RKD % 1000000 ) + " - Renko Chart : Last Value = " + RKC * Brick + " H: " + RKH + " L: " + RKL + ", Brick Size = " + Brick; GraphXSpace = 5;
18 comments
Leave Comment
Please login here to leave a comment.
Back
this is good afl change brick size to 1,
Sir,
Giving Error on Line No,113
Col:79 , Error 16. Too Many Arguments
error on line 113
Which timeframe does it work better ? Please explain and does it work under Auto Trading platform also ?
It is not working error on line 113, kindly help
It is working change Parameters: Brick size = 1
Thanks
I am unable to understand the values shown it is not matching with closing price, Kindly let me know how trade using this afl?
It shows error…….
when seeing buy call price not matching..means price is down and when seeing sell call..price is up…why.I hve test it crude oil..
Is there any update on this formula ? still not working
error still persists
Find and replace “reverse” to reverseval
reverse is a function. Here it is used as a variable.
Refernce Lines : 22, 48, 61 in the above afl
Hi,
how can I add wicks ?
I know other programing but dont have much fluency in AB codes. can smbdy point/guide ?
I also want to change this afl to Median Renko which can be easier, will try to find myself but suggestions are welcome !
R
How do we change the brick size in the afl ???
Full of error way pablick this for people!!! Som one have orginal no errors pleas informed.
Full of error way pablick this for people!!! Som one have orginal no errors pleas informed.