Индикаторы: BW-Zone

 

BW-Zone:

Индикатор-визуализатор (тьфу-ты словосочетание то какое непотребное придумал!). Раскрашивает бары графика в соответствии с логикой определения состояния четвертого измерения теории Хаоса Б. Вильямса - Зоны.

Author: Pluto.ru

 

Если взять старый добрый макди и осма получится гораздо лучше )))

 
rotty:

Если взять старый добрый макди и осма получится гораздо лучше )))


Не спорю, может и лучше, только Вильямс почему то в своей теории использует Awesome Oscillator и Acceleration/Deceleration. 

А данный индикатор отражает состояние четвертого измерения хаоса - зоны, которая строится именно по АО и АС.

А если взять "старый добрый макди и осма" - то это уже будут не зоны Вильямса а что-то другое. И если у вас есть теоретическая основа под это что-то другое - в студию! А за индикатором дело не станет. :-)

 

"Индикатор-визуализатор (тьфу-ты словосочетание то какое непотребное придумал!)."

1.Молодец. 2. индикатор - визулизатор - нормальный, чё ты, нармальна звучит- "Визулизатор!" -все прваильна

и про Вильямса тоже

 

Был уже такой

http://codebase.mql4.com/ru/4785

 
Duke3D:

Был уже такой

http://codebase.mql4.com/ru/4785

Смею утверждать, что тот индикатор, на который вы дали ссылку - неправильный.

Посмотрите на рисунок. стрелочками указаны несоответствия:

1. На АО и АС бары красные - индикатор красит бар на графике в серый цвет.

2. На АО и АС бары разного цвета - бар на индикаторе зеленый.

В общем этот индикатор показывает что угодно, но не зоны Вильямса. Пусть это останется на совести автора, но я решил написать свой. В любом случае я никого не принуждаю пользоваться моим индикатором. Дело ваше.

 

чем больше (разных подходов, решений и интерпретаций) - тем лучше

по ссылке 'ZoneTrade' там закачана 2.3 а последняя версия 2.4 - в постах

еще вопрос: должна ли учитываться цена (НН LL), бык или медведь, счет баров или дополнительные условия?

 
fxxx:

еще вопрос: должна ли учитываться цена (НН LL), бык или медведь, счет баров или дополнительные условия?

В описании есть ссылка, по которой можно почитать про теорию хаоса, а если вкратце, то сигналы из 2-го, 3-го, 4-го и 5-го измерений должны учитываться только после сработавшего сигнала по первому измерению - фракталу. Вообще реализовать рабочую МТС по теории хаоса - задача нетривиальная, поэтому сейчас я ее испытываю на тестовом счете вручную, поэтому и пишу всякме "визуализаторы" и алерты - чтобы облегчить интерпретацию сигналов. Хотя где-то в сети я видел попытки использовать для торговли сигналы только какого-либо одного измерения, с наложением определенных фильтров, не относящихся к теории хаоса.

 

Ребята, в этом направлении Вы точно запутаетесь. Хаос есть хаос. Рынок подчиняется определенным законам. Это всё равно что искать центр гравитации в куче мусора.

 
kpll:

Ребята, в этом направлении Вы точно запутаетесь. Хаос есть хаос. Рынок подчиняется определенным законам. Это всё равно что искать центр гравитации в куче мусора.

Вы это не нам говорите, а Б.Вильямсу, который эту теорию описал, и успешно по ней торговал, и он и ученики его, и сейчас она торгует неплохо.

 

#property indicator_chart_window
#property indicator_buffers 8
//----
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 MediumSeaGreen
#property indicator_color4 Pink
#property indicator_color5 Lime
#property indicator_color6 Red
#property indicator_color7 MediumSeaGreen
#property indicator_color8 Pink
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width4 1
#property indicator_width5 3
#property indicator_width6 3
#property indicator_width7 3
#property indicator_width8 3
//---- stoch settings

extern int fast_ema_period=12;
extern int slow_ema_period=26;
extern int signal_period=9;

//---- input parameters
extern int BarWidth =1,
CandleWidth =3;
extern bool HeikenAshi =true,
HeikenAshiMA =false;
extern int HAMA_Method =1,
HAMA_Period =3;
//---- buffers
double Bar1[],
Bar2[],
Bar3[],
Bar4[],
Candle1[],
Candle2[],
Candle3[],
Candle4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators

