0
Views
0
Downloads
0
Favorites
hotkeys_v1
//+------------------------------------------------------------------+
//| hotKeys.mq4 |
//| Copyright 2015, Mohit Marwaha |
//| marwaha1@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Mohit Marwaha"
#property link "marwaha1@gmail.com"
#property version "1.00"
#property strict
#property indicator_chart_window
#property description "marwaha1@gmail.com"
#property description "The indicator will change the timeframe of the chart with key press"
#property description "M - Monthly, W - Weekly, D - Daily, 4 - 4Hr, 1 - 1Hr, 3 - 30Mins, f - 15Mins, 5 - 5Mins"
#define KEY_MONTHLY 57
#define KEY_WEEKLY 56
#define KEY_DAILY 55
#define KEY_4HOUR 54
#define KEY_1HOUR 53
#define KEY_5MIN 50
#define KEY_30MIN 52
#define KEY_15MIN 51
#define KEY_1MIN 49
#define KEY_CHARTFIX 48
#define KEY_P 80
extern bool showInfo=true;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
if(showInfo==true)
{
ObjectCreate("Obj1",OBJ_LABEL,0,0,0);
ObjectSetText("Obj1",Symbol()+"-"+IntegerToString(Period())+" Min",12,"Calibri",DodgerBlue);
ObjectSet("Obj1",OBJPROP_CORNER,0);
ObjectSet("Obj1",OBJPROP_XDISTANCE,15);
ObjectSet("Obj1",OBJPROP_YDISTANCE,10);
ObjectCreate("Obj2",OBJ_LABEL,0,0,0);
ObjectSetText("Obj2","Ask:"+DoubleToStr(Ask),8,"Verdana",Red);
ObjectSet("Obj2",OBJPROP_CORNER,0);
ObjectSet("Obj2",OBJPROP_XDISTANCE,15);
ObjectSet("Obj2",OBJPROP_YDISTANCE,30);
ObjectCreate("Obj3",OBJ_LABEL,0,0,0);
ObjectSetText("Obj3","Bid:"+DoubleToStr(Bid),8,"Verdana",Green);
ObjectSet("Obj3",OBJPROP_CORNER,0);
ObjectSet("Obj3",OBJPROP_XDISTANCE,15);
ObjectSet("Obj3",OBJPROP_YDISTANCE,40);
ObjectCreate("Obj4",OBJ_LABEL,0,0,0);
ObjectSetText("Obj4","Spread:"+DoubleToStr(NormalizeDouble((Ask-Bid),5)),8,"Verdana",Gray);
ObjectSet("Obj4",OBJPROP_CORNER,0);
ObjectSet("Obj4",OBJPROP_XDISTANCE,15);
ObjectSet("Obj4",OBJPROP_YDISTANCE,50);
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
//---
if(id==CHARTEVENT_KEYDOWN)
{
switch(int(lparam))
{
case KEY_MONTHLY:ChartSetSymbolPeriod(0,NULL,43200);
break;
case KEY_WEEKLY:ChartSetSymbolPeriod(0,NULL,10080);
break;
case KEY_DAILY:ChartSetSymbolPeriod(0,NULL,1440);
break;
case KEY_4HOUR:ChartSetSymbolPeriod(0,NULL,240);
break;
case KEY_1HOUR:ChartSetSymbolPeriod(0,NULL,60);
break;
case KEY_5MIN:ChartSetSymbolPeriod(0,NULL,5);
break;
case KEY_30MIN:ChartSetSymbolPeriod(0,NULL,30);
break;
case KEY_15MIN:ChartSetSymbolPeriod(0,NULL,15);
break;
case KEY_1MIN:ChartSetSymbolPeriod(0,NULL,1);
break;
case KEY_CHARTFIX:
{
bool isFixed=ChartGetInteger(0,CHART_SCALEFIX,true);
if(!isFixed)
{
ChartSetInteger(0,CHART_SCALEFIX,true);
}
else
{
ChartSetInteger(0,CHART_SCALEFIX,false);
}
}
break;
case KEY_P:
{
bool isFixed=ChartGetInteger(0,CHART_SHOW_PRICE_SCALE,true);
if(!isFixed)
{
ChartSetInteger(0,CHART_SHOW_PRICE_SCALE,true);
}
else
{
ChartSetInteger(0,CHART_SHOW_PRICE_SCALE,false);
}
}
break;
}
ChartRedraw();
}
}
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll();
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
---