Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 426
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброго времени суток уважаемые форумчане.
Помогите решить следующую задачу:
Нужно в мт4 с помощью mql получить данные тех индикатора,например МА5 с таймфреймом 1 d, на момент 14.30 позавчерашнего дня.
т.е. если бы я позавчера в 14.30 запустил скрипт с iMA, то вопросов бы не возникло, но как сегодня их получить.
хотя бы подскажите куда копать
Это очень просто. Для расчета iMA нужно задать 7 параметров. Первый параметр, имя символа, очевиден. В качестве второго, таймфрейм, задайте М1. Третий параметр - период - задайте во столько раз больше требуемого Вам, во сколько день больше минуты. Четвертый параметр - сдвиг = 0. Следующие два параметра - метод усреднения и тип цены - Вы знаете. Последний параметр - номер бара - вычислите, зная требуемое Вам время. Вот и все! Перепроверьте это, сделав расчеты для таймфреймов М5 и М15. Может быть даже для М30.
Это очень просто. Для расчета iMA нужно задать 7 параметров. Первый параметр, имя символа, очевиден. В качестве второго, таймфрейм, задайте М1. Третий параметр - период - задайте во столько раз больше требуемого Вам, во сколько день больше минуты. Четвертый параметр - сдвиг = 0. Следующие два параметра - метод усреднения и тип цены - Вы знаете. Последний параметр - номер бара - вычислите, зная требуемое Вам время. Вот и все! Перепроверьте это, сделав расчеты для таймфреймов М5 и М15. Может быть даже для М30.
К сожалению это как раз то и не просто. Во всяком случае мне это не очевидно. Если мы возьмем МА5, таймфрейм 1440 (1 день), выберем бар номер 2 (позавчерашний день), то мы получим показатель МА5 для открытия или закрытия последней свечи, но не момент 14.30. А нужно указать именно его. Еще раз. Тех индикаторы вычисляются из нескольких свечей открываются они в 00.00 (если мы говорим о дне), закрываются 23.59, но последняя свеча (если это 0 бар), не закрыта, а берется для ее вычисления последняя цена 0 бара. Если вы вычисляете МА находясь на нулевом баре, то сложностей не возникнет, а если это не нулевой бар, а середина предыдущего дня, тогда что делать? Как вычеслить для середины предыдущего дня МА с ТФ 1440?
Огромное спасибо! Буду приступать к написанию кода :) О результатах отпишусь.
К сожалению это как раз то и не просто. Во всяком случае мне это не очевидно. Если мы возьмем МА5, таймфрейм 1440 (1 день), выберем бар номер 2 (позавчерашний день), то мы получим показатель МА5 для открытия или закрытия последней свечи, но не момент 14.30. А нужно указать именно его. Еще раз. Тех индикаторы вычисляются из нескольких свечей открываются они в 00.00 (если мы говорим о дне), закрываются 23.59, но последняя свеча (если это 0 бар), не закрыта, а берется для ее вычисления последняя цена 0 бара. Если вы вычисляете МА находясь на нулевом баре, то сложностей не возникнет, а если это не нулевой бар, а середина предыдущего дня, тогда что делать? Как вычеслить для середины предыдущего дня МА с ТФ 1440?
Все просто
Как то так
Есть идеи как организовать отправку сигналов по скрипту?
нужна помощь знащих
короч проблема вот в чем, есть исходник советника раньше в 2014 году компилировался и все было хорошо
решил на днях запилить новый счет и скомпилировать советника на него, а оно не хотит компилироваться
выдает 23 вот такие ошибки ( } )
куда копать и что изменилось с 2014 года ?
К сожалению это как раз то и не просто. Во всяком случае мне это не очевидно. Если мы возьмем МА5, таймфрейм 1440 (1 день), выберем бар номер 2 (позавчерашний день), то мы получим показатель МА5 для открытия или закрытия последней свечи, но не момент 14.30. А нужно указать именно его. Еще раз. Тех индикаторы вычисляются из нескольких свечей открываются они в 00.00 (если мы говорим о дне), закрываются 23.59, но последняя свеча (если это 0 бар), не закрыта, а берется для ее вычисления последняя цена 0 бара. Если вы вычисляете МА находясь на нулевом баре, то сложностей не возникнет, а если это не нулевой бар, а середина предыдущего дня, тогда что делать? Как вычеслить для середины предыдущего дня МА с ТФ 1440?
Здравствуйте. Спасибо STARIJ и Artyom Trishkin за прошлую консультацию. Но так как я всё ещё остаюсь новичком, возникают другие вопросы. Например, следующий. Для открытия в одном баре только одной позиции я использую следующую функцию:
И сразу же возникает вопрос: зачем при каждом обращении к функции статическую переменную отправлять "в начало времён" ? Ведь она при первом обращении и так самостоятельно принимает нулевое значение, а потом пусть себе хранит значение прошлого нулевого бара до следующего обращения, а не сбрасывается до нуля. Наверное можно было бы ещё упростить эту и так простую функцию. Правда сам я опасаюсь её испортить. И ещё вопрос по этой же функции: а не может такого случиться, что выражение New_Time=Time[0]; не поймает ту миллисекунду, когда открылся новый бар? что тогда произойдет? Спасибо.
Здравствуйте. Спасибо STARIJ и за прошлую консультацию. Но так как я всё ещё остаюсь новичком, возникают другие вопросы. Например, следующий. Для открытия в одном баре только одной позиции я использую следующую функцию:
И сразу же возникает вопрос: зачем при каждом обращении к функции статическую переменную отправлять "в начало времён" ? Ведь она при первом обращении и так самостоятельно принимает нулевое значение, а потом пусть себе хранит значение прошлого нулевого бара до следующего обращения, а не сбрасывается до нуля. Наверное можно было бы ещё упростить эту и так простую функцию. Правда сам я опасаюсь её испортить. И ещё вопрос по этой же функции: а не может такого случиться, что выражение New_Time=Time[0]; не поймает ту миллисекунду, когда открылся новый бар? что тогда произойдет? Спасибо.
Здравствуйте. Спасибо STARIJ и Artyom Trishkin за прошлую консультацию. Но так как я всё ещё остаюсь новичком, возникают другие вопросы. Например, следующий. Для открытия в одном баре только одной позиции я использую следующую функцию:
И сразу же возникает вопрос: зачем при каждом обращении к функции статическую переменную отправлять "в начало времён" ? Ведь она при первом обращении и так самостоятельно принимает нулевое значение, а потом пусть себе хранит значение прошлого нулевого бара до следующего обращения, а не сбрасывается до нуля. Наверное можно было бы ещё упростить эту и так простую функцию. Правда сам я опасаюсь её испортить. И ещё вопрос по этой же функции: а не может такого случиться, что выражение New_Time=Time[0]; не поймает ту миллисекунду, когда открылся новый бар? что тогда произойдет? Спасибо.
По второму вопросу,
если первый тик не поймает,поймает второй.