#OTCFX_MA_PRICEv1.1





//+------------------------------------------------------------------+ 
//|   #OTCFX_MA_INFO                                             
//|   Copyright © 2008, "OTCFX"                                                            
//|   
//|                                                                
//| Credit to ogeima for the Symbol switch and some other ideas.                                  
//+------------------------------------------------------------------+ 

#property  copyright "Copyright © 2004, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
//---- indicator parameters
extern int  MAPeriod  = 200;  
extern int   MAType=0;                        
extern int MAPrice=0;
extern int  TimeFrame  = 0;
int nDigits; int FastEMA=1;
string strMAType;
int MAMode;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  //ObjectCreate("OT1", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
  switch (MAType)
   {
      case 1: strMAType="EMA"; MAMode=MODE_EMA; break;
      case 2: strMAType="SMMA"; MAMode=MODE_SMMA; break;
      case 3: strMAType="LWMA"; MAMode=MODE_LWMA; break;
      case 4: strMAType="LSMA"; break;
      default: strMAType="SMA"; MAMode=MODE_SMA; break;
   }
  // ObjectSet("OT1", OBJPROP_XDISTANCE, 33);
  // ObjectSet("OT1", OBJPROP_YDISTANCE, 2);
  // ObjectCreate("OT2", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
  // ObjectSetText("OT2",StringSubstr("~MA>PRICE CALC~",0),12, "Verdana", CornflowerBlue);
  // ObjectSet("OT2", OBJPROP_CORNER, 0);
  // ObjectSet("OT2", OBJPROP_XDISTANCE, 70);
 //  ObjectSet("OT2", OBJPROP_YDISTANCE, 2);
   IndicatorShortName("OTFX");
  if(Symbol()=="GBPJPY" || Symbol()=="EURJPY" || Symbol()=="USDJPY" || Symbol()=="GOLD" || Symbol()=="USDMXN") nDigits = 2;
   if(Symbol()=="GBPUSD" || Symbol()=="EURUSD" || Symbol()=="NZDUSD" || Symbol()=="USDCHF"  ||
   Symbol()=="USDCAD" || Symbol()=="AUDUSD" || Symbol()=="EURUSD" || Symbol()=="EURCHF"  || Symbol()=="EURGBP"
   || Symbol()=="EURCAD" || Symbol()=="EURAUD" || Symbol()=="AUDNZD")nDigits = 4;
switch(TimeFrame)
   {
      case 1  : string TimeFrameStr="M1" ;   break;    //"MAMethod: 0=SMA,1=EMA,2=SMMA,3=LWMA";
      case 5  :     TimeFrameStr=   "M5" ;   break;
      case 15 :     TimeFrameStr=   "M15";   break;     // "MAPrice: 0=C,1=O,2=H,3=L,4=M,5=T,6=W"; 
      case 30 :     TimeFrameStr=   "M30";   break;
      case 60 :     TimeFrameStr=   "H1" ;   break;
      case 240  :   TimeFrameStr=   "H4" ;   break;
      case 1440 :   TimeFrameStr=   "D1" ;   break;
      case 10080 :  TimeFrameStr=   "W1" ;   break;
      case 43200 :  TimeFrameStr=   "MN1";   break;
      default  :    TimeFrameStr=   "CurrTF";
   }   
   if (TimeFrame<Period()) TimeFrame=Period();
 
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   int limit;string   Text=""; 
   int i=0;
   string T= TimeFrame;
   string MA=  MAPeriod; string MT= strMAType;
    double MA1=iMA(Symbol(),TimeFrame,FastEMA,0,MODE_EMA,PRICE_CLOSE,0)-iMA(Symbol(), TimeFrame,MAPeriod,0,MAType,MAPrice,0)-Point ;
   
    double MA3 =iMA(Symbol(), TimeFrame,MAPeriod,0,MAType,MAPrice,0);
    double MA31 =iMA(Symbol(), TimeFrame,MAPeriod,0,MAType,MAPrice,1);
 
    color ColorCOV ;
   if(  MA3 > MA31 ) { ColorCOV = Green ; } else { ColorCOV = Crimson ; }
   color ColorCOR ;  
   if(  MA1 >=0) { ColorCOR = Green ; } else { ColorCOR = Crimson ; } 
   Comment(Text);
   string P=Period(); 
   
   ObjectCreate("OT1", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT1",StringSubstr((T),0),11, "Verdana", CornflowerBlue);
   ObjectSet("OT1", OBJPROP_CORNER, 0);
   ObjectSet("OT1", OBJPROP_XDISTANCE, 33);
   ObjectSet("OT1", OBJPROP_YDISTANCE, 2);
   ObjectCreate("OT2", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT2",StringSubstr("~MA>PRICE CALC~",0),12, "Verdana", CornflowerBlue);
   ObjectSet("OT2", OBJPROP_CORNER, 0);
   ObjectSet("OT2", OBJPROP_XDISTANCE, 70);
   ObjectSet("OT2", OBJPROP_YDISTANCE, 2);
      
   ObjectCreate("OT3", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT3",DoubleToStr( MA3,Digits), 12, "Arial Bold",ColorCOV);
   ObjectSet("OT3", OBJPROP_CORNER, 0);
   ObjectSet("OT3", OBJPROP_XDISTANCE, 250);
   ObjectSet("OT3", OBJPROP_YDISTANCE,20 );
   ObjectCreate("OT4", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT4","MA=", 11, "Arial ", LightSteelBlue);
   ObjectSet("OT4", OBJPROP_CORNER, 0);
   ObjectSet("OT4", OBJPROP_XDISTANCE, 210);
   ObjectSet("OT4", OBJPROP_YDISTANCE, 20);   
  
   ObjectCreate("OT5", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT5",DoubleToStr( MA1,Digits), 12, "Arial Bold",ColorCOR);
   ObjectSet("OT5", OBJPROP_CORNER, 0);
   ObjectSet("OT5", OBJPROP_XDISTANCE, 380);
   ObjectSet("OT5", OBJPROP_YDISTANCE,20 );
   ObjectCreate("OT6", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT6","MA>CL+/-", 9, "Arial ", LightSteelBlue);
   ObjectSet("OT6", OBJPROP_CORNER, 0);
   ObjectSet("OT6", OBJPROP_XDISTANCE, 310);
   ObjectSet("OT6", OBJPROP_YDISTANCE, 20);   
   
   ObjectCreate("OT7", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT7",StringSubstr((MA),0),11, "Verdana", SteelBlue);
   ObjectSet("OT7", OBJPROP_CORNER, 0);
   ObjectSet("OT7", OBJPROP_XDISTANCE, 135);
   ObjectSet("OT7", OBJPROP_YDISTANCE, 20);
   ObjectCreate("OT8", OBJ_LABEL, WindowFind("OTFX"), 0, 0);
   ObjectSetText("OT8",StringSubstr((MT),0),10, "Verdana", SteelBlue);
   ObjectSet("OT8", OBJPROP_CORNER, 0);
   ObjectSet("OT8", OBJPROP_XDISTANCE, 165);
   ObjectSet("OT8", OBJPROP_YDISTANCE, 20);
      
    return(0);
  }
   



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: