![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У MQL5, а тем паче у MQL4 для таких алгоритмов скорость исполнения кода слишком низкая, т.е. все равно в чистом MQL ничего путного не получится и как минимум придется создавать DLL. А смысла от этого все равно не будет, т.к. портфели нет никакой надобности оптимизировать в реалтайме на каждом тике или на барах мелких таймфреймов.
Юрий, это не так, mql5 по скорости жабе никак не уступает.
Что до смысла использования - мне, например, в отношении форекса более интересна оптимизация портфелей стратегий, а не инструментов. Так что... отмазки не принимаются. :)
Зато хорошая новость - могу составить компанию при написании кода на mql5. Даже сам могу всё написать. Желательно только описание алгоритма.
Мне кажется будет весело.
Юрий, это не так, mql5 по скорости жабе никак не уступает.
Вы эти сказки детям рассказывайте. Виртуальные машины Java выполняют JIT компиляцию, т.е. перед запуском программы, компилируют Java код в машинный код. Так что выполнение Java приложений происходит в машинном коде.
См. результаты сравнения производительности Quake2 на Java и на С++: http://www.bytonic.de/html/benchmarks.html
Вот еще по теме: Бенчмарки C#, C++, Java, Delphi
Ведь это легко проверить, запустив один и тот же benchmark, написанный на Java и на MQL5.
Что до смысла использования - мне, например, в отношении форекса более интересна оптимизация портфелей стратегий, а не инструментов. Так что... отмазки не принимаются. :)
Ну дык скидывайте первые разности Equity стратегий в CSV файл и оптимизируйте. Зачем нужны отмазки о том, что якобы MQL5 может "обогнать" приложение, исполняющееся в машинном коде?
Зато хорошая новость - могу составить компанию при написании кода на mql5. Даже сам могу всё написать. Желательно только описание алгоритма.
Дерзайте. Алгоритм Брауна - Робинсон не является секретным. Вот код на Java:
Вы эти сказки детям рассказывайте. Виртуальные машины Java выполняют JIT компиляцию, т.е. перед запуском программы, компилируют Java код в машинный код. Так что выполнение Java приложений происходит в машинном коде.
Юра, похоже это для тебя новость, однако виртуальная машина mql5 работает аналогично. Компилятор делает байт-код, перед запуском происходит докомпиляция в натив. Так же как в яве и шарпе. Почаще читай форум mql5.
См. результаты сравнения производительности Quake2 на Java и на С++: http://www.bytonic.de/html/benchmarks.html
Вот еще по теме: Бенчмарки C#, C++, Java, Delphi
Ведь это легко проверить, запустив один и тот же benchmark, написанный на Java и на MQL5.
Я проверял. Правда сравнивал не с явой, а с шарпом. Получил аналогичную скорость. Не думаю что ява быстрее шарпа хотя бы на 30-40%. Если разница и есть, она ещё не известно в чью пользу. Согласен сравнить и с явой. Какой код посоветуешь для сравнительного тестирования?
Ну дык скидывайте первые разности Equity стратегий в CSV файл и оптимизируйте.
Такой вариант мне неинтересен. Хочу встраиваемый код. И сделаю.
Зачем нужны отмазки о том, что якобы MQL5 может "обогнать" приложение, исполняющееся в машинном коде?
Дерзайте. Алгоритм Брауна - Робинсон не является секретным. Вот код на Java:
Да есть у меня этот код. Ты ж его уже выкладывал. Я его сходу ниасилил. Расчитывал на комментарии хотя бы, чтоб реально разобраться, а не просто собезьянничать.
Ок, попробую ещё разок. Описания идеи алгоритма вроде в инете есть. Разберусь.
Юра, похоже это для тебя новость, однако виртуальная машина mql5 работает аналогично. Компилятор делает байт-код, перед запуском происходит докомпиляция в натив. Так же как в яве и шарпе. Почаще читай форум mql5.
Я проверял. Правда сравнивал не с явой, а с шарпом. Получил аналогичную скорость. Не думаю что ява быстрее шарпа хотя бы на 30-40%. Если разница и есть, она ещё не известно в чью пользу. Согласен сравнить и с явой. Какой код посоветуешь для сравнительного тестирования?
Такой вариант мне неинтересен. Хочу встраиваемый код. И сделаю.
См. выше. На обгон не расчитываю, на идентичность вполне (плюс-минус 10%).Да есть у меня этот код. Ты ж его уже выкладывал. Я его сходу ниасилил. Расчитывал на комментарии хотя бы, чтоб реально разобраться, а не просто собезьянничать.
Ок, попробую ещё разок. Описания идеи алгоритма вроде в инете есть. Разберусь.
ржака...
однако
;)
Да есть у меня этот код. Ты ж его уже выкладывал. Я его сходу ниасилил. Расчитывал на комментарии хотя бы, чтоб реально разобраться, а не просто собезьянничать.
Ок, попробую ещё разок. Описания идеи алгоритма вроде в инете есть. Разберусь.
Ничего сложного в коде нет. В аргументах передается платежная матрица - a[][], на выходе оптимальная стратегия игрока по столбцам платежной матрицы - q
int m = a.length; // переменной m присваивается значение в виде количества строк в платежной матрице
Arrays.fill(p, 0); // Массив p инициализируется нулевыми значениями
rand.nextBoolean() // с вероятностью 50% / 50% даст случайным образом значение true или false
Все остальное любой программер, знающий C подобные языки, поймет без посторонней помощи. Единственное, что отличает Java от C - это отсутствие необходимости освобождать память. Т.е. если переменная объявлена внутри блока фигурных скобок {}, то сие означает, что после того, как блок закрыт, переменная вне блока уже недействительна и виртуальная машина Java самостоятельно освободит память, которая была под нее выделена. При попытках обратиться к переменной, объявленной внутри какого либо блока, за пределами этого самого блока, компилятор Java выдаст ошибку.Почему бы Вам не написать все это на mql5 и не выложить исходники?
Исходники в открытом доступе на http://r-portfolio.sourceforge.net/
Если Вам так необходимо, то можете самостоятельно переписать их на любой язык программирования или обратиться в Job - там исполняют различные прихоти и похоти тех, кому что-то нужно реализовать что-то в коде MQL.
Юрий у меня вопрос по формированию портфеля Вашей программой, я его задал в ветке "советник по корреляции", но нашел эту ветку и задам здесь. Вы наряду с мажорами включаете в портфель золото, но у валютных пар и золота разная цена тика. Как это корректируется при расчете и какие пары Вы сами используете для портфеля? Меня заинтересовала эта тема и хотелось бы узнать у опытного спеца примерные результаты использования системы.
Виртуальные машины Java выполняют JIT компиляцию, т.е. перед запуском программы, компилируют Java код в машинный код. Так что выполнение Java приложений происходит в машинном коде.
jit в java компилирует в машинный код частями. На сколько я понимаю, mql5 компилирует сразу всю программу в машинный код - это скорее aot, а не jit.
См. ответ в советник по корреляции
.
http://sourceforge.net/projects/r-portfolio/ - а есть на русском ?