![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Посмотрите PositionSelect или PositionsTotal
Это давно решённый вопрос:
order = PositionsTotal();
Операция деления реализуется через многократное вычитание делителя В из делимого А. Это достигается сложением чисел в обратном и дополнительном кодах.
А отсюда следует что Время выполнения деления зависит от соотношения делимого и делителя и может достигать тысячи циклов каждый из которых составляет несколько машинных тактов.. Чудес увы не бывает.
Поэтому обычно делают доступ к ячейке счётчика новых баров ибо он всё равно формируется для отрисовки графика иначе приходится его по новой формировать и тратить вторично ресурсы системы. и изобретать новый велосипед.
Это относится и к получению отрисованных свечей и чтобы получить последнюю отрисованную свечу-опять приходится корячиться..
А отсюда следует что Время выполнения деления зависит от соотношения делимого и делителя и может достигать тысячи циклов каждый из которых составляет несколько машинных тактов.. Чудес увы не бывает.
Отсюда ничего не следует. Учите матчасть, если не верите. Рекомендую книжку Зубкова Сергея Владимировича "Assembler для DOS, Windows и Unix". Поверьте, что в 64-битной системе деление целого (до 64 бит) на целое (до 64 бит) отнимает ровно 1 такт 64-битного процессора
В качестве затравки вот Вам код деления целого числа любой размерности, кратной 32, на 32-битное целое (код взят из открытых источников). Этот код возьмёт тактов: 8+dword_cnt*6+2 (а мы ещё конвейеризацию не обсуждали)
Учите матчасть, если не верите. Рекомендую книжку Зубкова Сергея Владимировича "Assembler для DOS, Windows и Unix". Поверьте, что в 64-битной системе деление целого (до 64 бит) на целое (до 64 бит) отнимает ровно 1 такт 64-битного процессора
Интересно-как это новые процессоры уживаются с " "Assembler для DOS, "-баальшой вопрос.
А про учёбу- я тоже могу вам это написать.
Где ссылка на авторитет? Я так понял что вопрос этот тёмный и все в этом позапутались . Так что думаю что вы что то попутали.
Интересно-как это новые процессоры уживаются с " "Assembler для DOS, "-баальшой вопрос.
А про учёбу- я тоже могу вам это написать.
Где ссылка на авторитет? Я так понял что вопрос этот тёмный и все в этом позапутались . Так что думаю что вы что то попутали.
Вы будете долго скитаться в своём мавзолее...
Ссылки на авторитет (энциклопедия юных сурков в двух частях): http://www.intel.com/Assets/en_US/PDF/manual/253666.pdf http://www.intel.com/Assets/en_US/PDF/manual/253667.pdf
У Зубкова всё то же самое. И ассемблер на самом деле не для доса, виндовса или юникса, а для процессоров, которые хорошо уживаются и с досом, и с виндовсом, и даже с юниксом. Вы не поверите, контроллеры на интеловских процессорах программируются тем же самым ассемблером, что для виндовса и для доса
Можно вначале поставить самый большой таймфрэйм например месяцы, быстро прокрутить в начало данных и затем перейти в минуты или тот мелкий таймфрэйм который хотелось посмотреть в начале ряда и чучуть уже докрутить.
Но согласен, не мешало бы сделать более удобное масштабирование и прокрутку на мелких таймфрэймах.
Интересно-как это новые процессоры уживаются с " "Assembler для DOS, "-баальшой вопрос.
А про учёбу- я тоже могу вам это написать.
Где ссылка на авторитет? Я так понял что вопрос этот тёмный и все в этом позапутались . Так что думаю что вы что то попутали.
Да. И ещё.
Вы представленный ассемблерный код целочисленного деления смотрели? По количеству тактов вопросы есть?
Вы не поверите, контроллеры на интеловских процессорах программируются тем же самым ассемблером, что для виндовса и для доса
Естессно.. И никто не поверит.. ибо ассемблеры там разные и никто не программирует контроллеры в 16 разрядном ассемблере при разрядности процессора 64.
если есть команда деления в неком языке-то реализация этой команды может быть написана и на ассемблере но для каждого процессора это будет разный ассемблер или разный компилятор.
В разных языках возможны и разные алгоритмы реализации схожих команд.
Если мы говорим про язык МQL5 -то я не знаю как реализована в нём команда деления..хотя скорее всего её взяли из какого то стандартного языка типа Си или Cи++ . И мне совсем не нужно изучать ассемблер для того чтобы знать сколько времени выполняется та или иная команда-обычно разработчик даёт среднее время выполнения различных команд или хотя бы соотношения между временами различных команд ( поскольку процессоры могут быть различными ).
Не имея же этих данных я просто знаю что сложение.вычитание происходит быстрее чем умножение .деление и стараюсь в часто реализуемых задачах стараюсь применять первые. Если требуется выполнять расчёты-то стараюсь организовывать циклы бОльшей длительности-если мне нужно взять свечу-то зачем я буду делать это на каждом тике если можно взять 1 раз за таймфрейм?
Да. И ещё.
Вы представленный ассемблерный код целочисленного деления смотрели? По количеству тактов вопросы есть?
Вопрос есть только по вашему статусу:
1 Вы являетесь ответственным представителем разработчика и ваше сообщение о скорости выполнения целочисленного деления является официальным и ответственным-то есть гарантирующим минимальную скорость исполнения команды.
или
2 Ваше личное предположение как врЕменного модератора.