Графики Renko

Опубликовано в AmiBroker

Графики Ренко (Renko Charts) являются одним из типов графиков, созданных японскими трейдерами. Главное отличие графиков Renko от графиков баров, линий или японских свечей состоит в том, что Ренко не учитывает ни время, ни объем торгов. Считается, что название графика происходит от японского слова кирпич «renga».

Впервые этот вид графиков упоминается в книге «За пределами японских свечей» (англ. Beyond Candlesticks) Стива Нисона. 

Построение графиков Ренко (Renko Charts)

Строятся графики Ренко следующим образом: цена закрытия текущего периода сравнивается с уровнями минимума и максимума предыдущего «кирпича» (белого или черного). Если цена закрытия текущего периода вырастает выше максимума предыдущего «кирпича» по крайней мере на размер «кирпича», то на графике в новых колонках рисуется один или более белый «кирпич». 
Если цена закрытия текущего падает ниже минимума предыдущего «кирпича», не менее чем на размер «кирпича», на графике рисуется один или более черный «кирпич». 
Если цена закрытия продвигается ниже минимума или максимума предыдущего «кирпича» на более чем один «кирпич», но этого недостаточно чтобы сформировать два «кирпича», рисуется только один «кирпич».

Таким образом, на графике появляется новый «кирпич», если цена проходит максимум или минимум предыдущего «кирпича» на определенную величину (размер «кирпича»). Соответственно, частота появления новых кирпичей зависит только от движения цены актива и не зависит от времени. Все кирпичи на графике одинаковые по размеру, который определяется трейдером в собственной программе технического анализа и должен быть более или равен минимальному изменению цены актива. Например, если вы строите график Ренко с кирпичом в 20 пунктов, то восходящее движение в 100 пунктов будет выглядеть в виде 5 белых кирпичей.

Графики Renko

 

Обычно для тренда вверх используются белые кирпичи, а для тренда вниз закрашенные кирпичи, но в каждой программе технического анализа могут использоваться свои цвета.

Использование графиков Ренко (Renko Charts) Считается, что график Ренко является очень эффективным инструментом для определения ключевых уровней поддержки и сопротивления, поскольку фильтрует основную тенденцию актива, не учитывая незначительнее колебания цены. Основные сигналы к входу в рынок появляются, когда меняется направление тренда и соответственно цвет «кирпича» становится другим.

Например, приказ на продажу поступает, когда серия белых ей заканчивается, и возникает первый черный кирпич. Приказ на покупку возникает, когда серия черных кирпичей заканчивается, и появляется белый кирпич.

Примечания:
Поскольку Renko Charts был создан для определения основного тренда актива, график сам по себе дает много ложных сигналов, особенно на боковых движениях и на коротких трендах, однако он почти всегда позволяет поймать основную часть большого тренда.

Графики Renko всегда строятся исходя из цен закрытия периода, по которому они считаются, поэтому при их создании из графиков другого вида с разными периодами, результат может оказаться разным. Чем больше масштаб, на основе которого строится график Ренко, тем больше вероятность, что будет проявляться его основной недостаток – изменение своих показаний в реальном времени, поэтому наиболее правильно строить графики Ренко исходя из тиковых или минутных данных.

 


На графике Ренко можно применять те же виды графического и индикаторного анализа, которыми прогнозируют графика баров и японских свечей, однако стоит учесть ряд моментов: 

  • На графике Ренко минимум и максимум белого «кирпича» всегда совпадают с ценами открытия и закрытия соответственно, а минимум и максимум черного кирпича, наоборот с ценами закрытия и открытия данного «кирпича». Поэтому индикаторы, использующие в расчетах сравнение цен открытия, закрытия, минимумов и максимумов внутри одного «кирпича» могут работать некорректно.
  • Поскольку на графике Ренко нет объёма, очевидна бесполезность попыток построить на основании Renko любой индикатор, использующий объёмы. 


 
Формула Амиброкера для построения графиков Renko 

 

// Modified Renko Chart with custom date axis 
// and high/low winks 
// Loosely based on Renko chart formula by G. Kavanagh 
// from AmiBroker 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 ); 
xnum = floor( RKD / 100 ); 
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;

 

 

Комментарии   

# сергей беспалов 07.09.2013 14:38
сколько стоит возможность прописать график Ренко для квика?
# admin 07.09.2013 15:01
Сергей, я ответил Вам почтой.
# Олег Серебренников 25.11.2013 00:14
Как приобрести график Ренко для квика?
# admin 25.11.2013 00:22
Олег, в терминале QUIK построить график Ренко невозможно. Причина проста - не позволяют технические средства.

Осваивайте программы технического анализа :lol:
# madsmart33 03.12.2013 21:08
Добрый вечер!Однако ошибка присутствует!!П омогите убрать ее! rOpen[r(ругаетс я здесь)]=rClose[ r-1];
# admin 03.12.2013 23:12
Madsmart

1. При малых величинах кирпича в результате можно получить на графике Renkо свечей больше, чем на графике самого исходного инструмента. При попытке создать и отобразить такой график амиброкер выдает ошибку. Это закономерно. Просто увеличьте параметр BrickSize (возможно придется изменить границы параметра в самой afl) и все станет нормально

2. Я заменил старую формулу Renko из этой статьи на другую - новая написана правильнее и короче.
# madsmart33 04.12.2013 01:22
Спасибо за ответ!Но не подскажете на какие примерно))) параметры BrickSize изменить(RIZ3)С пасибо!!!
# admin 04.12.2013 11:00
Замените строчку, где определяется BrickSize на что-то типа

Brick = Param( "Brick Size", 100, 10, 1000, 10 );

И перегрузите скрипт
# madsmart33 04.12.2013 23:25
Спасибо за подсказку!Но все получилось после того как я добавил "//" перед (chart due to insufficient x-axis bars )
т.е. //chart due to insufficient x-axis bars
Еще один вопрос:как уменьшить количество "кирпичей" в диаграмме? Спасибо!
# Igor R. 12.12.2017 11:00
Здравствуйте! Можно написать формулу для оптимизации в амиброкере на основе ренко, точка входа например определённый по счету ренко, после разворота? Спасибо!
# admin 12.12.2017 11:33
Почему нет? Можно...
# Igor R. 12.12.2017 12:51
Сколько это будет стоить?
# admin 12.12.2017 12:59
Это нужно обсуждать голосом. Звоните, скайп mikemsk

Недостаточно прав для комментирования