//+------------------------------------------------------------------+ //| #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: