Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день.
Цвет фона графика.
Код такой не работает корректно.
Функция Печать корректно выводится по таймеру.
А график меняет цвет только по тику.
Должна быть какая-то функция, которая обновляет график. Видимо она обновляется только при приходе тика.
Можете подсказать?
Код представлен ниже ..
//+------------------------------------------------------------------+
//| TimerColorGraph.mq4 |
//| Copyright 2018, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
EventSetMillisecondTimer(1000);
return(INIT_SUCCEEDED);
}
int OnDeinit()
{
////--- indicator buffers mapping
EventKillTimer();
return 0;
}
//+------------------------------------------------------------------+
//| 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[])
{
//---
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
color currentColor;
currentColor = ChartBackColorGet(0);
Print("Я тик с таймера до" + currentColor);
if(currentColor == clrRed){
ChartBackColorSet(clrBlack,0);
//Sleep(200);
return;
}
if(currentColor == clrBlack){
ChartBackColorSet(clrRed,0);
//Sleep(200);
return;
}
Print("Я тик с таймера после" + currentColor);
}
void OnTick () {
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Функция получает цвет фона графика. |
//+------------------------------------------------------------------+
color ChartBackColorGet(const long chart_ID=0)
{
//--- подготовим переменную для получения цвета
long result=clrNONE;
//--- сбросим значение ошибки
ResetLastError();
//--- получим цвет фона графика
if(!ChartGetInteger(chart_ID,CHART_COLOR_BACKGROUND,0,result))
{
//--- выведем сообщение об ошибке в журнал "Эксперты"
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- вернем значение свойства графика
return((color)result);
}
//+------------------------------------------------------------------+
//| Функция устанавливает цвет фона графика. |
//+------------------------------------------------------------------+
bool ChartBackColorSet(const color clr,const long chart_ID=0)
{
//--- сбросим значение ошибки
ResetLastError();
//--- установим цвет фона графика
if(!ChartSetInteger(chart_ID,CHART_COLOR_BACKGROUND,clr))
{
//--- выведем сообщение об ошибке в журнал "Эксперты"
Print(__FUNCTION__+", Error Code = ",GetLastError());
return(false);
}
//--- успешное выполнение
return(true);
}