Избранное трейдера Rymys
Мне нравится Lua. Lua хороший компактный язык на котором можно сделать индикаторы, различные вспомогательные программы, помогающие трейдеру и даже несложные торговые системы (ТС, роботы). Пожалуй единственная книга по Lua — Роберту Иерузалимски: Программирование на языке Lua. Ее можно найти в интернете.
Lua имеет также несложный C-API позволяющий связать программы Quik Lua с внешним миром через DLL и получить доступ практически ко всему, в том числе к любым математическим библиотекам обработки данных, что необходимо для сколь-нибудь сложным ТС. Однако, для этого уже необходимо знание не только Lua, но и Lua C-API, языка С/С++, а также умения писать DLL. При этом надо будет решить еще ряд проблем, которые возникнут по ходу пьесы в процессе этой деятельности. Далеко не каждый пользователь Quik и Lua может все это реализовать в обозримое время.
У Quik Lua (QLua) есть еще недостатки — все события терминала в Lua работают в потоке терминала, и получив из них данные надо как можно быстрей завершать функции обработки этих данных и освобождать поток терминала, иначе терминал просто повиснет. Единственная функция QLua работающая в собственном потоке — это main() и вся сколь-нибудь сложная обработка может находиться только в ней.
Кроме того, для Lua крайне мало библиотек, а существующие работают оч не быстро. В принципе, это и не нужно, если можно организовать связь с внешним миром через C-API. Но нам от этого легче не становится.) Короче, для написания хорошей сложной ТС нам надо выйти за пределы QLua и установить связь с внешним миром, и сделать это доступными средствами.
Сейчас наиболее продвинутым языком, включающим в себя массу библиотек обработки данных является Python. По применимости для обработки данных он, пожалуй, занимает первое место в мире, а по распространенности входит в первую пятерку. В числе библиотек — математические, статистические, машинного обучения и пр., и пр. Таких библиотек более тысячи только в Anaconda, большинство из которых устанавливается при ее инсталяции. Вы можете не использовать Anaconda и скачать Python с сайта
Однозначно советую всем! Причем даже опытным. И вот почему.
Эта книга — тот редкий случай, когда книгу про инвестиции/трейдинг мне читать еще интересно. Мне кажется, я уже знаю почти все, поэтому меня сложно чем-то удивить, это надо учитывать, когда вы читаете рецензию от меня.
Сразу оговорюсь, что в целом, книга произвела неоднозначное впечатление: вначале она прям меня привела в чувство полного восторга. С половины книги, я “увяз”, уже не мог читать, пролистывал страницы. Но новичкам — однозначно читать вдумчиво и целиком. Лично для меня было бы идеально, если бы она закончилась на половине. Но это чисто для меня. Теперь по делу.
Автор книги, Силаев — большой молодец, я проникся уважением к его интеллекту, эрудиции, кругозору и дару писать. Начало книги я вообще читал взахлеб, оставил массу пометок на страницах. Я бы даже сказал, что он пишет не хуже Талеба. Итак, автор:
оригинально мыслит и пишет
необычный текст и слог
я читал и получал удовольствие от чтения.
Только есть проблема. Некоторые места книги настолько оригинальны, что не все это поймут и оценят. По-моему я не встретил в книге ни одного момента, где я был бы не согласен с автором. Более того, многие моменты мне близки именно с позиции моего опыта и я рад что увидел в этой книге похожие мысли.
Какие интересные идеи я бы подчеркнул?
(Мысли очень концентрированные, на самом деле далеко не все поймут и осознают сходу их ценность)
Алгоритм данной торговли был описан уважаемым Гном (https://smart-lab.ru/blog/499606.php) и, поскольку я являюсь любителем различных теорий Мартингейла и усреднения, написал робота по этой стратегии.
Подробно на алгоритме останавливаться не буду — читайте по ссылке у Гнома, там очень хорошо всё расписано.
Здесь — немного измененная реализация. Отличие в том, что позиции открываются не через равные промежутки цены, а чуть шире: еще должно прийти хотя бы минимальное подтверждение, что дальше не полетит (в данном случае использован вход обратно в канал Боллинджера, но это несложно поменять на что угодно).
Если полетит против нас вертикально, мы хотя бы не будет бессмысленно открывать кучу сделок на мгновенной длинной вертикальной палке.
Итак, представляю: «Судак-Тудак» Универсальный (одновременно для акций и фьючерсов).
Если хотите добавить инструменты (а они добавляются в массив aTickerList), не забудьте вписать их данные в массивы:
Доброго времени суток, коллеги!
На новом этапе жизни нашел немного времени и сил, чтобы подготовить для вас, господа спекулянты интересный материал – небольшое исследование.
Я хотел бы рассказать про наблюдение, которым пользовался ранее, но при его неиспользовании как и многие другие потерял часть капитала на ЛЧИ, в чем себя до сих пор ругаю, и вот сейчас в последние две недели вернулся к нему и убедился еще раз, что торговать по открытым позициям крупных игроков можно и даже нужно, с одним главным условием – есть наличие тренда.
О чем это я? Давайте посмотрим ниже.
Многие, как и я лонговали нефть на ее падении, чего делать не следовало бы. Почему?
Обратите внимание на 11 октября. Было сильное падение. Биржа публикует информацию об открытых позициях на следующий день, поэтому предугадать такие падения крайне сложно. Ведь до 11 числа все юридические лица были в позиции лонг и только лишь 11 числа (мы это увидели 12) они начали наращивать позиции шорт.
Расширенная форма оператора 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 могут быть любые последовательности из букв, цифр и символа подчеркивания, начинающиеся не с цифры.