Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

#4401

Решил посмотреть урок про iCustom и написал по буферам. И во время проверки обнаружил, что значения одинаковые и пустые, хотя индикатор сигналит.


Похоже надо немного переделать сам индикатор, чтобы можно было корректно брать значения из буфера. Но моих познаний в mql тут недостаточно. Задайте свой вопрос еще раз для всех. Мне по такой же проблеме помог SilverKZ.
#4402

Задаю вопрос для всех)
Ребята, кто может помочь подправить индикатор? Ситуацию описывал выше, но повторюсь. Индикатор почему-то прописывает в обоих буферах нулевые значения одновременно, но сигналит исправно. Не могу поэтому загнать его в робота. Гляньте, кому не трудно.


Добавлено: 01-05-2017 08:14:00

Вопрос вдогонку.
Есть функция OrderProfit(), но не нашел функции OrderLoss(). Как же тогда узнать убыток ордера?
Все, разобрался. Сделал без функции.

Binary_Indicator.mq45 скач.

Изменено 1 мая, 2017 пользователем well72

#4403


Задаю вопрос для всех)
Ребята, кто может помочь подправить индикатор? Ситуацию описывал выше, но повторюсь. Индикатор почему-то прописывает в обоих буферах нулевые значения одновременно, но сигналит исправно. Не могу поэтому загнать его в робота. Гляньте, кому не трудно.


Добавлено: 01-05-2017 08:14:00

Вопрос вдогонку.
Есть функция OrderProfit(), но не нашел функции OrderLoss(). Как же тогда узнать убыток ордера?
Все, разобрался. Сделал без функции.


Все он, индикатор, нормально прописывает в своих буферах и нормально сосчитывается через iCustom.
На счет второго вопроса: а как Вы думаете, если OrderProfit() имеет знак "минус" - это что?

Binary_Indicator.png

Изменено 1 мая, 2017 пользователем mobidik

#4404

У меня он по такому коду дает такие числа:

Screenshot_1.jpg
Screenshot_2.jpg

#4405


У меня он по такому коду дает такие числа:



Все верно, Вы же смотрите на первый бар - а на нем есть в данный момент сигнал от индикатора? Верно, нет, вот и дождитесь его и показания, снятые через iCustom, изменятся.
#4406

Если кому интересно, то в этом гайде довольно неплохо описано как обращаться и получать данные индикаторов без использования iCustom:

https://www.mql5.com/ru/articles/19

и сами исходники(mql4,5,cpp):



Добавлено: 01-05-2017 17:47:41

Разьясните плз, чет не совсем понял код индикатора binary_indicator:

в нем есть код расчета значений для выходных буферов

G_ibuf_76[Li_4] = Low[Li_4] - 1.3 * Ld_132;
G_ibuf_76[Li_4] - сам буфер номеру бара
Low[Li_4] - наименьшее значение по номеру бара
Ld_132 всегда 1 или 0, т.к ,берет ток true false
и того - буфер(бар)=наименьшее(бара) - 1.3 * 1 или 0
второй такой же только хай+1.3......
а что мы таким образом считаем?

19_ru.zip3 скач.

Изменено 1 мая, 2017 пользователем sniv

#4407

Привет. Добавьте пожалуйста обновление по тикам в индикатор. Проходит время и зеленые и красные линии убегают, а нужно как белые линии. Например удалил с графика, а на новом тике должна опять появиться.

-Active_VolumeProfile.mq42 скач.

#4408

Попробуйте

-Active_VolumeProfile_1.mq42 скач.

#4409

Спасибо, но не помогло. Я думал надо в функцию старт прописать, но не разобрался...
Прошла минута, белая линия перерисовалась, а другие нет...

#4410

там я наверн тупнул) не убрал со старта) а этот вродь должен

-Active_VolumeProfile_1.mq41 скач.

#4411
Не помогло. Теперь белая линия объема перекрасилась и не одна линия не перерисовывается...
#4412

