PureBytes Links
Trading Reference Links
|
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
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|