Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 113
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть несколько способов получить текущие цены:
1. Для любого символа: если хотите получить гарантировано текущие цены - перед их использованием вызывайте функцию SymbolInfoDouble() c нужными идентификаторами.
2. Для текущего символа также можно получить текущие цены через предопределенные переменные Bid и Ask. Вот как раз они могут устареть, поэтому если долго выполняется функция OnTick() - то их следует обновить посредством RefreshRates().
"possible loss of data due to type conversion"
Как побороть данное предупреждение?
Предупреждение компилятора:
"possible loss of data due to type conversion"
Как побороть данное предупреждение?
Нужно точно знать типы возвращаемых функциями значений и использовать явное приведение. https://www.mql5.com/ru/docs/basis/types/casting
Шаблон у вас не полный - вы скорее всего не задали в мастере буферы индикатора, в которые будут записываться посчитанные данные.
Но основной принцип для большинства индикаторов таков:
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
if(rates_total<1) return(0); // проверка достаточности данных для расчёта индикатора, если не достаточно - выходим
// если для расчёта требуются некое количество баров слева от индекса цикла, ...
// ... то проверять нужно это количество, а не 1
//--- Действия для полного перерасчёта индикатора
int limit=rates_total-prev_calculated; // количество посчитанных уже баров
if(limit>1) { // если количество больше 1, значит имеем новые данные, и нужно полностью пересчитать индикатор
limit=rates_total-1; // задаём количество требуемых для расчёта баров равным количеству баров в истории,
// если для расчёта требуются некое количество баров слева от индекса цикла, ...
// ... то это количество тоже нужно вычесть из rates_total чтобы не выйти за пределы массива
// так же тут нужно при необходимости произвести инициализацию буферов индикатора
}
//--- Основной цикл индикатора
for(int i=limit; i>=0; i--) {
// тут выполняем нужные расчёты и записываем их результат в нужные буферы, например:
ExtMapBuffer[i]=(open[i]+high[i]+low[i]+close[i])/4.0; // Выведем на график среднюю цену каждой свечи (OHLC/4.0)
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Артем, в компиляторе выдало ошибку: 'ExtMapBuffer' - undeclared identifier
Именно потому я просто вписал сам этот буфер. Вам же нужно создать заново шаблон, но подойти к этому простейшему действу всё же более ответственно, и задаться вопросом - "а о чём же меня спрашивает мастер создания индикатора, и чего ж ему нужно?", почитать что он там у вас просит, а не просто нажимать кнопки "далее"
здравствуйте! где-то месяца четыре назад стал изучать MQL4 по учебнику Ковалёва. Плюс к ним есть видосы . Смотрю видио ,изучаю учебник,повторяю коды ,которые используются там. конечно по теории много чего узнал .но вот писать коды самостоятельно не могу. даже есть идеи, алгоритм примерно знаю. всё изучаю досконально.может я спешу? Я понимаю что это очень серьёзное дело и для его освоения надо время. но я точно знаю надо практика. надо простые задачки и писать их и чтоб кто то их проверял например вы тогда я смогу сдвинуться! ещё проблема в том что произошло обновление, книга и видосы до обновления, даже повторяю за книгой код , компилирую , выдаёт ошибки,смотрю как баран на новые ворота...... общем вот такая печалька!
Прочитайте документацию на разок. Учебник местами устарел. Документация с этим поможет. По поводу задач - решайте те же самые задачи, что описаны в учебнике. Прочитали задачу, посмотрели решение, повторили. И так пока не начнет получаться. Лучше брать задачи максимально приближенные к тем, что хотите научиться реализовывать сами.
Все, конечно, ИМХО.
у меня все нормально компилируется
Ок, а есть желание объяснить почему не различаются такие объекты?
если заменить тип объекта то свойства схлопнутся с 2 метками или трендлайнами
Прочитайте документацию на разок. Учебник местами устарел. Документация с этим поможет. По поводу задач - решайте те же самые задачи, что описаны в учебнике. Прочитали задачу, посмотрели решение, повторили. И так пока не начнет получаться. Лучше брать задачи максимально приближенные к тем, что хотите научиться реализовывать сами.
Все, конечно, ИМХО.
спасибо!
Ок, а есть желание объяснить почему не различаются такие объекты?
если заменить тип объекта то свойства схлопнутся с 2 метками или трендлайнами