Конкуренты ведут себя некорректно!!!! QLUA vs MQL5

Страницы: 1
RSS
Конкуренты ведут себя некорректно!!!! QLUA vs MQL5, Мне кажется так не правильно!!! QLUA vs MQL5
 
Мне кажется так не правильно!!! QLUA vs MQL5

http://smart-lab.ru/company/metaquotes/blog/329652.php#
 
Почему ?
 
Цитата
Алексей Орешкин написал:
Почему ?
Потому что ее тесты не корректны.
 
судя по тесту, товарищи плохо знают луа.
и вообще плохо пишут тесты.
поясняю:
Очень безграмотно отображать абсолютное время вместо приведенного на одну операцию.
Теперь про тест для луа.
Берем исходный текст.
приведенное время выполнения вычисления составит 0.353 мкс , а если мы переменные определим как локальные то получаем 0.187 мкс. Т е время в 2 раза меньше. А если переменные f1..а3 поместить внутри функции то получаем 0.125. Т е как видим скорость реально в 3 раза больше если знать луа
Код
-- TestFloat
local f0=0.0
local MAX_SIZE=1000 --35000
function Start()
   local t=os.clock()
   TestFloat()
   local res=((os.clock()-t)*1000000)/(MAX_SIZE*MAX_SIZE)
   -- результы выполнения занесем сюда
   check=f0
   print("TestFloat time=" ..res.." мкс  check="..check);
end

function TestFloat()
    -- в цикле мы проходим до значение на 1 меньше, чем MAX_SIZE

local f1=123.456789
local f2=98765.12345678998765432
local f3=12345678943.98
        for i=1, MAX_SIZE do
        for j=1, MAX_SIZE do
            f0=f0+(f1/(i+1))-f2+(f3*i);
        end
    end
end
-- запускаем скрипт
Start()

 
А теперь про числа, которые написали авторы.
они указали, что скорость ЛУА в 60 раз меньше ,чем у МТ5.
В на моем компе скорость теста 0.125 мкс (см выше) т е 125 нс если на МТ5 в 60 раз быстрее, то это 2 нс.
-------------
Теперь берем тест для Intel Core i5 2500 3.30GHz на СИ умножение целых числе (это время должно быть меньше чем плав тоска) (первое что нашел в инете)
Время 12 нс.
А я исполнял тест для Луа на одноядерном компе
Таким образом, по оценке этих горе тестировщиков, МТ5 на моем компе работает в 6 раз (2 нс вместо 12) чем на процессоре Intel Core i5 2500 3.30GHz
------------------------
Резюме МТ5 обгоняет не только луа но и любой процессор  в мире.
 
Цитата
Николай Камынин написал:
ерь про числа, которые написали авторы.
они указали, что скорость ЛУА в 60 раз меньше ,чем у МТ5.
В на моем компе скорость теста 0.125 мкс (см выше) т е 125 нс если на МТ5 в 60 раз быстрее, то это 2 нс.
-------------
Теперь берем тест для Intel Core i5 2500 3.30GHz на СИ умножение целых числе (это время должно быть меньше чем плав тоска) (первое что нашел в инете)
Время 12 нс.
А я исполнял тест для Луа на одноядерном компе
Таким образом, по оценке
Вам так же следует запостить об этом на смарте
 
Цитата
Николай Камынин написал:
судя по тесту, товарищи плохо знают луа.
и вообще плохо пишут тесты.
поясняю:
Очень безграмотно отображать абсолютное время вместо приведенного на одну операцию.
Теперь про тест для луа.
Берем исходный текст.
приведенное время выполнения вычисления составит 0.353 мкс , а если мы переменные определим как локальные то получаем 0.187 мкс. Т е время в 2 раза меньше. А если переменные f1..а3 поместить внутри функции то получаем 0.125. Т е как видим скорость реально в 3 раза больше если знать луа
Код
   -- TestFloat 
 local  f0 =  0.0 
 local  MAX_SIZE =  1000   --35000 
 function   Start ()
    local  t =  os.clock ()
   TestFloat()
    local  res = (( os.clock () - t) *  1000000 )/(MAX_SIZE * MAX_SIZE)
    -- результы выполнения занесем сюда 
   check = f0
    print ( "TestFloat time="   .. res .. " мкс  check = " .. check);
 end 

 function   TestFloat ()
     -- в цикле мы проходим до значение на 1 меньше, чем MAX_SIZE 

 local  f1 =  123.456789 
 local  f2 =  98765.12345678998765432 
 local  f3 =  12345678943.98 
         for  i =  1 , MAX_SIZE  do 
         for  j =  1 , MAX_SIZE  do 
            f0 = f0 + (f1/(i +  1 )) - f2 + (f3 * i);
         end 
     end 
 end 
 -- запускаем скрипт 
Start()

  
Не лезу разбираться в код, но если для луа изменить место определения переменных то и для мкл5 тоже. Каков тогда результат ? Во вторых этот пост надо размещать не здесь а там, чтобы была реакция метаквотов,
Ну а в третьих как ни крути а мкл5 изначально встроен в терминал и там всё взаимосвязано, в отличии от луа, которая просто прикреплена сбоку и тут уж как ни крути а это хуже. Поэтому и сам процесс разработки и отладки и всё остальное на порядок удобнее, и это тоже бесспорно а если взять тестер, который в квике не появится никогда в жизни, то становиться совсем всё печально у квика. Я не против квика, сам работаю и в нём и в мт 4/5, но скорость разработчиков в квике поражает своей отсталостью.
 
