spread_on_chart

Author: Copyright � 2010, Forexometer
0 Views
0 Downloads
0 Favorites
spread_on_chart
//+------------------------------------------------------------------+
//|                                              spread_on_chart.mq5 |
//|                                    Copyright © 2010, Forexometer |
//|                                       http://www.forexometer.com |
//|                                           master@forexometer.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Forexometer"
#property link      "http://www.forexometer.com"
#property version   "1.00"
#property indicator_chart_window

enum enCorners
{
   upper_left =0,  // upper left
   lower_left =1,  // lower left
   lower_right=2,  // lower right
   upper_right=3   // upper right
};

//--- input parameters
input string      _1="// --- Place settings ---";
input enCorners   Corner=0;
input int         XMargin=7;
input int         YMargin=12;
input string      _2="// --- Font settings ---";
input string      Font="Arial";
input color       Color=DarkOrange;
input int         Size=8;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   int iPlace_XMargin=0;
   if(XMargin>0)  iPlace_XMargin=XMargin;

   int iPlace_YMargin=0;
   if(YMargin>0)  iPlace_YMargin=YMargin;

   int iAnchor;
   switch(Corner)
   {
      case 0:  iAnchor=ANCHOR_LEFT_UPPER;    break;
      case 1:  iAnchor=ANCHOR_LEFT_LOWER;    break;
      case 2:  iAnchor=ANCHOR_RIGHT_LOWER;   break;
      case 3:  iAnchor=ANCHOR_RIGHT_UPPER;
   }
   
   ObjectCreate(    0,"spread",     OBJ_LABEL, 0, 0, 0);
   ObjectSetInteger(0,"spread",     OBJPROP_ANCHOR,   iAnchor);
   ObjectSetInteger(0,"spread",     OBJPROP_CORNER,   Corner);  
   ObjectSetInteger(0,"spread",     OBJPROP_XDISTANCE,iPlace_XMargin);  
   ObjectSetInteger(0,"spread",     OBJPROP_YDISTANCE,iPlace_YMargin);
   ObjectSetInteger(0,"spread",     OBJPROP_FONTSIZE, Size);
   ObjectSetString( 0,"spread",     OBJPROP_FONT,     Font);
   ObjectSetInteger(0,"spread",     OBJPROP_COLOR,    Color);
   
   ObjectCreate(    0,"stoplevel",  OBJ_LABEL, 0, 0, 0);  
   ObjectSetInteger(0,"stoplevel",  OBJPROP_ANCHOR,   iAnchor);
   ObjectSetInteger(0,"stoplevel",  OBJPROP_CORNER,   Corner);  
   ObjectSetInteger(0,"stoplevel",  OBJPROP_XDISTANCE,iPlace_XMargin);  
   ObjectSetInteger(0,"stoplevel",  OBJPROP_YDISTANCE,iPlace_YMargin+1.5*Size);
   ObjectSetInteger(0,"stoplevel",  OBJPROP_FONTSIZE, Size);
   ObjectSetString( 0,"stoplevel",  OBJPROP_FONT,     Font);
   ObjectSetInteger(0,"stoplevel",  OBJPROP_COLOR,    Color);

   ObjectCreate(    0,"freezelevel",OBJ_LABEL, 0, 0, 0);  
   ObjectSetInteger(0,"freezelevel",OBJPROP_ANCHOR,   iAnchor);
   ObjectSetInteger(0,"freezelevel",OBJPROP_CORNER,   Corner);  
   ObjectSetInteger(0,"freezelevel",OBJPROP_XDISTANCE,iPlace_XMargin);  
   ObjectSetInteger(0,"freezelevel",OBJPROP_YDISTANCE,iPlace_YMargin+3*Size);
   ObjectSetInteger(0,"freezelevel",OBJPROP_FONTSIZE, Size);
   ObjectSetString( 0,"freezelevel",OBJPROP_FONT,     Font);
   ObjectSetInteger(0,"freezelevel",OBJPROP_COLOR,    Color);

   return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   ObjectDelete(0,"spread");
   ObjectDelete(0,"stoplevel");
   ObjectDelete(0,"freezelevel");
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double& price[])
{
   ObjectSetString(0,"spread",     OBJPROP_TEXT,"spread = "      +DoubleToString(SymbolInfoInteger(Symbol(),SYMBOL_SPREAD),1));
   ObjectSetString(0,"stoplevel",  OBJPROP_TEXT,"stop level = "  +DoubleToString(SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL),1));
   ObjectSetString(0,"freezelevel",OBJPROP_TEXT,"freeze level = "+DoubleToString(SymbolInfoInteger(Symbol(),SYMBOL_TRADE_FREEZE_LEVEL),1));

   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 ---