MakarFX Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 @MikR0ReR Не нужно так громко писать. Я Вас чем-то, обидел или оскорбил? Я не программист, просто пытаюсь изменить индикатор для удобства. Если знаете, как привязать (ANCHOR_POINT), то подскажите. Буду очень благодарен. Причем тут MQL5??? Изменено 31 января, 2020 пользователем MakarFX Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 @MakarFX ANCHOR_POINT не относится к ChartXYToTimePrice Ссылка на сообщение Поделиться на другие сайты More sharing options...
MakarFX Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 4 минуты назад, MikR0ReR сказал: ANCHOR_POINT не относится к ChartXYToTimePrice Спасибо. Значит здесь надо по другому задавать координаты ??? //--- Clicking on the fifth rectangle if(id==CHARTEVENT_OBJECT_CLICK) { string clickedChartObject=sparam; if(clickedChartObject==obj_name[5]) { string name="name_"+IntegerToString(MathRand()+100,0,' '); y=100;x=5; ChartXYToTimePrice(0,x,y,window,dt_1,price_1); ChartXYToTimePrice(0,x+250,y,window,dt_2,price_2); ChartXYToTimePrice(0,x,y+20,window,dt_3,price_3); ChannelCreate(0,name,0,dt_1,price_1,dt_2,price_2,dt_3,price_3,1,clrRed,STYLE_SOLID,1,InpBackRect,true,false,false,InpHidden_OBJ,0); } } Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 Я не телепат. Мы, не телепаты! Я тоже не программист. Я не знаю чего вам надо. Код не всегда полезен. Поэтому лучше текстом объяснить, что вы хотите и результат который в итоге получается. А код всего лишь дополнение. Причем тут MQL5??? Вы дали справку на MQL5. Ссылка на сообщение Поделиться на другие сайты More sharing options...
MakarFX Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 2 минуты назад, MikR0ReR сказал: Вы дали справку на MQL5 Это автоматическая ссылка и т.к. функция одинакова и в MQL4 и в MQL5, то и ссылка на новый справочник. 6 минут назад, MikR0ReR сказал: Поэтому лучше текстом объяснить индикатор по вызову создает в левом верхнем углу объект в данном случае (OBJ_CHANNEL) строится на основании координат преобразованных функцией (ChartXYToTimePrice) как задать условие создания объекта в другом углу? Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 @MakarFX Равноудаленный канал он же (OBJ_CHANNEL) не имеет привязки к углам. Каналу требуются 3 точки для построения, к углу это не относится. Кто писал этот код, решил высчитать эти точки через ChartXYToTimePrice. Вот ChartXYToTimePrice привязывается к углу и он жестко закреплен к верхнему левому, без изменений. В место ChartXYToTimePrice тогда используй ChartGetInteger с CHART_WIDTH_IN_PIXELS или CHART_HEIGHT_IN_PIXELS. Узнав ширину и высоту графика, не сложно будет высчитать точки построения OBJ_CHANNEL. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 1 час назад, MakarFX сказал: как задать условие создания объекта в другом углу? @MakarFX в MQL есть 2 типа графических объектов = с привязкой к графику цены (цена и время) и с привязкой к экрану ( угол и пиксели), см. OBJ_LABEL и OBJ_TEXT. Ваш канал ценовой - с привязкой к графику цены, а как иначе? он в месте с графиком уходит влево, поэтому к экрану его привязать можно, но сложно и на закрытии бара его позицию нужно корректировать - оно Вам надо? и зачем? @MikR0ReR Вам об этом и кричал несколько постов назад Ссылка на сообщение Поделиться на другие сайты More sharing options...
MakarFX Опубликовано 31 января, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 31 января, 2020 @MikR0ReR @0ll Спасибо за разъяснения и помощь. Для себя вопрос решил так Ссылка на сообщение Поделиться на другие сайты More sharing options...
mischkus Опубликовано 2 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 февраля, 2020 В 30.01.2020 в 23:39, 0ll сказал: Да, именно так - нужно опрашивать функцию, получать результат и выстраивать торговую логику. Мне кажется, что здесь работает индикатор EnvelopesOnArray, а не сам "стандартный" Envelopes, поскольку у него и параметры другие: Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 2 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 февраля, 2020 1 час назад, mischkus сказал: Мне кажется, что здесь работает индикатор EnvelopesOnArray, а не сам "стандартный" Envelopes Таки- да, Envelopes применён к массиву значений АТР. Вы на каком ТФ торгуете советником? Сглаженная граница АТР, имхо, на долгосроке может работать, на коротких ТФ со сделками внутри дня, нужно другой анализ АТР делать, с учётом внутри-суточных изменений активности. Изменено 2 февраля, 2020 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
mischkus Опубликовано 2 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 февраля, 2020 7 минут назад, 0ll сказал: Таки- да, Envelopes применён к массиву значений АТР. Вы на каком ТФ торгуете советником? Сглаженная граница АТР, имхо, на долгосроке может работать, на коротких ТФ со сделками внутри дня, нужно другой анализ АТР делать, с учётом внутри-суточных изменений активности. Вообще-то мой скальпер работает на минутках, пришлось подшаманить и ввести условия открытия сделок под 5-минутный тайм-фрейм, как написано в коде фильтра волатильности. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 2 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 февраля, 2020 13 минут назад, mischkus сказал: Вообще-то мой скальпер работает на минутках Я делал расчёт среднего значения каждой М1 свечи за 10 дней и потом график средней волатильности в течении суток. На этом можно сделать фильтр. Ссылка на сообщение Поделиться на другие сайты More sharing options...
batmanuyga Опубликовано 8 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 февраля, 2020 Приветствую. Ребята, подскажите, кто знает. Пишу советник на двухстороннем Мартине. Как корректно восстановить работу совы после разрыва Интернета или при приостановки и последующим включении совы? Где об этом инфу можно узнать? Заданы значения глобальных переменных bool. В процессе работы эти переменные меняются с true на false в зависимости от открытых ордеров в сетке. При разрыве связи с интернетом сова начнет работу со значений глобальных переменных или последних присвоенных значений ? И еще. Если Magic поставлю ноль, будет ли сова воспринимать открытые вручную ордера, как свои? Изменено 8 февраля, 2020 пользователем batmanuyga Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 8 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 8 февраля, 2020 14 часов назад, batmanuyga сказал: При разрыве связи с интернетом сова начнет работу со значений глобальных переменных или последних присвоенных значений ? В ините совы ищи свои переменные и если есть - значит был сбой, читай что в них записано. При штатном закрытии совы в деините удаляй глобальные, чтоб при старте сова чего-нибудь не задумала. Ссылка на сообщение Поделиться на другие сайты More sharing options...
molot_1 Опубликовано 16 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 февраля, 2020 Всем Привет!!! Подскажите пожалуйста, как получить сигналы индикатора. Я пытался это сделать через iCustom, но не вышло, а почему не понимаю. Profit Sunrise-.mq4 TEST-Profit Sunrise-.mq4 Изменено 16 февраля, 2020 пользователем molot_1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 16 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 февраля, 2020 @molot_1 Сам код получения данных из индикатора правильный! Загвоздка в том, что ты пытаешься использовать советник. А советник работает от прихода новых тиков. А новые тики не приходят по выходным. Выход из этой ситуации. взять инструмент который торгуется по выходным, на пример BTCUSD биткоин, ну или что там торгуется еще. Так же можно использовать тестер стратегий. Можно писать не советник, а скрипт или индикатор для тестов на реальном графике. Что мешает производить тесты в тестере стратегий, так это строки ... Они запрещают работать индикатору в тестере. Убрав их, все будет работать в тестере стратегий. if (IsTesting() == FALSE) { } 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
MikR0ReR Опубликовано 16 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 февраля, 2020 @molot_1 True. Теперь на реальном графике не будет работать. if (IsTesting() == FALSE) { удали вот эту строку } удали вот этот символ, предпоследний с низу, т.е предпоследнюю скобку. Изменено 16 февраля, 2020 пользователем MikR0ReR 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Владимир Стариков Опубликовано 18 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 февраля, 2020 Здравствуйте! Сочинил простую функцию: double bar_up(ENUM_TIMEFRAMES tf_bs_,int barometer_period_) { double res=0; //**************** for(int i=barometer_period_-1; i<=1; i--) { if(iClose(NULL,tf_bs_,i)>iOpen(NULL,tf_bs_,i)) { res+=iClose(NULL,tf_bs_,i)-iOpen(NULL,tf_bs_,i); } } return res; } От данной функции думал получать суммарный размер тел белых (закрытие выше открытия) свечей за указанный период barometer_period_, но что-то не так. Прошу помощи, если кто в силах, подскажите, что в данной функции не так... Спасибо! Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 февраля, 2020 1 час назад, Владимир Стариков сказал: подскажите, что в данной функции не так... Я скобки здесь ставлю - return (res); а так всё нормально, вызов функции ещё покажите. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Владимир Стариков Опубликовано 18 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 февраля, 2020 44 минуты назад, 0ll сказал: Я скобки здесь ставлю - return (res); а так всё нормально, вызов функции ещё покажите. Спасибо! просто я в коммент вогнал функцию (скрин). А на экране при тесте 0 (другой скрин). Поэтому и возникают сомнения. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 февраля, 2020 @Владимир Стариков в цикле условие завершения поправьте for(int i = barometer_period_-1; i >= 1; i--) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Svob Опубликовано 25 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 25 февраля, 2020 Добрый день, на днях начал сам писать советника. За основу взял советника из 3-го урока курса молодого бойца здесь на сайте. Всё получилось, теперь хочу модифицировать его под свою стратегию. Вопрос: как можно сделать, чтобы ордера открывались на закрытии текущей свечи (либо на открытии следующей) над/под средней, а не сразу при пересечении средней ценой? В справке MQL4 заблудился, ничего не смог найти. Буду благодарен, если укажете направление, где искать :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 26 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 26 февраля, 2020 23 часа назад, Svob сказал: Вопрос: как можно сделать, чтобы ордера открывались на закрытии текущей свечи (либо на открытии следующей) над/под средней, а не сразу при пересечении средней ценой? double MA_price = iMA(....); // значение МА на [1] свече doudle O_pr = Open[1]; // цена открытия 1-го бара doudle C_pr = Close[1];// цена закрытия 1-го бара if(isNewBar()) { if(C_pr > MA_price && O_pr < MA_price) OrderSend(...); // открываем в БАЙ else if(C_pr < MA_price && O_pr > MA_price) OrderSend(...); // открываем в СЕЛЛ } isNewBar()- функция проверки открытия нового бара. Можно писком найти в этой ветке Ссылка на сообщение Поделиться на другие сайты More sharing options...
usver73 Опубликовано 27 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 27 февраля, 2020 2 часа назад, Svob сказал: Спасибо! Заработало только лучше так: if(isNewBar()) { double MA_price = iMA(....); // значение МА на [1] свече doudle O_pr = Open[1]; // цена открытия 1-го бара doudle C_pr = Close[1];// цена закрытия 1-го бара if(C_pr > MA_price && O_pr < MA_price) OrderSend(...); // открываем в БАЙ else if(C_pr < MA_price && O_pr > MA_price) OrderSend(...); // открываем в СЕЛЛ } чтобы не проверять на каждом тике 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
agimat81 Опубликовано 28 февраля, 2020 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 28 февраля, 2020 Добрый день всем участникам форума! Нужен мануал по написанию кликера для МТ4 для открытия сделок на бинарных опционах! Есть неплохой индикатор, хочу автоматизировать процесс! Кто знает помогите, все получится выложу все наработки в открытом коде! Спасибо заранее!!!!! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти