signaliticstrendassistantv1.0

Author: Copyright � 2016, Maxime Labelle @ Signalitics
signaliticstrendassistantv1.0
Indicators Used
Moving average indicator
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---