Так если ничего не меняется (т.к расчитывается на данный момент), то зачем в конце расчетов
WindowRedraw()?

#4413

Думаю это для перерасчета объема, в том числе недельного и месячного.
Изначально были горизонтальные линии, для удобства я переписал в obj_trend,добавил шифт.
Линии которые показывают объем за месяц, прошлый месяц, неделю и прошлую неделю.
Работают как надо, а другие спустя время, уходят влево.

#4414

А какие уходят? (просто в redraw перерисовывается вродь то что изменилось)

#4415

Вот как есть



Вот как надо

#4416

Это на минуте у меня рисует до конца)

-Active_VolumeProfile_1_2.mq42 скач.

#4417
Не помогло, тоже самое что я делал.
Спасибо за упорство, может реализовать также через bool , как и белая линия?


Добавлено: 01-05-2017 20:10:50

До конца рисует, из за шифта. Поствьте на минуте шифт 120!
#4418

Чет я не врубаюсь, у меня на м1 - каждый бар - прорисовываются заново линии,,,,может дело не в этом??

USDCHFM1.png

#4419

Сейчас понятнее станет, скачайте ,поставьте на график и ждите 1 минуту

-+Active_VolumeProfile.mq44 скач.

#4420

В код нужно просто добавить


void OnTick(){
WindowRedraw();
}


А Time[0] считается в секундах, SHIFT и является в коде задержкой для перерисовки
#4421

Не получается добавить, а шифт нужен для свободжного пространства справа.

#4422

Ладно, а что делает

Li_120 = iBarShift(NULL, 0, iTime(NULL, PERIOD_W1, 0)) + 1; //плюс 1 зачем?
Li_124 = iBarShift(NULL, 0, iTime(NULL, PERIOD_W1, 1)); //это и есть вродь смещение на 1

#4423

Это расчет самого индикатора, а я добавил во внешние переменные шифт на ObjectCreate и сменил OBJ_HLINE на OBJ_TREND. Как я понял вот эту часть кода надо заставить обновляться по тикам

Спойлер

void f0_9(double Ad_0, color Ai_8, int Ai_12) {
string Ls_16 = "LineH" + "_" + DoubleToStr(Ad_0, Digits);
ObjectDelete(Ls_16);
ObjectCreate(Ls_16, OBJ_TREND, 0, 0, Ad_0, 0, 0, 0, 0);
ObjectSet(Ls_16, OBJPROP_TIME1, Time[0]+SHIFT);
ObjectSet(Ls_16, OBJPROP_TIME2, Time[50]);
ObjectSet(Ls_16, OBJPROP_PRICE1, Ad_0);
ObjectSet(Ls_16, OBJPROP_PRICE2, Ad_0);
ObjectSet(Ls_16, OBJPROP_COLOR, Ai_8);
ObjectSet(Ls_16, OBJPROP_STYLE, STYLE_DOT);
ObjectSet (Ls_16,OBJPROP_BACK,Draw_as_Background);
ObjectSetText(Ls_16, "Линия", 8, "Arial", Ai_8);
}




Добавлено: 02-05-2017 10:18:52

РЕШЕНО. Обновляю индикатором Symphonie Autorefresh_v3.0

Изменено 2 мая, 2017 пользователем Strong-Tezis

#4424

а что мы таким образом считаем?


Отступ от хай/лой свечи
#4425

Добрый день.
А есть ли какая нибудь функция, которая б считала кол во сигналов от индикатора?Например: восходящий тренд- 3 сигнала было, разрешается открывать ордер на Sell и в обратном направлении так же?
Проблема заключается в том, что после взятия TP или б/у, робот открывает опять ордер, но уже не в начале uptr или dntr! Помогите пожалуйста написать условие избегающее этого.

Slope_+бу.mq40 скач.

Изменено 3 мая, 2017 пользователем d1w4m3

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025