PureBytes Links
Trading Reference Links
|
I think so. Have you ever spoken to Mr, Murrey? It
very hard to get a "straight" answer. Rather elusive.
----- Original Message -----
Sent: Thursday, April 13, 2006 5:18
AM
Subject: Re: [amibroker] Murrey
Math
Like in a VooDoo kind of way, you mean?
Could you
elaborate maybe just a little more on why Murrey Math is such an evil
wicked indicator?
Ideally I'd like to just get a workable
understandable indicator and try it out for myself on Amibroker. The
Metatrader version is proving to be a rather solid complimentary
tool.
Martin
Tom Lance wrote: > Be very careful with
MM! > > ----- Original Message
----- > *From:* Martin Cooney
<mailto:martin@xxxxxxxxxxxxx> > *To:*
Amibroker General Forum
<mailto:amibroker@xxxxxxxxxxxxxxx> >
*Sent:* Wednesday, April 12, 2006 9:05 PM >
*Subject:* [amibroker] Murrey Math > >
Hi, > > Has anyone seen a good Murrey
Math indicator ? > > There's one in the
3rd party area that dates back to 2002 but
there > doesn't appear to be much in the way of
instructions. I did try it, > plonked the DLL
into /plugins and the afl drew a pile of cross
hatched > lines. No idea why that is nor why it
needs a DLL. > > Any help would be
appreciated. (I have one for Metatrader 4 which
works > really
well) > Cheers >
Martin > >
------------------------------------------------------------------------ >
>
//+------------------------------------------------------------------+ >
//|
Murrey_Math_MT_VG.mq4 | >
//|
Copyright © 2004, MetaQuotes Software Corp. | >
//|
http://www.metaquotes.net
| >
//+------------------------------------------------------------------+ >
#property copyright "Vladislav Goshkov (VG)." >
#property link "4vg@xxxxxxx" >
> #property indicator_chart_window >
> // >
============================================================================================ >
// * Линии 8/8 и 0/8 (Окончательное
сопротивление). > // * Эти линии самые сильные и
оказывают сильнейшие сопротивления и >
поддержку. > // >
============================================================================================ >
//* Линия 7/8 (Слабая, место для остановки и разворота).
Weak, > Stall and
Reverse > //* Эта линия слаба. Если цена зашла
слишком далеко и слишком быстро > и если она
остановилась около этой линии, > //* значит она
развернется быстро вниз. Если цена не
остановилась > около этой линии, она продолжит
движение вверх к 8/8. >
// >
============================================================================================ >
//* Линия 1/8 (Слабая, место для остановки и разворота).
Weak, > Stall and
Reverse > //* Эта линия слаба. Если цена зашла
слишком далеко и слишком быстро > и если она
остановилась около этой линии, > //* значит она
развернется быстро вверх. Если цена не
остановилась > около этой линии, она продолжит
движение вниз к 0/8. >
// >
============================================================================================ >
//* Линии 6/8 и 2/8 (Вращение, разворот). Pivot,
Reverse > //* Эти две линии уступают в своей
силе только 4/8 в своей > способности полностью
развернуть ценовое движение. >
// >
============================================================================================ >
//* Линия 5/8 (Верх торгового диапазона). Top of Trading
Range > //* Цены всех рынков тратят 40% времени,
на движение между 5/8 и 3/8 >
линиями. > //* Если цена двигается около линии
5/8 и остается около нее в > течении 10-12 дней,
рынок сказал что следует > //* продавать в этой
«премиальной зоне», что и делают некоторые >
люди, но если цена сохраняет тенденцию
оставаться > //* выше 5/8, то она и останется
выше нее. Если, однако, цена падает > ниже 5/8,
то она скорее всего продолжит > //* падать далее
до следующего уровня сопротивления. >
// >
============================================================================================ >
//* Линия 3/8 (Дно торгового диапазона). Bottom of Trading
Range > //* Если цены ниже этой лини и двигаются
вверх, то цене будет сложно > пробить этот
уровень. > //* Если пробивают вверх эту линию и
остаются выше нее в течении > 10-12 дней, значит
цены останутся выше этой линии > //* и потратят
40% времени двигаясь между этой линией и 5/8
линией. > // >
============================================================================================ >
//* Линия 4/8 (Главная линия сопротивления/поддержки).
Major >
Support/Resistance > //* Эта линия обеспечивает
наибольшее сопротивление/поддержку. Этот >
уровень является лучшим для новой покупки или
продажи. > //* Если цена находится выше 4/8, то
это сильный уровень поддержки. > Если цена
находится ниже 4/8, то это прекрасный уровень >
//* сопротивления. >
// >
============================================================================================ >
extern int P = 64; > extern int StepBack =
0; > > double dmml =
0, >
dvtl =
0, >
sum =
0, >
v1 =
0, >
v2 =
0, >
mn =
0, >
mx =
0, >
x1 =
0, >
x2 =
0, >
x3 =
0, >
x4 =
0, >
x5 =
0, >
x6 =
0, >
y1 =
0, >
y2 =
0, >
y3 =
0, >
y4 =
0, >
y5 =
0, >
y6 =
0, >
octave =
0, >
fractal =
0, >
range =
0, >
finalH =
0, >
finalL =
0, >
mml[13]; > > string
ln_txt[13],
>
buff_str =
""; >
> int
>
bn_v1 =
0, >
bn_v2 =
0, >
OctLinesCnt =
13, >
mml_thk =
8, >
mml_clr[13], >
mml_shft =
3, >
nTime =
0, >
CurPeriod =
0, >
nDigits =
0, >
i = 0; > >
//+------------------------------------------------------------------+ >
//| Custom indicator initialization
function
| >
//+------------------------------------------------------------------+ >
int init() { > //----
indicators >
> ln_txt[0] =
"[-2/8]P";// "extremely overshoot [-2/8]";//
[-2/8] > ln_txt[1] =
"[-1/8]P";// "overshoot [-1/8]";//
[-1/8] > ln_txt[2] =
"[0/8]P";// "Ultimate Support - extremely
oversold > [0/8]";//
[0/8] > ln_txt[3] =
"[1/8]P";// "Weak, Stall and Reverse - [1/8]";//
[1/8] > ln_txt[4] =
"[2/8]P";// "Pivot, Reverse - major [2/8]";//
[2/8] > ln_txt[5] =
"[3/8]P";// "Bottom of Trading Range - [3/8],
if > 10-12 bars then 40% Time. BUY Premium
Zone";//[3/8] >
ln_txt[6] = "[4/8]P";// "Major Support/Resistance Pivotal
Point > [4/8]- Best New BUY or SELL level";//
[4/8] > ln_txt[7] =
"[5/8]P";// "Top of Trading Range - [5/8], if
10-12 > bars then 40% Time. SELL Premium
Zone";//[5/8] >
ln_txt[8] = "[6/8]P";// "Pivot, Reverse - major [6/8]";//
[6/8] > ln_txt[9] =
"[7/8]P";// "Weak, Stall and Reverse - [7/8]";//
[7/8] > ln_txt[10] =
"[8/8]P";// "Ultimate Resistance - extremely >
overbought [8/8]";// [8/8] >
ln_txt[11] = "[+1/8]P";// "overshoot [+1/8]";//
[+1/8] > ln_txt[12] =
"[+2/8]P";// "extremely overshoot [+2/8]";// [+2/8] >
> mml_shft =
3; > mml_thk =
3; > > // Начальная
установка цветов уровней
октав > mml_clr[0] =
DarkBlue; //
[-2]/8 > mml_clr[1] =
DarkViolet; // [-1]/8 >
mml_clr[2] = Aqua; //
[0]/8 > mml_clr[3] =
Yellow; //
[1]/8 > mml_clr[4] =
Red; //
[2]/8 > mml_clr[5] =
DarkGreen; //
[3]/8 > mml_clr[6] =
Blue; //
[4]/8 > mml_clr[7] =
DarkGreen; //
[5]/8 > mml_clr[8] =
Red; //
[6]/8 > mml_clr[9] =
Yellow; //
[7]/8 > mml_clr[10] =
Aqua; //
[8]/8 > mml_clr[11] =
DarkViolet; // [+1]/8 >
mml_clr[12] = DarkBlue; //
[+2]/8 >
//---- >
return(0); > } >
>
//+------------------------------------------------------------------+ >
//| Custor indicator deinitialization
function
| >
//+------------------------------------------------------------------+ >
int deinit() { > //---- TODO: add your code
here > Comment(" ");
> for(i=0;i<OctLinesCnt;i++)
{ > buff_str =
"mml"+i; >
ObjectDelete(buff_str); >
buff_str =
"mml_txt"+i; >
ObjectDelete(buff_str); >
} >
//---- >
return(0); >
} >
//+------------------------------------------------------------------+ >
//| Custom indicator iteration
function
| >
//+------------------------------------------------------------------+ >
int start() { > > //---- TODO: add your
code here > > if( (nTime != Time[0]) ||
(CurPeriod != Period()) ) { >
>
//price > bn_v1 =
Lowest(NULL,0,MODE_LOW,P+StepBack,0); >
bn_v2 = Highest(NULL,0,MODE_HIGH,P+StepBack,0); >
> v1 =
Low[bn_v1]; > v2 =
High[bn_v2]; > > //determine
fractal..... > if(
v2<=250000 && v2>25000
) >
fractal=100000; >
else > if(
v2<=25000 && v2>2500
) >
fractal=10000; >
else >
if( v2<=2500 && v2>250
) >
fractal=1000; >
else >
if( v2<=250 && v2>25
) >
fractal=100; >
else >
if( v2<=25 && v2>12.5
) >
fractal=12.5; >
else >
if( v2<=12.5 &&
v2>6.25) >
fractal=12.5; >
else >
if( v2<=6.25 && v2>3.125
) >
fractal=6.25; >
else >
if( v2<=3.125 && v2>1.5625
) >
fractal=3.125; >
else >
if( v2<=1.5625 && v2>0.390625
) >
fractal=1.5625; >
else >
if( v2<=0.390625 &&
v2>0) >
fractal=0.1953125; >
>
range=(v2-v1); >
sum=MathFloor(MathLog(fractal/range)/MathLog(2)); >
octave=fractal*(MathPow(0.5,sum)); >
mn=MathFloor(v1/octave)*octave; >
if( (mn+octave)>v2 ) >
mx=mn+octave; >
else >
mx=mn+(2*octave); > > > //
calculating xx >
//x2 > if(
(v1>=(3*(mx-mn)/16+mn)) && (v2<=(9*(mx-mn)/16+mn))
) >
x2=mn+(mx-mn)/2; > else
x2=0; >
//x1 > if(
(v1>=(mn-(mx-mn)/8))&& (v2<=(5*(mx-mn)/8+mn)) && (x2==0)
) >
x1=mn+(mx-mn)/2; > else
x1=0; > >
//x4 > if(
(v1>=(mn+7*(mx-mn)/16))&& (v2<=(13*(mx-mn)/16+mn))
) >
x4=mn+3*(mx-mn)/4; >
else x4=0; > >
//x5 > if(
(v1>=(mn+3*(mx-mn)/8))&& (v2<=(9*(mx-mn)/8+mn))&&
(x4==0) ) >
x5=mx; > else
x5=0; > >
//x3 > if(
(v1>=(mn+(mx-mn)/8))&& (v2<=(7*(mx-mn)/8+mn))&& (x1==0)
&& > (x2==0) && (x4==0)
&& (x5==0) ) >
x3=mn+3*(mx-mn)/4; >
else x3=0; > >
//x6 > if(
(x1+x2+x3+x4+x5) ==0 ) >
x6=mx; > else
x6=0; > >
finalH = x1+x2+x3+x4+x5+x6; > // calculating
yy >
//y1 > if( x1>0
) >
y1=mn; > else
y1=0; > >
//y2 > if( x2>0
) >
y2=mn+(mx-mn)/4; > else
y2=0; > >
//y3 > if( x3>0
) >
y3=mn+(mx-mn)/4; > else
y3=0; > >
//y4 > if( x4>0
) >
y4=mn+(mx-mn)/2; > else
y4=0; > >
//y5 > if( x5>0
) >
y5=mn+(mx-mn)/2; > else
y5=0; > >
//y6 > if( (finalH>0)
&& ((y1+y2+y3+y4+y5)==0)
) >
y6=mn; > else
y6=0; > > finalL
= y1+y2+y3+y4+y5+y6; >
> for( i=0;
i<OctLinesCnt; i++)
{ >
mml[i] =
0; >
} >
> dmml =
(finalH-finalL)/8; > >
mml[0] =(finalL-dmml*2);
//-2/8 > for( i=1;
i<OctLinesCnt; i++)
{ >
mml[i] = mml[i-1] +
dmml; >
} > for( i=0;
i<OctLinesCnt; i++
){ >
buff_str =
"mml"+i; >
if(ObjectFind(buff_str) == -1)
{ >
ObjectCreate(buff_str, OBJ_HLINE, 0, Time[0],
mml[i]); >
ObjectSet(buff_str, OBJPROP_STYLE,
STYLE_SOLID); >
ObjectSet(buff_str, OBJPROP_COLOR,
mml_clr[i]); >
ObjectMove(buff_str, 0, Time[0],
mml[i]); >
} >
else
{ >
ObjectMove(buff_str, 0, Time[0],
mml[i]); >
} >
>
buff_str =
"mml_txt"+i; >
if(ObjectFind(buff_str) == -1)
{ >
ObjectCreate(buff_str, OBJ_TEXT, 0,
Time[mml_shft], >
mml_shft); >
ObjectSetText(buff_str, ln_txt[i], 8, "Arial",
mml_clr[i]); >
ObjectMove(buff_str, 0, Time[mml_shft],
mml[i]); >
} >
else
{ >
ObjectMove(buff_str, 0, Time[mml_shft],
mml[i]); >
} >
} // for( i=1; i<=OctLinesCnt; i++ ){ >
> nTime =
Time[0]; > CurPeriod=
Period(); > >
} > >
//---- End Of Program >
return(0); >
} >
//+------------------------------------------------------------------+ >
> > > Please note that this group is for discussion
between users only. > > To get support from AmiBroker please send
an e-mail directly to > SUPPORT {at} amibroker.com > > For
other support material please check also: > http://www.amibroker.com/support.html >
> > > >
------------------------------------------------------------------------ >
YAHOO! GROUPS LINKS > > * Visit
your group "amibroker > <http://groups.yahoo.com/group/amibroker>"
on the web. >
> * To unsubscribe from this group, send
an email to: >
amibroker-unsubscribe@xxxxxxxxxxxxxxx >
<mailto:amibroker-unsubscribe@xxxxxxxxxxxxxxx?subject=Unsubscribe> >
> * Your use of Yahoo! Groups is subject
to the Yahoo! Terms of > Service
<http://docs.yahoo.com/info/terms/>.
> > >
------------------------------------------------------------------------ >
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
YAHOO! GROUPS LINKS
|
|