IndicatorBuffers(8);
SetIndexBuffer(0,Bar1);
SetIndexBuffer(1,Bar2);
SetIndexBuffer(2,Bar3);
SetIndexBuffer(3,Bar4);
SetIndexBuffer(4,Candle1);
SetIndexBuffer(5,Candle2);
SetIndexBuffer(6,Candle3);
SetIndexBuffer(7,Candle4);
SetIndexStyle(0,DRAW_HISTOGRAM,0,BarWidth);
SetIndexStyle(1,DRAW_HISTOGRAM,0,BarWidth);
SetIndexStyle(2,DRAW_HISTOGRAM,0,BarWidth);
SetIndexStyle(3,DRAW_HISTOGRAM,0,BarWidth);
SetIndexStyle(4,DRAW_HISTOGRAM,0,CandleWidth);
SetIndexStyle(5,DRAW_HISTOGRAM,0,CandleWidth);
SetIndexStyle(6,DRAW_HISTOGRAM,0,CandleWidth);
SetIndexStyle(7,DRAW_HISTOGRAM,0,CandleWidth);
return(0);
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
void SetCandleColor(int col, int i)
{
double high =High[i],
low =Low[i],
open =Open[i],
close =Close[i],
bodyHigh=MathMax(open,close),
bodyLow =MathMin(open,close);
if(HeikenAshi || HeikenAshiMA)
{
double lastBodyHigh= MathMax(Candle1[i+1],MathMax(Candle2[i+1],MathMax(Candle3[i+1],Candle4[i+1]))),
lastBodyLow =MathMin(Candle1[i+1],MathMin(Candle2[i+1],MathMin(Candle3[i+1],Candle4[i+1])));
if(HeikenAshiMA)
{
/*high =iMA(NULL,0,HAMA_Period,0,HAMA_Method,MODE_HIGH,i);
low =iMA(NULL,0,HAMA_Period,0,HAMA_Method,MODE_LOW,i);
open =iMA(NULL,0,HAMA_Period,0,HAMA_Method,MODE_OPEN,i);
close =iMA(NULL,0,HAMA_Period,0,HAMA_Method,MODE_CLOSE,i);
*/

high =High[i];
low = Low[i];
open =Open[i];
close =Close[i];

}
/*
double haOpen =0.5*(lastBodyHigh+lastBodyLow),
haClose =0.25*(open+high+low+close);
//----
bodyHigh =MathMax(haOpen,haClose);
bodyLow =MathMin(haOpen,haClose);
high =MathMax(high,bodyHigh);
low =MathMin(low, bodyLow);
*/
bodyHigh =MathMax(open,close);
bodyLow =MathMin(open,close);
high =MathMax(high,bodyHigh);
low =MathMin(low, bodyLow);

}
Bar1[i]=low; Candle1[i]=bodyLow;
Bar2[i]=low; Candle2[i]=bodyLow;
Bar3[i]=low; Candle3[i]=bodyLow;
Bar4[i]=low; Candle4[i]=bodyLow;
switch(col)
{
case 1: Bar1[i]=high; Candle1[i]=bodyHigh; break;
case 2: Bar2[i]=high; Candle2[i]=bodyHigh; break;
case 3: Bar3[i]=high; Candle3[i]=bodyHigh; break;
case 4: Bar4[i]=high; Candle4[i]=bodyHigh; break;
}
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double macd1,macd2,osma1,osma2;
for(int i=MathMax(Bars-1-IndicatorCounted(),1); i>=0; i--)
{
macd1=iMACD(Symbol(),0,fast_ema_period,slow_ema_period,signal_period,0,MODE_MAIN,i);
macd2=iMACD(Symbol(),0,fast_ema_period,slow_ema_period,signal_period,0,MODE_MAIN,i+1);
osma1=iOsMA(Symbol(),0,fast_ema_period,slow_ema_period,signal_period,0,i);
osma2=iOsMA(Symbol(),0,fast_ema_period,slow_ema_period,signal_period,0,i+1);

if(macd1>macd2 && osma1>osma2 && macd1>0) SetCandleColor(1,i);
if((macd1<macd2 || osma1<osma2) && (macd1>macd2 || osma1>osma2) && macd1>0) SetCandleColor(3,i);
if(macd1<macd2 && osma1<osma2 && macd1>0) SetCandleColor(4,i);

if(macd1<macd2 && osma1<osma2 && macd1<0) SetCandleColor(2,i);
if((macd1<macd2 || osma1<osma2) && (macd1>macd2 || osma1>osma2) && macd1<0) SetCandleColor(4,i);
if(macd1>macd2 && osma1>osma2 && macd1<0)SetCandleColor(3,i);
/*
if(stochMain > Overbought) SetCandleColor(3,i);
else if(stochMain < Oversold) SetCandleColor(4,i);
else if(stochMain > stochSignal) SetCandleColor(1,i);
else if(stochMain < stochSignal) SetCandleColor(2,i);*/
}
//----
return(0);
}
//+------------------------------------------------------------------+

Дядя вилли просто бабло косил на дурочках и писал какие-то фантастические сказки.

И там и сдесь просто мувинги . Просто MACD было давно извесно,

и на нем пипл развести нельзя было. А что лучше, это вопрос спорный поставь и посмотри.