Избранное трейдера java
Я часто задумывался и задавал вопросы на форуме: «Какой компьютер выбрать для максимальной производительности терминалов МetaТrader 4 и МetaТrader 5 ?» Данный вопрос интересует многих в момент апгрейда или покупки нового ПК с упором на производительность МetaТrader, что лучше купить? На платформе Intel или AMD? Сколько и какая оперативная память должна быть? Какая материнская плата? Какой выбрать диск для хранения данных: SSD или HDD ?
Разработчики нахваливают производительность и супер скорости терминала МetaТrader 5, но как обычному трейдеру или программисту-любителю проверить слова разработчиков и лично убедиться в том, что они говорят? Писать некий код? А какой? Чем проверить? Как вообще сравнить производительность терминалов МetaТrader 4 и МetaТrader 5?
В общем, я долго думал и решил написать скрипт-тестер производительности ПК и терминалов МetaТrader 4 и МetaТrader 5. Часть кодов взята из темы Тестирование нового компилятора MQL5 для x64 платформ — ускорение расчетов от 2 до 10 раз!
Все что я сделал, это объединил коды всех тестов в один скрипт и добавил все эти коды через класс, то есть скрипт тестирует ПК и терминалы в двух типах программирования: процедурном и ООП. Также я добавил несколько тестов, связанных с отрисовкой графических объектов, их перемещением и удалением, плюс работа теста с классом CCanvas, плюс замер скорости работы функции CopyRates при копировании 1 000 000 минутных баров. Всего 45 тестов.
Расширенная форма оператора for
В расширенной форме оператора for для последовательного получения значений переменной цикла используется вызов итератора. Цикл завершается, когда итератор возвращает nil.
Примечание
Под итератором понимается любая конструкция, позволяющая перебирать элементы некоторого набора. При каждом обращении к итератору он возвращает очередной элемент набора. В Lua итераторы обычно реализуются в виде функций.
Расширенная форма оператора for имеет следующий вид:
for var1, var2, …, varN in <explist> do
… — тело цикла
end
где:
var1, var2, ..., varN — список переменных, получающих значения на каждом шаге цикла. Список может состоять из одной или нескольких переменных, разделённых запятыми. Первую в списке переменную называют управляющей переменной цикла. Когда эта переменная получает возвращённое итератором значение nil, цикл завершается. Остальные переменные на ход выполнения цикла влияния не оказывают;
<explist> — список выражений, разделённых запятыми. Обычно список состоит из единственного выражения — вызова функции-фабрики итераторов. Такая функция возвращает функцию-итератор, состояние и начальное значение управляющей переменной цикла.
Скрипты на языке Lua
Написанный на Lua скрипт не имеет какой-либо специальной функции, с которой начиналось бы его выполнение. Скрипт можно рассматривать просто как набор команд (инструкций), который выполняется, начиная с первой инструкции.
Скрипт может быть как очень простым, состоящим всего из одной команды, так и весьма сложным, содержащим десятки, сотни и даже тысячи инструкций. Следующие друг за другом инструкции могут разделяться точкой с запятой (;). Однако это требование не является обязательным, поэтому весь приведённый ниже код является корректным с точки зрения синтаксиса:
a = 1; b = 2
a = 1 b = 2
a = 1;
b = 2;
a = 1
b = 2
Работа с переменными в Lua
Переменные используются для хранения значений в процессе выполнения скрипта.
Имена переменных в Lua
Именами (идентификаторами) переменных в Lua могут быть любые последовательности из букв, цифр и символа подчеркивания, начинающиеся не с цифры.
Целью настоящей работы является разработка математической торговой системы, прогнозирующей величину и направление изменения стоимости акций публичных компаний на определенном интервале времени. Исходными данными для модели служат данные из отчетов компаний и котировки их акций с биржевых площадок. Далее в статье речь пойдет об американском рынке акций в связи с текущими предпочтениями автора. Американский рынок является более привлекательным в связи с большим выбором эмитентов, широким спектром отраслей и доходом в долларах США.
В основе математической модели лежит классический многослойный перцептрон с количеством слоев равным двум, поскольку в процессе разработки было установлено, что значительное усложнение топологии нейронной сети приводит к явлению переобучения (overfitting) и сеть теряет свои обобщающие свойства. Проблема переобучения отдельно в данной статье не исследуется, а способы борьбы с ней будут освещены далее. Схема многослойного перцептрона представлена на рис. 1. Входные параметры в модели – “x” (данные по компании), а выходной параметр (output) – апсайд (upside), прогноз изменения стоимости акции.
На вчерашних торгах и индекс ММВБ, и индекс РТС показали положительную динамику. Меня смешат рассуждения, что раз цены на нефть падают, то рынок расти не может. Цены на нефть это всего лишь один из факторов, влияющих на динамику отечественных акций. На горизонте месяц или полгода это главный фактор. Но если рассматривать рынок на горизонте неделя или день, то мы увидим множество факторов, которые влияют на цены на акцию. Образно говоря, к каждому активу привязаны «ниточки». Мы не все ниточки видим – часть ниточек уходит глубоко под воду, куда не проникает солнечный свет. Лучше анализировать графики базового актива, потому что на них возникают торговые моменты и не анализировать факторы влияния.
Нет никакого смысла анализировать факторы влияния, потому что процентов 50% из них скрыты от наших глаз. К примеру, считается, что раз цена на нефть снижается то и отечественные индексы снижаются, но есть еще фактор экспирация опционов18.11.15 и еще есть фактор притока и оттока капитала связанного с оживаниями снятия санкций Запада. Если наблюдается приток капитала то при цене 44 доллара за баррель у акций ЛУКОЙЛа одна цена, а если наблюдается отток, то при той же цене нефти у акций ЛУКОЙЛа цена ниже. Давайте рассуждать о факторах влияния, которые не «скрыты под водой», но не забывать, что это всего лишь рассуждения, а не торговые моменты.