oleguitar Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 Искать все отложки как-то не подумал)bool пишу, чтобы эдитор не выдавал предупреждения типа return value of "OrderSelect" should be checkedСмотрел урок по переносу на новые билды, но писать else Print"" (что-то такое) как-то не очень удобно.Хотя, если эти предупреждения, думаю, можно игнорировать просто Ссылка на сообщение Поделиться на другие сайты More sharing options...
chistaia-rodina Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 oleguitar, ну теперь понятно для чего вам нужны булевые переменные, а то когда просматриваешь код, интуитивно начинаешь искать к чему они ещё привязаны и в каких зависимостях ещё участвуют, к тому же нет уверенности, что перед тобой весь код. Насколько понимаю, то предупреждения игнорировать нельзя, потому как при компиляции не произойдёт сборка файла ex4. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 Насколько понимаю, то предупреждения игнорировать нельзя, потому как при компиляции не произойдёт сборка файла ex4.Предупреждения можно игнорировать. всё компилируется. неоднократно проверял. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
nixxer Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 Насколько понимаю, то предупреждения игнорировать нельзя, потому как при компиляции не произойдёт сборка файла ex4.Предупреждения можно игнорировать. всё компилируется. неоднократно проверял. Еще хороший способ добавить #property strict чтобы потенциально "слабые" места найти Ссылка на сообщение Поделиться на другие сайты More sharing options...
chistaia-rodina Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 Ну значит мне тогда показалось, просто видимо из-за того, что была попытка внести изменения в чужой код без правки предупреждений, тогда компилятор не хотел собирать код. Видимо это как бы защита авторских прав, но при этом, если скопировать полностью код и внести его в новый проект, то ни каких проблем.nixxer, а можно поподробней, куда и как его добавить, а так же что это даст в итоге? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 nixxer, а можно поподробней, куда и как его добавить, а так же что это даст в итоге?Я думаю Никсер не будет против. Почитай здесь. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
chistaia-rodina Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 0ll, то есть я правильно понимаю, #property strict нужно прописать в самом начале, за пределами специальных функций и это позволит выявить при компиляции все возможные несоответствия, которые могут возникнуть в связи с последними изменениями в MQL4? Ещё спрашивал уже, но мне так ни кто и не подсказал, в учебнике описано как-то не однозначно. Как всё же правильно объявить глобальную переменную? Вот пример из учебника, я так понял она должна быть отделена строчками, ну по сути как пользовательская функция, при этом не важно вверху или внизу, главное за пределами всех функций. Правило присвоенного типа, такое же как и с обычными переменными, в зависимости от того что нам нужно. Можно ли их тоже объявлять через запятую если нужно несколько или каждая должна иметь свой блок?//--------------------------------------------------------------------int Tick; // Глобальная переменная//-------------------------------------------------------------------- Изменено 12 сентября, 2014 пользователем chistaia-rodina Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 12 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 сентября, 2014 0ll, то есть я правильно понимаю, #property strict нужно прописать в самом начале, за пределами специальных функций и это позволит выявить при компиляции все возможные несоответствия, которые могут возникнуть в связи с последними изменениями в MQL4? Да, сов. верно.Правило присвоенного типа, такое же как и с обычными переменными, в зависимости от того что нам нужно. Можно ли их тоже объявлять через запятую если нужно несколько или каждая должна иметь свой блок?Да точно также как и с локальными, можно через запятую и с присвоением начальных значений и массивы - всё до кучи и всё работает. Отделять не нужно, главное за пределами функций (когда Вы спрашивали - думал про переменные уровня терминала, поэтому не писал). Пример из моей проги:float C, H1, L1, HF=0, LF=0, prcExt, Pw, kf_Acu, Count[]; 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 15 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 15 сентября, 2014 Привет. Сегодня первый день изучаю "язык". Сергею - БОЛЬШОЕ Спасибо!!!Писал "Martin" вслед за объяснениями, в конце получил 23!!!!! ошибки, проковырялся несколько часов и сдался. Прошу помощи у тех кто сам помнит как начинал)) в приложении картинка моего "блина". Спасибо. Martin1.png Ссылка на сообщение Поделиться на другие сайты More sharing options...
chistaia-rodina Опубликовано 15 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 15 сентября, 2014 Дмитрий_2008, ну Вы тогда хотя бы код выложите посмотреть. На вскидку, похоже проблемы с аккуратностью и внимательностью. 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 15 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 15 сентября, 2014 Да конечно!!!, я чес говоря и не рассчитывал)) Martin.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 16 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 сентября, 2014 chistaia-rodina оказался прав...Дмитрий_2008 основная ошибка - невнимательность. Редактор не считает эквивалентными названия переменных, написанных на разных регистрах. Поправил. Оставшиеся предупреждения можно игнорировать или исправить (получить или обработать возвращаемые функцией значения, например: bool res = OrderModify())Martin.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Дмитрий_2008 Опубликовано 16 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 16 сентября, 2014 Юхуууу!!! Работает!!!)))) Спасибо!!!!! буду рад быть полезным. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ruslan982 Опубликовано 18 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2014 Добрый день!Можно узнать время закрытой сделки (OrderCloseTime), а как узнать дату? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2014 А вы попробуйте вывести в Print или Alert TimeToString(OrderCloseTime()). Думаю вопросы отпадут.Формат данных datetime включает в себя дату и время. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ruslan982 Опубликовано 18 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2014 Спасибо Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 18 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2014 Всем привет! :-HПередо мной такая задача: получить все значения с индикатора фракталов за предыдущий день. То есть советник должен знать ценовые значения всех максимумов и минимумов предыдущего дня, которые были отмечены индикатором фракталов. Индикатор беру не стандартный, wlxfractals называется, но думаю, это не суть, главное , понять принцип того, как эти фракталы искать и запоминать.Или же можно находить экстремумы свечей, которые были отмечены индикатором, но для этого им, наверное, нужно присваивать какой-нибудь порядковый номер? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 18 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 18 сентября, 2014 oleguitarВ индюке скорее всего 2 буфера - с миним. и макс., там как-раз значения экстремумов. Их нужно переписать в массив типа double или float. Чтоб подсказать оптимальное решение нужно знать что Вы дальше с этим планируете делать. Искать так:- начало периода YstDay0 = iTime(NULL, PERIOD_D1, 1);- конец периода YstDay1 = iTime(NULL, PERIOD_D1, 0);- перебираешь бары на рабочем ТФ и проверяешь буфера индикатора- если буфер имеет значение, то проверяешь дату текущего бара- если попадает в рабочий период - пишем значение в массив (для этого ещё счетчик надо)- всёКстати все свечи пронумерованы Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 19 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 сентября, 2014 Цитата Чтоб подсказать оптимальное решение нужно знать что Вы дальше с этим планируете делать. Я хочу использовать эти значения в качестве уровней поддержки/сопротивления для следующего торгового дня, и в одном из условия открытия ордера проверять, находится ли цена в диапазоне такого уровня (диапазон +/- 5 пунктов, допустим, от значения цены на экстремуме свечи, которую индикатор отметил как фрактальную). Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 19 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 сентября, 2014 oleguitar Ну, я так и думал. После заполнения массива его нужно отсортировать. Тут ещё такая тонкость есть - будут моменты, когда разные фракталы почти на одном уровне - надо это как-то отсортировывать. имхо более свежий уровень надо оставлять... Тема "как торговать уровни" слишком обширна для этого раздела... Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 19 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 сентября, 2014 Цитата перебираешь бары на рабочем ТФ и проверяешь буфера индикатора не понимаю, как проверить буфер индикатора(можно ли так получить значения low последних 30 баров? или надо по-другому начинатьfor (int i =0, i{ double [ i ] = Low[ i ];} Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 19 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 сентября, 2014 не понимаю, как проверить буфер индикатора(У фрактального индюка в буфере либо "0" либо цена фрактала. т.е. если не "0" то значение буфера в массив (как-то так). Могут быть 2 буфера для верха и низа. можно ли так получить значения low последних 30 баров? или надо по-другому начинатьfor (int i =0, i{ double [ i ] = Low[ i ];} Вы массив опишите правильно (типа: double мой_массив[30]; ), потом мой_массив[ i ] = Low[ i ]; и будет работать. (только если Вам нужен лоу 0-бара) Изменено 19 сентября, 2014 пользователем 0ll Ссылка на сообщение Поделиться на другие сайты More sharing options...
oleguitar Опубликовано 19 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 сентября, 2014 В этом индикаторе два буфера : 0 и 1 - для нижних и для верхних фракталов, проблема в том, что я не знаю как записать буфер в массив и как проверить его значение, так как не совсем понимаю чем является буфер... Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 19 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 19 сентября, 2014 Буфер это тот-же массив, только он находится в памяти индюка, а мы хотим получить его значения в сове...значения этого массива следует получать через iCustom (если индюк не стандартный МТ) перебирая их в цикле, типа:- сначала находим диапазон рабочих баров СтартБар и СтопБар (вчерашний день)double МИ0, МИ1, массив[100];int и, м=0;фор (и = СтартБар; и МИ0 = iCustom(..., и, ... , 0); МИ1 = iCustom(..., и, ... , 1); если (МИ0 > 0 ) { массив[м] = МИ0; м++; } если (МИ1 > 0 ) { массив[м] = МИ1; м++; }}Можно обрезать хвост массива по значению м. (через ArrayResize)Потом сортировка ArraySort(массив);всё. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Salov Nikolay Опубликовано 20 сентября, 2014 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 20 сентября, 2014 Ребят, подскажите как реализовать смещение по GMT, которое в дальнейшем во внешних параметрах задаётся. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти