//+------------------------------------------------------------------+ //| TrendForce.mq4 | //+------------------------------------------------------------------+ //| Ðàñ÷åò ñèëû òåíäåíöèè äâèæåíèÿ íà ðûíêå, íàáîð èíäèêàòîðîâ è èõ //| ïàðàìåòðû ïîëíîñòüþ âçÿòû èç: //| -----------------------------------------------------------------+ //| FerruFx_Multi_info+_light_chart_v1.1-Ndisc.mq4 | //| Copyright © 2007, FerruFx | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Bookkeeper" #property link "yuzefovich@gmail.com" #property indicator_chart_window //---- Indicators parameters //---- Moving Average Settings int FastMAPeriod = 20; // Fast Moving Average period int MediumMAPeriod = 50; // Medium Moving Average period int SlowMAPeriod = 100; // Slow Moving Average period int MAMethod = MODE_EMA; // Moving Average method int MAPrice = PRICE_CLOSE; // Moving Average price //---- CCI Settings int CCIPeriod = 14; // Commodity Channel Index period int CCIPrice = PRICE_CLOSE; // CCI price //---- MACD Settings int MACDFast = 12; // MACD fast EMA period int MACDSlow = 26; // MACD slow EMA period int MACDSignal = 9; // MACD signal SMA period //---- ADX Settings ==="; int ADXPeriod = 14; // Average Directional movement period int ADXPrice = PRICE_CLOSE; // ADX price //---- BULLS Settings ==="; int BULLSPeriod = 13; // Bulls Power period int BULLSPrice = PRICE_CLOSE; // Bulls Power price //---- BEARS Settings ==="; int BEARSPeriod = 13; // Bears Power period int BEARSPrice = PRICE_CLOSE; // Bears Power price //---- STOCHASTIC Settings ==="; int STOKPeriod = 5; // Stochastic %K period int STODPeriod = 3; // Stochastic %D period int STOSlowing = 3; // Stochastic slowing //---- RSI Settings ==="; int RSIPeriod = 14; // RSI period //---- FORCE INDEX Settings ==="; int FIPeriod = 14; // Force Index period int FIMethod = MODE_SMA; // Force Index method int FIPrice = PRICE_CLOSE; // Force Index price //---- MOMENTUM INDEX Settings ==="; int MOMPeriod = 14; // Momentum period int MOMPrice = PRICE_CLOSE; // Momentum price //---- DeMARKER Settings ==="; int DEMPeriod = 14; // DeMarker period int TF[7]={PERIOD_D1, PERIOD_H4, PERIOD_H1, PERIOD_M30, PERIOD_M15, PERIOD_M5, PERIOD_M1}; //+------------------------------------------------------------------+ int init() { ObjectCreate("Trend_text", OBJ_LABEL, 0, 0, 0); ObjectSetText("Trend_text","Trend Force",9, "System", Blue); ObjectSet("Trend_text", OBJPROP_CORNER, 1); ObjectSet("Trend_text", OBJPROP_XDISTANCE, 15); ObjectSet("Trend_text", OBJPROP_YDISTANCE, 10); ObjectCreate("Trend_UP_text", OBJ_LABEL, 0, 0, 0); ObjectSet("Trend_UP_text", OBJPROP_CORNER, 1); ObjectSet("Trend_UP_text", OBJPROP_XDISTANCE, 50); ObjectSet("Trend_UP_text", OBJPROP_YDISTANCE, 30); ObjectCreate("Trend_UP_value", OBJ_LABEL, 0, 0, 0); ObjectSet("Trend_UP_value", OBJPROP_CORNER, 1); ObjectSet("Trend_UP_value", OBJPROP_XDISTANCE, 15); ObjectSet("Trend_UP_value", OBJPROP_YDISTANCE, 30); ObjectCreate("Trend_DOWN_text", OBJ_LABEL, 0, 0, 0); ObjectSet("Trend_DOWN_text", OBJPROP_CORNER, 1); ObjectSet("Trend_DOWN_text", OBJPROP_XDISTANCE, 50); ObjectSet("Trend_DOWN_text", OBJPROP_YDISTANCE, 45); ObjectCreate("Trend_DOWN_value", OBJ_LABEL, 0, 0, 0); ObjectSet("Trend_DOWN_value", OBJPROP_CORNER, 1); ObjectSet("Trend_DOWN_value", OBJPROP_XDISTANCE, 15); ObjectSet("Trend_DOWN_value", OBJPROP_YDISTANCE, 45); return(0); } //+------------------------------------------------------------------+ int deinit() { ObjectDelete("Trend_text"); ObjectDelete("Trend_UP_text"); ObjectDelete("Trend_UP_value"); ObjectDelete("Trend_DOWN_text"); ObjectDelete("Trend_DOWN_value"); return(0); } //+------------------------------------------------------------------+ int start() { if( Period() > PERIOD_D1 ) return(0); int SUM_UP=0, SUM_DOUN=0; for(int j=0; j<7; j++) { int TimeFrame=TF[j]; double FastMA_1 = iMA(NULL,TimeFrame,FastMAPeriod,0,MAMethod,MAPrice,0); double FastMA_2 = iMA(NULL,TimeFrame,FastMAPeriod,0,MAMethod,MAPrice,1); if ((FastMA_1 > FastMA_2)) SUM_UP++; if ((FastMA_1 < FastMA_2)) SUM_DOUN++; double MediumMA_1 = iMA(NULL,TimeFrame,MediumMAPeriod,0,MAMethod,MAPrice,0); double MediumMA_2 = iMA(NULL,TimeFrame,MediumMAPeriod,0,MAMethod,MAPrice,1); if ((MediumMA_1 > MediumMA_2)) SUM_UP++; if ((MediumMA_1 < MediumMA_2)) SUM_DOUN++; double SlowMA_1 = iMA(NULL,TimeFrame,SlowMAPeriod,0,MAMethod,MAPrice,0); double SlowMA_2 = iMA(NULL,TimeFrame,SlowMAPeriod,0,MAMethod,MAPrice,1); if ((SlowMA_1 > SlowMA_2)) SUM_UP++; if ((SlowMA_1 < SlowMA_2)) SUM_DOUN++; double cci=iCCI(NULL,TimeFrame,CCIPeriod,CCIPrice,0); if ((cci > 0)) SUM_UP++; if ((cci < 0)) SUM_DOUN++; // double MACD_m=iMACD(NULL,TimeFrame,MACDFast,MACDSlow,MACDSignal,PRICE_CLOSE,MODE_MAIN,0); double MACD_s=iMACD(NULL,TimeFrame,MACDFast,MACDSlow,MACDSignal,PRICE_CLOSE,MODE_SIGNAL,0); if ((MACD_m > MACD_s)) SUM_UP++; if ((MACD_m < MACD_s)) SUM_DOUN++; double ADX_plus=iADX(NULL,TimeFrame,ADXPeriod,ADXPrice,MODE_PLUSDI,0); double ADX_minus=iADX(NULL,TimeFrame,ADXPeriod,ADXPrice,MODE_MINUSDI,0); if ((ADX_plus > ADX_minus)) SUM_UP++; if ((ADX_plus < ADX_minus)) SUM_DOUN++; double bulls=iBullsPower(NULL,TimeFrame,BULLSPeriod,BULLSPrice,0); if ((bulls > 0)) SUM_UP++; if ((bulls < 0)) SUM_DOUN++; double bears=iBearsPower(NULL,TimeFrame,BEARSPeriod,BEARSPrice,0); if ((bears > 0)) SUM_UP++; if ((bears < 0)) SUM_DOUN++; double stoch_m=iStochastic(NULL,TimeFrame,STOKPeriod,STODPeriod,STOSlowing,MODE_SMA,1,MODE_MAIN,0); double stoch_s=iStochastic(NULL,TimeFrame,STOKPeriod,STODPeriod,STOSlowing,MODE_SMA,1,MODE_SIGNAL,0); if (stoch_m >= stoch_s) SUM_UP++; if (stoch_m < stoch_s) SUM_DOUN++; double rsi=iRSI(NULL,TimeFrame,RSIPeriod,PRICE_CLOSE,0); if (rsi >= 50) SUM_UP++; if (rsi < 50) SUM_DOUN++; double fi=iForce(NULL,TimeFrame,FIPeriod,FIMethod,FIPrice,0); if (fi >= 0) SUM_UP++; if (fi < 0) SUM_DOUN++; double momentum=iMomentum(NULL,TimeFrame,MOMPeriod,MOMPrice,0); if (momentum >= 100) SUM_UP++; if (momentum < 100) SUM_DOUN++; double demarker_0=iDeMarker(NULL,TimeFrame,DEMPeriod,0); double demarker_1=iDeMarker(NULL,TimeFrame,DEMPeriod,1); if (demarker_0 >= demarker_1) SUM_UP++; if (demarker_0 < demarker_1) SUM_DOUN++; } double v=100.0*SUM_UP/(SUM_UP+SUM_DOUN); string Trend_UP=DoubleToStr(v,0); string Trend_DOWN=DoubleToStr((100.0-v),0); ObjectSetText("Trend_UP_text","UP",10, "System", ForestGreen); ObjectSetText("Trend_UP_value",Trend_UP+"%",10, "System", ForestGreen); ObjectSetText("Trend_DOWN_text","DOWN",10, "System", Red); ObjectSetText("Trend_DOWN_value",Trend_DOWN+"%",10, "System", Red); return(0); }
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Moving average indicator
Commodity channel index
MACD Histogram
Movement directional index
Bulls Power indicator
Bears Power indicator
Stochastic oscillator
Relative strength index
Force index
Momentum indicator
DeMarker indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: