Ошибки, баги, вопросы - страница 1937

 
Renat Fatkhullin:
Извините, но у меня совершенно нет времени заниматься обучением программированию каждого конкретного новичка. Особенно, когда видно, что человек даже азов понимания программирования не прошел и он спрашивает банальные вещи.


Но направление я покажу:

  1. Документация по MQL5
  2. Кодобаза
  3. Статьи
  4. Форум (не в режиме "напишите за меня, почему вы меня не учите и не делаете мою работу?")
  5. Фриланс (тут могут написать правильно)
  6. Самостоятельная работа с вдумчивым анализом "почему эта обертка должна тормозить и тратить ресурсы, может переписать оптимально?"
  7. Использование профайлера, который показывает реальное потребление ресурсов в каждой строке кода

 

Спасибо Ренат!

Я в Вас не ошибся!

Предлагаю для получения права загружать ME и общаться с Вами по существу предоставлять через ЛК диплом о высшем образовании по специальности "Программист".

 
Alexey Viktorov:

Вот и у меня никакого желания общаться в таком ключе. Вместо попытки понять что сказано, разобраться что получится, выкатываются какие-то неимоверные возражения.

 

Зачем Вы фантазируете? Я понял Вашу идею, и подтвердил, что она рабочая, и даст эффект, если запрос будет происходить один раз и если известно, сколько понадобиться баров для работы советника.

Или Вы как то по другому предлагали использовать структуру? Тогда прошу пояснить, а не обижаться!

 
Aleksey Vyazmikin:

Предлагаю для получения права загружать ME и общаться с Вами по существу предоставлять через ЛК диплом о высшем образовании по специальности "Программист".

Хе.. Диплом о высшем образовании - не гарант ничего. 

По существу, могу предложить Вам такой вариант (правильность кода не проверял, исключительно для тестера, текущий символ, текущий период):

double iClose(int index)
  {
   double arr[ 1 ];
   return( ( CopyClose(_Symbol,_Period,index,1,arr) == 1 )? arr[ 0 ] : WRONG_VALUE );
  }

По аналогии можете сделать и остальные функции. 

 
Renat Fatkhullin:
Извините, но у меня совершенно нет времени заниматься обучением программированию каждого конкретного новичка. Особенно, когда видно, что человек даже азов понимания программирования не прошел и он спрашивает банальные вещи.


Но направление я покажу:

  1. Документация по MQL5
  2. Кодобаза
  3. Статьи
  4. Форум (не в режиме "напишите за меня, почему вы меня не учите и не делаете мою работу?")
  5. Фриланс (тут могут написать правильно)
  6. Самостоятельная работа с вдумчивым анализом "почему эта обертка должна тормозить и тратить ресурсы, может переписать оптимально?"
  7. Использование профайлера, который показывает реальное потребление ресурсов в каждой строке кода

Давайте, может, заведем ветку по лучшим (наиболее эффективным) практикам программирования непосредственно под MT5? Была, например, ветка по реализации iBarShift. Другие нюансы тоже можно сообща улучшить. Люди, в общем-то, не программировать учиться здесь хотят, а быстро и удобно сварганить эксперт - извините, но это так. И эксперт, разумеется не должен тормозить или падать. Если бы можно было, как готовые кирпичи, собрать вместе все "как надо", было бы здорово. Потому что "как не надо" везде много всяких разных. Причем, не всегда ведь очевидно, что это "как не надо". А может "как надо"?

Документация довольно минималистская по многим аспектам.

Кодебаза - это большая куча, которую надо со смыслом и расстановкой перелопачивать днями, чтобы может быть найти правильный код.

Статьи - как правило, авторские и узкоспециализированные, более в торговлю, чем программирование (все-таки направление ресурса нужно учитывать), а те, что про программирование - в основном про рюшечки.

Форум - это здесь. Здесь задают вопрос как надо, и мы посылаем... сюда же.

Фриланс - не гарантия лучших практик и не обучает.

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

 
Aleksey Vyazmikin:

 

Предлагаю для получения права загружать ME и общаться с Вами по существу предоставлять через ЛК диплом о высшем образовании по специальности "Программист".

Для общения диплома не надо, а вот для заявлений "И где хваленая скорость MT5?" он обязателен.

Вам несколько раз указывали на ваши ошибки, но вместо этого вы продолжаете гнуть линию "я имею право не знать, учите меня семеро!".
 
Alexey Kozitsyn:

