Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1450

 
Всем привет! Вопрос вот какой:
Делаю сеточника с мартином, но не по очереди, а общую(открываются все ордера и сетки по мере сигналов, а не по очереди)! Столкнулась с проблемой....когда срабатывает один ордер или его сетка, то все отрабатывает отлично, а вот когда открывается ордер или его сетка и потом в это же время(или позже) открывается другой ордер и его сетка, то мартин начинает продолжать первую сетку! В чем может быть проблема?
 
Artyom Trishkin:

Хорошо. Но смогу только в свободное время поглядеть - работа, дом, семья, кот и дети/внуки... Тёща ещё, да...

Да, котики ...

У меня сегодня куда-то ушла делать приплод.

Шотландочка-красавица, любительница спать на спине :)

 
Artyom Trishkin:

Ну код-то погляди - его Виталий прямо выложил же

К коду Виталия мой вопрос никакого отношения не имел. Теперь я разобрался сам… оказалось, что код в библиотеке сам контролирует глубину пересчёта. То-есть при первом запуске пересчитывается весь буфер, а при последующих только нужное количество… Именно это я и хотел от тебя услышать. Такой вот я ленивый. Проще спросить, чем самому разбираться… Но иногда приходится…………

 
Alexey Viktorov:

К коду Виталия мой вопрос никакого отношения не имел. Теперь я разобрался сам… оказалось, что код в библиотеке сам контролирует глубину пересчёта. То-есть при первом запуске пересчитывается весь буфер, а при последующих только нужное количество… Именно это я и хотел от тебя услышать. Такой вот я ленивый. Проще спросить, чем самому разбираться… Но иногда приходится…………

Так в коде Виталия была продублирована эта функция из СБ, о которой ты спрашивал - а там прямо всё на виду - достаточно одного взгляда чтобы понять ответ на твой вопрос.

 
Artyom Trishkin:

Так в коде Виталия была продублирована эта функция из СБ, о которой ты спрашивал - а там прямо всё на виду - достаточно одного взгляда чтобы понять ответ на твой вопрос.

Увидел какая жесть в оригинале?

 
Vitaly Muzichenko:

Увидел какая жесть в оригинале?

Та не сравнивал особо. Там по-моему в обоих файлах жесть. А логика совсем не понятна  - когда в условии пусто и заполнение буфера пустым значением вынесено за скобки условия. Ну.., моё дело сделать под пятёрку. А уж как оно там работает - пусть так, как есть

 
Artyom Trishkin:

Та не сравнивал особо. Там по-моему в обоих файлах жесть. А логика совсем не понятна  - когда в условии пусто и заполнение буфера пустым значением вынесено за скобки условия. Ну.., моё дело сделать под пятёрку. А уж как оно там работает - пусть так, как есть

Моя задача понять именно на этом коде, как заменить iMAOnArray

То есть, как можно меньше вносить изменений в существующий код и сделать на нём
 
Artyom Trishkin:

Так в коде Виталия была продублирована эта функция из СБ, о которой ты спрашивал - а там прямо всё на виду - достаточно одного взгляда чтобы понять ответ на твой вопрос.

Ну это ты хватанул… Я так не умею. Мне надо досконально весь код пройти с пониманием.

 
Vitaly Muzichenko:

Моя задача понять именно на этом коде, как заменить iMAOnArray

То есть, как можно меньше вносить изменений в существующий код и сделать на нём

Вот пытаясь разобраться в этом вопросе, я вижу такую ситуёвину.

В твоём коде написано так

buf_3[i] = iMAOnArray(Array_1, 0, per, 0, MODE_SMMA, i);

а в документации

double  iMAOnArray( 
   double       array[],          // массив 
   int          total,            // количество элементов 
   int          ma_period,        // период 
   int          ma_shift,         // сдвиг средней 
   int          ma_method,        // метод усреднения 
   int          shift             // сдвиг 
   );
iMAOnArray

total

[in]  Количество элементов для вычисления. 0 означает все элементы массива.

Получается так, что при каждом вызове функции пересчитывается весь массив полностью. Именно об этом я и спрашивал Артёма… А оказалось, что в mql5 всё предусмотрено для ускорения, а в mql4 самому надо заботиться об этом. А как это правильно организовать нигде информации не вижу.


Что касается переделки с минимальным внесением изменений, то тут ты ошибаешься. Проще взять алгоритм и сделать заново.

 

Добрый день, пожалуйста помогите понять...

   HighForFutureSession=MathMax(high[rates_total-1],high[rates_total-2]);

Ф-ия MathMax возвращает максимальное из двух числовых значений, т.е. получается возвращает из двух одинаковых массивов  high[rates_total] с разницой  в -1 и -2 бара максимальное числовое значение? 

Простыми словами : в первом массиве  12345 а во втором 1234 то ф-ия вернет 5?

Причина обращения: