Избранное трейдера MrD
Расширенная форма оператора 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 могут быть любые последовательности из букв, цифр и символа подчеркивания, начинающиеся не с цифры.
Введение во фрактальность рынка и Теорию Хаоса. Изотропность.
— О чем вы думаете, глядя на эти графики?
— О женщинах.
— Но, почему?
— А, я о них все время думаю.
Как и предыдущие мои посты, этот в первую очередь адресован новичкам и тем, кто исследует рынок с помощью математики или физики и сам программирует, или может точно поставить задачу программистам и проконтролировать исполнение. Как и предыдущие посты, этот тоже является фильтром, его поймут и примут далеко не все, и только некоторые сумеют им воспользоваться. Не хочу детализировать свои выводы из постулатов рынка, ограничивая вашу фантазию. Частные примеры могут ее невольно сузить, попробуйте понять постулаты максимально широко, не сводя их к частностям – это вы всегда успеете. Понимание того, о чем я говорю, по моим наблюдениям, как и раньше, не зависит от наличия высшего образования, но форму изложения, в целях доступности, я выбрал популярную.
import numpy as np
# создаем массив чисел, равномерно распределенных от -1 до 1
x = np.random.uniform(-1, 1, 10000000)
# каждое число возводим в квадрат (можно еще вычесть 1/3, если хотим нулевое матожидание)
y = x**2
# y полностью определяется x, значит x и y коррелированы в широком смысле
# но вычисление ЛИНЕЙНОГО коэффициента корреляции дает 0 (+- с учетом случайного разброса)
print(np.corrcoef(x,y))
Продолжая тему тестирования алгоритма Маркет Мэйкера, поделюсь своими результатами и мыслями по его работе:
1. Основной режим работы алгоритма — это маркетмэйкинг (он же арбитраж ликвидности, он же торговля спредом). И конечно же, прибыльность этой стратегии сильно зависит от рыночных условий, скорости получения данных и работы системы исполнения. Средняя прибыль на сделку даже и при идеальном исполнении не будет превышать значение спреда (2-5 пунктов по Si в среднем). А в период сильной волатильности, когда стакан бросает из стороны в сторону на 10-30 пунктов, несмотря на большое количество положительных сделок ( около 70%), алгоритм становится убыточным. В основном из-за комиссий, конечно.
2. Да, математические формулы сильно ограничили многих желание понять, как устроен алгоритм. Но на самом деле, если вдумчиво посмотреть картинки (карты политик), получается все ясно и просто. А будет еще проще, если посмотреть картинки графиков из других статей, лежащих в основе алгоритма (например Guilbaud, Fabien, and Huyen Pham, 2013, Optimal high-frequency trading with limit and market orders). Забудем на минутку про дисбаланс бид/акс объемов и построим карту политик для открытой позиции при разных значениях спреда:
Продолжение. Начало в моем блоге и на сайте.
В прошлой статье про модель Хестона мы отметили, что она обладет недостатком, который проявляется в неточности определения цен опционов на малых сроках экспирации. Здесь мы рассмотрим модель Бейтса, в которой этот недостаток устранен, и она является одной из лучших аппроксимаций, описывающих поведение цен опционов для разных страйков и периодов до экспирации.
Модель Бейтса относится к моделям стохастической волатильности и определятся следующими уравнениями: