Indicators Used
0
Views
0
Downloads
0
Favorites
TrackTrend_MACD
//+------------------------------------------------------------------+
//| TrackTrend.mq4 |
//| Duke3DAtomic |
//| duke3datomic@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
// Ïåðèîäû òàéìôðåéìîâ:
// 0 - ïåðèîä òåêóùåãî ãðàôèêà
// 1 - M1
// 2 - M5
// 3 - M15
// 4 - M30
// 5 - H1
// 6 - H4
// 7 - D1
// 8 - W1
// 9 - MN1
int MACD_Fast = 12;
int MACD_Slow = 26;
int Signal_Period = 9;
int MACD_Price = 0; // PRICE_CLOSE
int MACD_Shift = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
string MACD_comment1,
MACD_comment2,
MACD_comment3,
MACD_comment4,
MACD_comment5,
MACD_comment6,
MACD_comment7,
MACD_comment8,
MACD_comment9;
string MACDComment[];
int limit;
int counted_bars = IndicatorCounted();
//---- ïðîâåðêà íà âîçìîæíûå îøèáêè
if(counted_bars < 0) return(-1);
//---- ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí
if(counted_bars > 0) counted_bars--;
limit = Bars - counted_bars;
//---- îñíîâíîé öèêë
for(int i=0; i<limit; i++)
{
//==============================================================================================
string com1, com2, com3, com4;
com1 = " Up";
com2 = " Down";
com3 = " Up->Down";
com4 = " Down->Up";
//======== M1 ======================================================================================
if(MACD(TimeFrame(1))==1) {MACD_comment1 = StrTimeFrame(1)+com1;}
if(MACD(TimeFrame(1))==2) {MACD_comment1 = StrTimeFrame(1)+com2;}
if(MACD(TimeFrame(1))==3) {MACD_comment1 = StrTimeFrame(1)+com3;}
if(MACD(TimeFrame(1))==4) {MACD_comment1 = StrTimeFrame(1)+com4;}
//======== M5 ======================================================================================
if(MACD(TimeFrame(2))==1) {MACD_comment2 = StrTimeFrame(2)+com1;}
if(MACD(TimeFrame(2))==2) {MACD_comment2 = StrTimeFrame(2)+com2;}
if(MACD(TimeFrame(2))==3) {MACD_comment2 = StrTimeFrame(2)+com3;}
if(MACD(TimeFrame(2))==4) {MACD_comment2 = StrTimeFrame(2)+com4;}
//======== M15 =====================================================================================
if(MACD(TimeFrame(3))==1) {MACD_comment3 = StrTimeFrame(3)+com1;}
if(MACD(TimeFrame(3))==2) {MACD_comment3 = StrTimeFrame(3)+com2;}
if(MACD(TimeFrame(3))==3) {MACD_comment3 = StrTimeFrame(3)+com3;}
if(MACD(TimeFrame(3))==4) {MACD_comment3 = StrTimeFrame(3)+com4;}
//======== M30 =====================================================================================
if(MACD(TimeFrame(4))==1) {MACD_comment4 = StrTimeFrame(4)+com1;}
if(MACD(TimeFrame(4))==2) {MACD_comment4 = StrTimeFrame(4)+com2;}
if(MACD(TimeFrame(4))==3) {MACD_comment4 = StrTimeFrame(4)+com3;}
if(MACD(TimeFrame(4))==4) {MACD_comment4 = StrTimeFrame(4)+com4;}
//======== H1 ======================================================================================
if(MACD(TimeFrame(5))==1) {MACD_comment5 = StrTimeFrame(5)+com1;}
if(MACD(TimeFrame(5))==2) {MACD_comment5 = StrTimeFrame(5)+com2;}
if(MACD(TimeFrame(5))==3) {MACD_comment5 = StrTimeFrame(5)+com3;}
if(MACD(TimeFrame(5))==4) {MACD_comment5 = StrTimeFrame(5)+com4;}
//======== H4 ======================================================================================
if(MACD(TimeFrame(6))==1) {MACD_comment6 = StrTimeFrame(6)+com1;}
if(MACD(TimeFrame(6))==2) {MACD_comment6 = StrTimeFrame(6)+com2;}
if(MACD(TimeFrame(6))==3) {MACD_comment6 = StrTimeFrame(6)+com3;}
if(MACD(TimeFrame(6))==4) {MACD_comment6 = StrTimeFrame(6)+com4;}
//======== D1 ======================================================================================
if(MACD(TimeFrame(7))==1) {MACD_comment7 = StrTimeFrame(7)+com1;}
if(MACD(TimeFrame(7))==2) {MACD_comment7 = StrTimeFrame(7)+com2;}
if(MACD(TimeFrame(7))==3) {MACD_comment7 = StrTimeFrame(7)+com3;}
if(MACD(TimeFrame(7))==4) {MACD_comment7 = StrTimeFrame(7)+com4;}
//======== W1 ======================================================================================
if(MACD(TimeFrame(8))==1) {MACD_comment8 = StrTimeFrame(8)+com1;}
if(MACD(TimeFrame(8))==2) {MACD_comment8 = StrTimeFrame(8)+com2;}
if(MACD(TimeFrame(8))==3) {MACD_comment8 = StrTimeFrame(8)+com3;}
if(MACD(TimeFrame(8))==4) {MACD_comment8 = StrTimeFrame(8)+com4;}
//======== MN1 =====================================================================================
if(MACD(TimeFrame(9))==1) {MACD_comment9 = StrTimeFrame(9)+com1;}
if(MACD(TimeFrame(9))==2) {MACD_comment9 = StrTimeFrame(9)+com2;}
if(MACD(TimeFrame(9))==3) {MACD_comment9 = StrTimeFrame(9)+com3;}
if(MACD(TimeFrame(9))==4) {MACD_comment9 = StrTimeFrame(9)+com4;}
//==============================================================================================
}
Comment("MACD (",MACD_Fast,",",MACD_Slow,",",Signal_Period,")\n",MACD_comment9,"\n",MACD_comment8,"\n",MACD_comment7,"\n",MACD_comment6,"\n",MACD_comment5,"\n",MACD_comment4,"\n",MACD_comment3,"\n",MACD_comment2,"\n",MACD_comment1);
//----
return(0);
}
//==================================================================================================
int MACD(int MACDTimeFrame)
{
int MACD_Trend;
double MACD_Main_0;
double MACD_Main_1;
double MACD_Signal_0;
double MACD_Signal_1;
MACD_Main_0 = iMACD(Symbol(),MACDTimeFrame,MACD_Fast,MACD_Slow,Signal_Period,MACD_Price,MODE_MAIN,0);
MACD_Main_1 = iMACD(Symbol(),MACDTimeFrame,MACD_Fast,MACD_Slow,Signal_Period,MACD_Price,MODE_MAIN,1);
MACD_Signal_0 = iMACD(Symbol(),MACDTimeFrame,MACD_Fast,MACD_Slow,Signal_Period,MACD_Price,MODE_SIGNAL,0);
MACD_Signal_1 = iMACD(Symbol(),MACDTimeFrame,MACD_Fast,MACD_Slow,Signal_Period,MACD_Price,MODE_SIGNAL,1);
if(MACD_Main_0>MACD_Main_1 && MACD_Signal_0>MACD_Signal_1 && MACD_Main_0>MACD_Signal_0) {MACD_Trend = 1;} // Òðåíä ââåðõ
if(MACD_Main_0<MACD_Main_1 && MACD_Signal_0<MACD_Signal_1 && MACD_Main_0<MACD_Signal_0) {MACD_Trend = 2;} // Òðåíä âíèç
if(MACD_Main_0<MACD_Main_1 && MACD_Signal_0>MACD_Signal_1 && MACD_Main_0>MACD_Signal_0) {MACD_Trend = 3;} // Òðåíä ââåðõ, ñ ïåðåõîäîì âíèç
if(MACD_Main_0>MACD_Main_1 && MACD_Signal_0<MACD_Signal_1 && MACD_Main_0<MACD_Signal_0) {MACD_Trend = 4;} // Òðåíä âíèç, ñ ïåðåõîäîì ââåðõ
return(MACD_Trend);
}
//==================================================================================================
int TimeFrame(int Time_Period) // ôóíêöèÿ âîçâðàùàåò ÷èñëîâîå çíà÷åíèå ïåðèîäà ãðàôèêà
{
switch(Time_Period)
{
case 0: return(0); // ïåðèîä òåêóùåãî ãðàôèêà
case 1: return(1); // M1
case 2: return(5); // M5
case 3: return(15); // M15
case 4: return(30); // M30
case 5: return(60); // H1
case 6: return(240); // H4
case 7: return(1440); // D1
case 8: return(10080); // W1
case 9: return(43200); // MN1
}
}
//==================================================================================================
string StrTimeFrame(int T_Frame) // ôóíêöèÿ âîçâðàùàåò ñòðîêîâîå çíà÷åíèå ïåðèîäà ãðàôèêà
{
switch(T_Frame)
{
case 0: return("Cur:"); // ïåðèîä òåêóùåãî ãðàôèêà
case 1: return("M1:"); // M1
case 2: return("M5:"); // M5
case 3: return("M15:"); // M15
case 4: return("M30:"); // M30
case 5: return("H1:"); // H1
case 6: return("H4:"); // H4
case 7: return("D1:"); // D1
case 8: return("W1:"); // W1
case 9: return("MN1:"); // MN1
}
}
//==================================================================================================
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
---