Время с долями секунды мне и не нужно. Мне нужно ловить первую секунду нового бара
тогда так
datetime NB_M1;
intOnInit()
{
}
voidOnTick()
{
if (CIsNewBar(_Symbol,PERIOD_M1)) // (1) Если появился новый бар M1
{NB_M1=TimeCurrent();}
......
}
а чтоб сохранить предыдущее значение
datetime NB_01_M1, NB_02_M1;
intOnInit()
{
}
voidOnTick()
{
if (CIsNewBar(_Symbol,PERIOD_M1)) // (1) Если появился новый бар M1
{NB_02_M1=NB_01_M1; NB_01_M1=TimeCurrent();}
......
}
Это не то, что надо! Так вы получите минимальное и максимальное значение цен инструмента, а не осциллятора. Опытному программисту стыдно давать подобные ответы на столь элементарные вопросы...
На самом деле, вам нужно получить данные осциллятора с помощью CopyBufer
int s, len;
double main[];
double min, max;
len = (int)ChartGetInteger(0, CHART_VISIBLE_BARS); // длина копируемых видимых значений
s = (int)ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR) - len + 1; // 1-й видимый бар минус длина -- начало копируемых баровif (CopyBuffer(handle, MAIN_LINE, s, len, main) != len)
return;
// handle - хэндэл осциллятора// MAIN_LINE - меняем на нужный индекс буфера осциллятора// получаем мин. и макс. значения
min = main[ArrayMinimum(main, 0, WHOLE_ARRAY)];
max = main[ArrayMaximum(main, 0, WHOLE_ARRAY)];
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
с идентификаторами CHART_PRICE_MIN и CHART_PRICE_MAX
возвращает true/false , о каком времени идет речь?
В классе хранится время предыдущего тика, а true/false возвращает не класс, а функция-член класса:
В классе хранится время предыдущего тика, а true/false возвращает не класс, а функция-член класса:
В коде который ты выложил паблик только бул!
Учитывая что класс сообщает о новом баре, то время равно iTime(все что надо,0),
соответственно предыдущее время iTime(все что надо,1)
З.Ы. Возможно ты знаешь как получить время с долями секунды...
В коде который ты выложил паблик только бул!
Учитывая что класс сообщает о новом баре, то время равно iTime(все что надо,0),
соответственно предыдущее время iTime(все что надо,1)
З.Ы. Возможно ты знаешь как получить время с долями секунды...
Обшибся немножко, сорри
Время с долями секунды мне и не нужно. Мне нужно ловить первую секунду нового бара
Обшибся немножко, сорри
Время с долями секунды мне и не нужно. Мне нужно ловить первую секунду нового бара
тогда так
а чтоб сохранить предыдущее значение
тогда так
Спасибо, MakarFX, буду пробовать)
хорошо, спасибо, я подумаю и погоняю в тестере.
подскажите пожалуйста еще по функции мартина в вашем коде.
где нужно что заменить, чтобы мартин распространялся на прибыльные ордера вместо убыточных?
подскажите пожалуйста еще по функции мартина в вашем коде.
где нужно что заменить, чтобы мартин распространялся на прибыльные ордера вместо убыточных?
Выделенное...если <0, то увеличивается лот убыточной сделки
если >0, то увеличивается лот прибыльной сделки
Вроде то, что надо. Огромное спасибо!!!
Это не то, что надо! Так вы получите минимальное и максимальное значение цен инструмента, а не осциллятора. Опытному программисту стыдно давать подобные ответы на столь элементарные вопросы...
На самом деле, вам нужно получить данные осциллятора с помощью CopyBufer
Как создать осциллятор
Или любой другой нужный вам осциллятор.
Выделенное...если <0, то увеличивается лот убыточной сделки
если >0, то увеличивается лот прибыльной сделки
спасибо большое