//+------------------------------------------------------------------+ //| CurrencyChart.mq4 | //| Strator | //| k-v-p@yandex.ru | //+------------------------------------------------------------------+ #property copyright "Strator" #property link "k-v-p@yandex.ru" //---- #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Green //---- input parameters extern string symbol = "EURUSD"; extern int TimeFrame = 0; string TF; //---- buffers double buffer_close[]; //---- variables bool exit = false; //+------------------------------------------------------------------+ //| Ïåðåâîä ñòðîêè â âåðõíèé ðåãèñòð | //+------------------------------------------------------------------+ string StringUCase(string str) { for(int i = 0; i < StringLen(str); i++) { int char = StringGetChar(str, i); if((char >= 97 && char <= 122) || (char >= 224 && char <= 255)) char = char - 32; str = StringSetChar(str, i, char); } return(str); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { switch(TimeFrame) { case 1 : TF="M1"; break; case 5 : TF="M5"; break; case 15 : TF="M15"; break; case 30 : TF="M30"; break; case 60 : TF="H1"; break; case 240 : TF="H4"; break; case 1440 : TF="D1"; break; case 10080 : TF="W1"; break; case 43200 : TF="MN1"; break; default : TF="Current"; } symbol = StringUCase(symbol); MarketInfo(symbol, MODE_TIME); int last_error = GetLastError(); if(last_error == 4106) //ERR_UNKNOWN_SYMBOL { string msg = "Íåèçâåñòíûé ñèìâîë:" + symbol; IndicatorShortName(msg); Print(msg); exit = true; } else { IndicatorShortName(symbol + ",M" + TimeFrame); SetIndexBuffer(0, buffer_close); SetIndexStyle(0, DRAW_LINE); IndicatorDigits(MarketInfo(symbol, MODE_DIGITS)); } return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(exit) return(0); int counted_bars = Bars - IndicatorCounted() - 1; for(int i = 0; i < counted_bars; i++) { datetime time_bar = Time[i]; int bar_no = iBarShift(symbol, TimeFrame, time_bar, false); buffer_close[i] = iClose(symbol, TimeFrame, bar_no); } SetLevelStyle(DRAW_LINE, 1, DarkGray); SetLevelValue(0, MarketInfo(symbol, MODE_BID)); return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Series array that contains close prices for each bar
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: