Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Получается, что при создании объекта, приписывается значение "_H", _L",.
Ну да думать надо, согласен. А пью я очень не много.
Со временем думаю будут получаться лучше. Спасибо.
objName+"_H",
objName+"_L",
Подскажите по какой-то причине при изменении параметра indicator_chart_window на indicator_separate_window картинка основного окна не отображается в под окне.
Подскажите пожалуйста Есть какая то ошибка. Что нужно изменить, чтобы ромбик и крестик рисовались над самим баром, а не на нулевом баре. (на первом баре каждого месяца).
Спасибо.
//+------------------------------------------------------------------+
#property strict
#property indicator_chart_window
//--- Внешние Глобальные переменные
extern int barsToProcess = 5; //--- Кол-во отображаемых периодов (линий)
//--- Глобальные переменные
string Name_Obj; //--- Имя Элементов
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
double Buf_High[];
double Buf_Low[];
MqlDateTime mqlDateTime;
MqlRates mqlRates[1];
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,Buf_High);
SetIndexStyle (0,DRAW_ARROW,0,0);
SetIndexArrow (0,116);
SetIndexBuffer(1,Buf_Low);
SetIndexStyle (1,DRAW_ARROW,0,0);
SetIndexArrow (0,116);
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
int i;
for (i=0; i<Bars; i++) //--- Выбираем все установленные объекты
{
ObjectDelete(Name_Obj + " High" + DoubleToStr(i,0)); //--- Удаляем все объекты
ObjectDelete(Name_Obj + " Low" + DoubleToStr(i,0)); //--- Удаляем все объекты
}
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(int i = 0; i < limit; i ++)
{
//+------------------------ При выборе кол-ва линий отобразим их ко-во------------------------+
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
//+------------------------ Рисуем линии -----------------------------------------------------+
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),PERIOD_MN1,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
CopyRates(_Symbol, PERIOD_W1, t_Line, 1, mqlRates);
{
Buf_High[i] = mqlRates[i].high;
Buf_Low[i] = mqlRates[i].low;
//+------------------------ Рисуем Объекты -----------------------------------------------------+
//--- Строим линию по Хай
ObjectCreate (0,Name_Obj + " High" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].high,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].high);
ObjectSetInteger(0,Name_Obj + " High" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);
//--- Строим линию по Лоу
ObjectCreate (0,Name_Obj + " Low" + DoubleToStr(i,0), OBJ_TREND, 0,t_Line, mqlRates[0].low,t_Line+PeriodSeconds(PERIOD_MN1),mqlRates[0].low);
ObjectSetInteger(0,Name_Obj + " Low" + DoubleToStr(i,0), OBJPROP_RAY_RIGHT, false);
}
i++;
}
}
}
return(0);
}
Подскажите пожалуйста Есть какая то ошибка. Что нужно изменить, чтобы ромбик и крестик рисовались над самим баром, а не на нулевом баре. (на первом баре каждого месяца).
Спасибо.
Начните уже учить новый синтаксис, я бы понял старого динозавра, который только на старом языке писал и не имеет никакого желания переучиваться, но только начавши учиться и стоять на морально устаревшем уже несколько лет синтаксисе да с вкраплениями нового, это извращение.
Да и просто начните читать справку, чтобы хоть понимать, что и как.
Дело то понятное, но где новое где старое, Сразу как-то и не вьешь. А справочку читаю, там написано слишком умным языком.
За критику отдельное спасибо. Она помогает двигаться в нужном направлении.
Подскажите пожалуйста. Как сделать разметку по квартальным периодам?
Нужна отрисовка вертикальных линий при наступлении данных дат.
1 января. 1 апреля. 1 июля. 1 октября.
Сначала внимательно читай мои слова, затем внимательно читай документацию по языку, в частности раздел "Графические объекты".
В документации чётко сказано какие параметры должны присутствовать при создании графического объекта. Один из них ВРЕМЯ вот эти твои даты и надо всунуть в этот параметр. Для вертикальных линий цена не важна, но обязательна для функции, поэтому надо поставить 0. Никаких трудностей в этом нет.
Сначала внимательно читай мои слова, затем внимательно читай документацию по языку, в частности раздел "Графические объекты".
В документации чётко сказано какие параметры должны присутствовать при создании графического объекта. Один из них ВРЕМЯ вот эти твои даты и надо всунуть в этот параметр. Для вертикальных линий цена не важна, но обязательна для функции, поэтому надо поставить 0. Никаких трудностей в этом нет.
Не знаю как сделать. Подскажите пожалуйста. Максимальный период это месяц.
В переменную t_Line. нужно вставить значение 1й,2й,3й,4й, кв.
Не могу понять.
Буду признателен.
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(int i = 0; i < limit; i ++)
{
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),PERIOD_MN1,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
{
ObjectCreate (Name_VLine + " VLine" + DoubleToStr(i,0),OBJ_VLINE,0,t_Line,0); //--- Создаём обьект вертикальную линию
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_STYLE,2); //--- Со стилем
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_COLOR,DimGray); //--- Со цветом
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_WIDTH,0); //--- С толщиной
ObjectSet (Name_VLine + " VLine" + DoubleToStr(i,0),OBJPROP_BACK,0); //--- С типом отображения. Объект на заднем плане
}
i++;
}
}
}
return(0);
}