Хе.. Диплом о высшем образовании - не гарант ничего. 

По существу, могу предложить Вам такой вариант (правильность кода не проверял, исключительно для тестера, текущий символ, текущий период):

По аналогии можете сделать и остальные функции. 

 

Спасибо! Попробую сделать по Вашему рецепту.

Про диплом - согласен, однако есть отрасли где без него нельзя работать - к примеру, вести дела в суде в качестве представителя по делам КАС РФ. Однако, таким образом разработчики смогут не тратить время на трейдеров, а уделить внимание программистам, и как продуктив, быть на более высоком уровне в рейтинге языков программирования.

 
Stanislav Korotky:

Давайте, может, заведем ветку по лучшим (наиболее эффективным) практикам программирования непосредственно под MT5? Была, например, ветка по реализации iBarShift. Другие нюансы тоже можно сообща улучшить. Люди, в общем-то, не программировать учиться здесь хотят, а быстро и удобно сварганить эксперт - извините, но это так. И эксперт, разумеется не должен тормозить или падать. Если бы можно было, как готовые кирпичи, собрать вместе все "как надо", было бы здорово. Потому что "как не надо" везде много всяких разных. Причем, не всегда ведь очевидно, что это "как не надо". А может "как надо"?

Документация довольно минималистская по многим аспектам.

Кодебаза - это большая куча, которую надо со смыслом и расстановкой перелопачивать днями, чтобы может быть найти правильный код.

Статьи - как правило, авторские и узкоспециализированные, более в торговлю, чем программирование (все-таки направление ресурса нужно учитывать), а те, что про программирование - в основном про рюшечки.

Форум - это здесь. Здесь задают вопрос как надо, и мы посылаем... сюда же.

Фриланс - не гарантия лучших практик и не обучает.

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

 

Полностью с Вами согласен!

Меня упрекают, что я делаю "не так", и посылают туда, где я этому научился...

 
Renat Fatkhullin:

Для общения диплома не надо, а вот для заявлений "И где хваленая скорость MT5?" он обязателен.

Вам несколько раз указывали на ваши ошибки, но вместо этого вы продолжаете гнуть линию "я имею право не знать, учите меня семеро!".

 

Эмоции никто не отменял - я о них сообщил в надежде на помощь!

Я хочу оказаться не правым, готов изменить код, но хочу верить, что всё будет не напрасно!

Не согласен с Вами, что я утверждаю "я имею право не знать, учите меня семеро!" - в части возложения обязанности обучать - лично от Вас ожидал помощи, как от специалиста, и конкретного совета как надо делать.

Метод каждого автора я рассматриваю и пробую, что следует из этой ветки и за что им "спасибо!".


 
Aleksey Vyazmikin:

Вам уже советовали готовое решение — https://www.mql5.com/ru/code/18305

Судя по вашим требованиям:

У меня в коде есть циклы, объем вычислений предварительно может быть неизвестен.

, оно вам подойдет.

Высокопроизводительная библиотека iTimeSeries
Высокопроизводительная библиотека iTimeSeries
  • голосов: 20
  • 2017.05.25
  • nicholishen
  • www.mql5.com
Эта библиотека предоставляет молниеносный доступ к таймсериям для реализации привычных методов MQL4 (например, iBarShift) в чувствительных к задержкам приложениях на MQL5.
 
Alexey Kozitsyn:
 

По существу, могу предложить Вам такой вариант (правильность кода не проверял, исключительно для тестера, текущий символ, текущий период):

По аналогии можете сделать и остальные функции. 

 Опробывал Ваш вариант - в пределах погрешности изменение

Было:
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized in 0:00:00.032. Test passed in 0:02:52.037 (including ticks preprocessing 0:00:00.031).
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: total time from login to stop testing 0:02:52.069 (including 0:00:00.032 for history data synchronization)
2017.07.21 17:23:20.046 Core 1 351 Mb memory used including 32 Mb of history data, 64 Mb of tick data

Стало с Вашим кодом
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:02:58.013 (including ticks preprocessing 0:00:00.031).
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: total time from login to stop testing 0:02:58.044 (including 0:00:00.031 for history data synchronization)
2017.07.21 17:27:37.393 Core 1 352 Mb memory used including 32 Mb of history data, 64 Mb of tick data

MT4
2017.07.21 17:27:57.070 RUBRUR,M1: 225314 tick events (35701 bars, 231783 bar states) processed in 0:00:04.306 (total time 0:00:11.357)

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