Indicators Used
1
Views
0
Downloads
0
Favorites
TrendForce
//+------------------------------------------------------------------+
//| 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);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---