А Я не против МТ5, так как знаю его хорошо.
Я против указанных цифр и методики тестирования..
Относительно Вашего  сравнения почти не возражаю.
Я же написал здесь в ответ на данную тему.  
Но Вы не правы в одном. Луа встроен в терминал.
Относительно скорости исполнения - в луа можно подключать DLL на нативном коде, как и в МТ5
следовательно, скорость исполнения будет примерно одинаковая.
Мне незнакомо решение для квик со встроенным в него МТ5.
Если знаете дайте ссылку, сделаю тест.

 
 
Вообще-то сравнивать МТ5 и не корректно по той причине,
что МТ5 - это среда разработки и торговый терминал
А Луа - это скриптовый язык, виртуальная машина которого с библиотекой QLUA встроена в терминал QUIK.
И ВСЕ.
Т е в QUIK просто нет среды разработки и тестирования по определению.
Вот это большой минус.
А скорость языков вообще не имеет значения
 
Цитата
Николай Камынин написал:
Вообще-то сравнивать МТ5 и не корректно по той причине,
что МТ5 - это среда разработки и торговый терминал
А Луа - это скриптовый язык, виртуальная машина которого с библиотекой QLUA встроена в терминал QUIK.
И ВСЕ.
Т е в QUIK просто нет среды разработки и тестирования по определению.
Вот это большой минус.
А скорость языков вообще не имеет значения
Есть 2 терминала ,каждый и которых позволяет писать роботов, вот эти возможности и сравнили. А так это похоже на отмазку типа мы все понимает что луа это так, с боку припёку ,поэтому её нельзя сравнивать. Тогда зачем этот язык было вообще включать в квик?
 
Добрый день.
Проблема не в том какой язык и как "прикручен" к терминалу. По большому счету нет разницы Lua это или MQL. Проводились тесты интерпретатора против JIT-компилятора, а в этом случае результаты вполне очевидны. Можно взять тесты из примера и провести сравнение Lua vs LuaJIT и получить примерно такое же соотношение времени выполнения.
 
Цитата
Michael Bulychev написал:
Добрый день.
Проблема не в том какой язык и как "прикручен" к терминалу. По большому счету нет разницы Lua это или MQL. Проводились тесты интерпретатора против JIT-компилятора, а в этом случае результаты вполне очевидны. Можно взять тесты из примера и провести сравнение Lua vs LuaJIT и получить примерно такое же соотношение времени выполнения.
Это как раз таки очень важно КАК язык прикручен к терминалу. Вот какой это язык - тут я соглашусь, это вторично, хоть луа, хоть мкл или C#.
 
Цитата
Алексей Орешкин написал:
Вот какой это язык - тут я соглашусь, это вторично
Весьма спорное утверждение.
 
Язык - это очень важно.
Мы лишь с помощью языка можем формулировать свои мысли - т е алгоритмы.
Самый хороший язык тот, на котором умеешь мыслить.
Вообще-то в прикладных областях знаний всегда есть свои сленги.
Поэтому для разработки торговых роботов нужен язык прикладного программирования.
В качестве примера подобного  языка можно привести язык AFL амиброкера.
Lua не является примером прикладного языка.
А скорость исполнения скриптов зависит от реализации виртуальной машины.
Вот если в квик поставит LUA JT вот тогда и скорость будет. А пока скорость делаем за счет DLL которые пишем на СИ.
 
Цитата
Michael Bulychev написал:
Проводились тесты интерпретатора против JIT-компилятора, а в этом случае результаты вполне очевидны. Можно взять тесты из примера и провести сравнение Lua vs LuaJIT и получить примерно такое же соотношение времени выполнения.
Какой смысл говорить о том, чего нет?
 
А я вот недавно написал софт для ARM контроллера  ,
который обеспечивает ввод сигналов в 25 раз быстрее и в 10 раз точнее,
чем официально разработанный.
Но к фондовому рынку это тоже не имеет никакого отношения.
 
А мне понравилась эта тема со сравнением, почему бы и не посравнивать?
Благодаря ей я понял, что мне надо переписать Lua'шную часть на C++

Lua - ПРЕКРАСНЫЙ язык, и я уверен, что он лучше MT5, именно потому, что он интерпретируемый.
Объясняю. На Lua можно написать скрипт из 1 команды, которая будет загружать dll на C++
Дальше в функции инициализации DLL можно связать функции Lua с функциями на C++,
в т.ч. все коллбэки (OnParam, OnConnected и т.п.) и даже main - главную функцию модуля Lua
Всё это будет исполняться нативным кодом с минимальной прослойков в виде lua_State - стека параметров функций.
я считаю это сказочно круто. и такое возможно только из-за того что Lua - интерпретируемый язык.
 
все правильно.
Луа сейчас не только в играх, редакторах, но и в "умных вещах", в управлении сложными технологическими процессами.
Страницы: 1
Читают тему
Наверх