| 
 PureBytes Links 
Trading Reference Links 
 | 
| 
 Be very careful with MM! 
  ----- Original Message -----  
  
  
  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
 
 
    
 |   
 |