Indicators Used
0
Views
0
Downloads
0
Favorites
signaliticstrendassistantv1.0
//+------------------------------------------------------------------+
//| Signalitics - Trend Assistant V1.0.mq4 |
//| Copyright © 2016, Signalitics. |
//| signalitics@gmail.com |
//| Written by Maxime Labelle |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Maxime Labelle @ Signalitics"
#property link "signalitics@gmail.com"
//----
#property indicator_separate_window
#property indicator_minimum 1.0
#property indicator_maximum 11.0
#property indicator_buffers 18
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Lime
#property indicator_color4 Red
#property indicator_color5 Lime
#property indicator_color6 Red
#property indicator_color7 Lime
#property indicator_color8 Red
#property indicator_color9 Lime
#property indicator_color10 Red
#property indicator_color11 Lime
#property indicator_color12 Red
#property indicator_color13 Lime
#property indicator_color14 Red
#property indicator_color15 Lime
#property indicator_color16 Red
#property indicator_color17 Lime
#property indicator_color18 Red
//----
extern int MA_PERIOD = 5; // Averaging period.
extern ENUM_MA_METHOD MA_MODE = MODE_SMA; // Averaging method.
extern ENUM_APPLIED_PRICE MA_PRICE = PRICE_CLOSE; // The type of the price used for calculaton of Moving Average.
//----
double MA1_UP_Buffer[];
double MA1_DN_Buffer[];
double MA2_UP_Buffer[];
double MA2_DN_Buffer[];
double MA3_UP_Buffer[];
double MA3_DN_Buffer[];
double MA4_UP_Buffer[];
double MA4_DN_Buffer[];
double MA5_UP_Buffer[];
double MA5_DN_Buffer[];
double MA6_UP_Buffer[];
double MA6_DN_Buffer[];
double MA7_UP_Buffer[];
double MA7_DN_Buffer[];
double MA8_UP_Buffer[];
double MA8_DN_Buffer[];
double MA9_UP_Buffer[];
double MA9_DN_Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() {
//---- indicators
SetIndexStyle (0, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (0, 167);
SetIndexBuffer(0, MA1_UP_Buffer);
SetIndexEmptyValue(0, 0.0);
SetIndexStyle (1, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (1, 167);
SetIndexBuffer(1, MA1_DN_Buffer);
SetIndexEmptyValue(1, 0.0);
SetIndexStyle (2, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (2, 167);
SetIndexBuffer(2, MA2_UP_Buffer);
SetIndexEmptyValue(2, 0.0);
SetIndexStyle (3, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (3, 167);
SetIndexBuffer(3, MA2_DN_Buffer);
SetIndexEmptyValue(3, 0.0);
SetIndexStyle (4, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (4, 167);
SetIndexBuffer(4, MA3_UP_Buffer);
SetIndexEmptyValue(4, 0.0);
SetIndexStyle (5, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (5, 167);
SetIndexBuffer(5, MA3_DN_Buffer);
SetIndexEmptyValue(5, 0.0);
SetIndexStyle (6, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (6, 167);
SetIndexBuffer(6, MA4_UP_Buffer);
SetIndexEmptyValue(6, 0.0);
SetIndexStyle (7, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (7, 167);
SetIndexBuffer(7, MA4_DN_Buffer);
SetIndexEmptyValue(7, 0.0);
SetIndexStyle (8, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (8, 167);
SetIndexBuffer(8, MA5_UP_Buffer);
SetIndexEmptyValue(8, 0.0);
SetIndexStyle (9, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (9, 167);
SetIndexBuffer(9, MA5_DN_Buffer);
SetIndexEmptyValue(9, 0.0);
SetIndexStyle (10, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (10, 167);
SetIndexBuffer(10, MA6_UP_Buffer);
SetIndexEmptyValue(10, 0.0);
SetIndexStyle (11, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (11, 167);
SetIndexBuffer(11, MA6_DN_Buffer);
SetIndexEmptyValue(11, 0.0);
SetIndexStyle (12, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (12, 167);
SetIndexBuffer(12, MA7_UP_Buffer);
SetIndexEmptyValue(12, 0.0);
SetIndexStyle (13, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (13, 167);
SetIndexBuffer(13, MA7_DN_Buffer);
SetIndexEmptyValue(13, 0.0);
SetIndexStyle (14, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (14, 167);
SetIndexBuffer(14, MA8_UP_Buffer);
SetIndexEmptyValue(14, 0.0);
SetIndexStyle (15, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (15, 167);
SetIndexBuffer(15, MA8_DN_Buffer);
SetIndexEmptyValue(15, 0.0);
SetIndexStyle (16, DRAW_ARROW, STYLE_SOLID, 0, Lime);
SetIndexArrow (16, 167);
SetIndexBuffer(16, MA9_UP_Buffer);
SetIndexEmptyValue(16, 0.0);
SetIndexStyle (17, DRAW_ARROW, STYLE_SOLID, 0, Red);
SetIndexArrow (17, 167);
SetIndexBuffer(17, MA9_DN_Buffer);
SetIndexEmptyValue(17, 0.0);
SetIndexLabel(0, "1_Buffer_UP");
SetIndexLabel(1, "1_Buffer_DN");
SetIndexLabel(2, "2_Buffer_UP");
SetIndexLabel(3, "2_Buffer_DN");
SetIndexLabel(4, "3_Buffer_UP");
SetIndexLabel(5, "3_Buffer_DN");
SetIndexLabel(6, "4_Buffer_UP");
SetIndexLabel(7, "4_Buffer_DN");
SetIndexLabel(8, "5_Buffer_UP");
SetIndexLabel(9, "5_Buffer_DN");
SetIndexLabel(10, "6_Buffer_UP");
SetIndexLabel(11, "6_Buffer_DN");
SetIndexLabel(12, "7_Buffer_UP");
SetIndexLabel(13, "7_Buffer_DN");
SetIndexLabel(14, "8_Buffer_UP");
SetIndexLabel(15, "8_Buffer_DN");
SetIndexLabel(16, "9_Buffer_UP");
SetIndexLabel(17, "9_Buffer_DN");
IndicatorDigits(0);
IndicatorShortName("Signalitics - Trend Assistant");
string ObjName = "";
string ObjText = "";
ObjName = "STA_TEXT_M1"; ObjText = "M1";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 170);//top to bottom
ObjName = "STA_TEXT_M5"; ObjText = "M5";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 150);//top to bottom
ObjName = "STA_TEXT_M15"; ObjText = "M15";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 130);//top to bottom
ObjName = "STA_TEXT_M30"; ObjText = "M30";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 110);//top to bottom
ObjName = "STA_TEXT_H1"; ObjText = "H1";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 90);//top to bottom
ObjName = "STA_TEXT_H4"; ObjText = "H4";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 70);//top to bottom
ObjName = "STA_TEXT_D1"; ObjText = "D1";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 50);//top to bottom
ObjName = "STA_TEXT_W1"; ObjText = "W1";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 30);//top to bottom
ObjName = "STA_TEXT_MN1"; ObjText = "MN1";
ObjectCreate (ObjName, OBJ_LABEL, ChartWindowFind(NULL, "Signalitics - Trend Assistant"), 0, 0, 0);
ObjectSet(ObjName,OBJPROP_CORNER,1);
ObjectSetText(ObjName, ObjText, 10, "Tahoma", Aqua);
ObjectSet(ObjName, OBJPROP_XDISTANCE, 15);//left to right
ObjectSet(ObjName, OBJPROP_YDISTANCE, 10);//top to bottom
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() {
int Counted_Bars = IndicatorCounted(), i;
if(Counted_Bars<0) return(-1);
if(Counted_Bars>0) Counted_Bars--;
int Limit = Bars - Counted_Bars;
if(Counted_Bars==0) Limit--;
for(i=Limit; i>=0; i--) {
int SHIFT;
SHIFT = iBarShift(Symbol(), PERIOD_M1, Time[i]);
double MA0_M1 = iMA(NULL, PERIOD_M1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_M1 = iMA(NULL, PERIOD_M1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_M5, Time[i]);
double MA0_M5 = iMA(NULL, PERIOD_M5, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_M5 = iMA(NULL, PERIOD_M5, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_M15, Time[i]);
double MA0_M15 = iMA(NULL, PERIOD_M15, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_M15 = iMA(NULL, PERIOD_M15, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_M30, Time[i]);
double MA0_M30 = iMA(NULL, PERIOD_M30, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_M30 = iMA(NULL, PERIOD_M30, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_H1, Time[i]);
double MA0_H1 = iMA(NULL, PERIOD_H1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_H1 = iMA(NULL, PERIOD_H1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_H4, Time[i]);
double MA0_H4 = iMA(NULL, PERIOD_H4, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_H4 = iMA(NULL, PERIOD_H4, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_D1, Time[i]);
double MA0_D1 = iMA(NULL, PERIOD_D1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_D1 = iMA(NULL, PERIOD_D1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_W1, Time[i]);
double MA0_W1 = iMA(NULL, PERIOD_W1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_W1 = iMA(NULL, PERIOD_W1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
SHIFT = iBarShift(Symbol(), PERIOD_MN1, Time[i]);
double MA0_MN1 = iMA(NULL, PERIOD_MN1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT);
double MA1_MN1 = iMA(NULL, PERIOD_MN1, MA_PERIOD, 0, MA_MODE, MA_PRICE, SHIFT+1);
MA1_UP_Buffer[i] = 0;
MA1_DN_Buffer[i] = 0;
if(MA0_M1 > MA1_M1) {
MA1_UP_Buffer[i] = 2;
} else {
MA1_DN_Buffer[i] = 2;
}
MA2_UP_Buffer[i] = 0;
MA2_DN_Buffer[i] = 0;
if(MA0_M5 > MA1_M5) {
MA2_UP_Buffer[i] = 3;
} else {
MA2_DN_Buffer[i] = 3;
}
MA3_UP_Buffer[i] = 0;
MA3_DN_Buffer[i] = 0;
if(MA0_M15 > MA1_M15) {
MA3_UP_Buffer[i] = 4;
} else {
MA3_DN_Buffer[i] = 4;
}
MA4_UP_Buffer[i] = 0;
MA4_DN_Buffer[i] = 0;
if(MA0_M30 > MA1_M30) {
MA4_UP_Buffer[i] = 5;
} else {
MA4_DN_Buffer[i] = 5;
}
MA5_UP_Buffer[i] = 0;
MA5_DN_Buffer[i] = 0;
if(MA0_H1 > MA1_H1) {
MA5_UP_Buffer[i] = 6;
} else {
MA5_DN_Buffer[i] = 6;
}
MA6_UP_Buffer[i] = 0;
MA6_DN_Buffer[i] = 0;
if(MA0_H4 > MA1_H4) {
MA6_UP_Buffer[i] = 7;
} else {
MA6_DN_Buffer[i] = 7;
}
MA7_UP_Buffer[i] = 0;
MA7_DN_Buffer[i] = 0;
if(MA0_D1 > MA1_D1) {
MA7_UP_Buffer[i] = 8;
} else {
MA7_DN_Buffer[i] = 8;
}
MA8_UP_Buffer[i] = 0;
MA8_DN_Buffer[i] = 0;
if(MA0_W1 > MA1_W1) {
MA8_UP_Buffer[i] = 9;
} else {
MA8_DN_Buffer[i] = 9;
}
MA9_UP_Buffer[i] = 0;
MA9_DN_Buffer[i] = 0;
if(MA0_MN1 > MA1_MN1) {
MA9_UP_Buffer[i] = 10;
} else {
MA9_DN_Buffer[i] = 10;
}
}
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
---