Избранное трейдера Олег

по

Автозапуск QUIK QLUA

Пожалуй, каждый, даже, самый ленивый программист на LUA презентовал свою версию для запуска QUIK.
Пришла и моя очередь.
Вчера, за небольшую благодарность, swerg перевёл w32.dll на LUA 5.3.
Теперь есть поддержка QUIK 8.5 и выше.
Скачать: http://pmntrade.ru/avtozapusk_quik_qlua/avtozapusk_quik_qlua.zip
Страница программы: http://pmntrade.ru/avtozapusk_quik_qlua.html
Видео:


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Опыт доработки QLua-скриптов для QUIK 8.5.2

    • 15 мая 2020, 16:29
    • |
    • _sk_
  • Еще
В новой версии терминала QUIK 8.5.2 произведён апгрейд языка Lua для написания торговых скриптов с версии 5.1 до версии 5.3. Это нужно для того, чтобы корректно обрабатывать 19-значные номера заявок и сделок на срочном рынке МосБиржи. Типа number в Lua 5.1 не подходит: там все числа хранятся как double, соответственно целые числа до 2^53 = 9 007 199 254 740 992 записываются без потери точности, а 19-значные номера заявок и сделок будут больше этой границы.

Версия Lua 5.3 обратно несовместима с Lua 5.1. Я почти не использовал внешние библиотеки и для меня было два важных изменения: отказ от module (это было сделано в версии 5.2) и введение целочисленной арифметики (версия 5.3).

Для избавления от использования module пришлось переработать много кода, хотя изменения были несложные. Приведу пример. Раньше был такой код Arrays.lua для работы с массивами:

--
-- Выполнение действий с массивами.
--

local pairs = pairs
local type = type

module(...)

--- Создать копию массива (таблицы)
-- @return копию массива (таблицы)
function copy(array)
    local copy_array = {}
    if type(array) ~= "table" then
        return array
    end
    for k, v in pairs(array) do
        if type(v) == "table" then
            copy_array[k] = copy(v)
        else
            copy_array[k] = v
        end
    end
    return copy_array
end

--- Узнать, начинается ли индексация в массиве с нуля или с единицы.
-- @return 0 или 1
function base(array)
    if array[0] ~= nil then
        return 0
    else
        return 1
    end
end

--- Вычислить число элементов в массиве.
-- @return число элементов в массиве
function size(array)
    local n = 0
    for _, _ in pairs(array) do
        n = n + 1
    end
    return n
end

--- Проверить пустой или нет массив.
-- @return true/false
function isEmpty(array)
    for _, _ in pairs(array) do
        return false
    end
    return true
end

--- Получить первый индекс массива, где ничего не записано. Поиск начинается с 1.
-- @return первый индекс массива, где ничего не записано
function firstEmptyIndex(array)
    local i = 1
    while array[i] ~= nil do
        i = i + 1
    end
    return i
end


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Интервью с Владимиром Твардовским об отрицательных ценах на нефть и последствиях для рынка

Друзья, всем привет!
Мы взяли интервью у Владимира Твардовского, гуру срочного рынка, автора книг по трейдингу и основателя брокерской компании ITinvest. Эксперт рассказал, что он думает об отрицательных ценах на нефть и последствиях этой ситуации для рынка, инфраструктурных рисках при торговле в РФ, и сравнил торговые возможности российских и американских бирж.

— Давайте начнем интервью с самой злободневной темы последнего времени – отрицательных цен на нефть и последствий этого явления для российских трейдеров. В конце апреля стоимость контракта на нефть Light Sweet Crude Oil опустилась ниже нуля на бирже NYMEX, а Московская биржа 21 апреля приостановила торги и рассчитала обязательства по цене американской биржи, не дав российским трейдерам возможности управления своими позициями. Как результат – участники торгов понесли многомиллионные убытки, а ответственность перед ними биржа фактически переложила на брокеров. Как вы оцениваете эту ситуацию?

— Ситуация очень вышла некрасивая. Со всех сторон. Но прежде чем давать оценки и развешивать ярлыки, давайте вспомним, что произошло 20 апреля. А произошло то, что большой спекулятивный интерес со стороны покупателей в майском контракте Crude oil на бирже NYMEX, где и происходят основные торги, не успел отроллироваться в контракты следующей серии – в июньский. В результате огромное число длинных позиций зависло перед последним днем торгов. Я напомню, что фьючерс CL – поставочный и все спекулянты, то есть игроки, не собирающиеся выходить на поставку в качестве покупателей или продавцов, обязаны в предпоследний торговый день закрыть все свои спекулятивные позиции. Так оно всегда раньше и происходило. За несколько дней до истечения ближнего контракта спекулянты не спеша перекладывались в дальний и в последний день торгов на рынке оставались только те, кто работает с физической нефтью. Но в этот раз все пошло не так.



( Читать дальше )

Кино 2019

1. Чернобыль (Chernobyl) (мини-сериал)
2. 1917
3. Джокер (Joker)
4. Платформа (El hoyo)
5. Кролик Джоджо (Jojo Rabbit)
6. Джентльмены (The Gentlemen)
7. Солнцестояние (Midsommar)
8. Мы (Us)
9. Достать ножи (Knives Out)
10. Ford против Ferrari (Ford v Ferrari)
11. Неогранённые драгоценности (Uncut Gems)
12. Прощание (Farewell)
13. Ирландец (The Irishman)
14. Прачечная (The Laundromat)
15. Скандал (Bombshell)
16. Маленькие женщины (Little Women) (фильм 2019 года!)
17. Доктор Сон (Doctor Sleep)
18. Клаус (Klaus) (мультфильм)
19. Паразиты (Gisaengchung)
20. Арахисовый сокол (The Peanut Butter Falcon)
21. Аладдин (Aladdin)


( Читать дальше )

про шипы на инструментах

Мой опыт говорит о том, что на рынке может случиться все что угодно. 
Я давно сделал вывод: шипы случались в прошлом и будут случаться в будущем.
Что я давно уже сделал чтобы не попасть на шипы и не угореть на планках:

👉я не ставлю автоматические стоп-приказы если инструмент не входит в топ-3 ликвидных
👉я не ставлю стопы с исполнением по рыночной цене. Стопы я исполняю всегда по лимитной цене.
👉в остальных случаях я всегда снимаю все стоп-заявки на все клиринги, потому что я знаю, что никто не обязан вставать в стакан с плотными бидами и офферами после переоткрытия рынка
👉я никогда не покупаю с планки, в некоторых случаях я делаю это после расширения планки
👉даже когда я торговал фьючерс S&P500 против основного движения, главная моя задача была — успеть закрыть позу до планки. Я прекрасно сознавал, что если рынок упадет на планку, а я в лонге, убытки могут быть совершенно неконтролируемыми.
👉эти правила работают даже когда рынок спокойный. Когда на дворе кризис и волатильность, актуальность правил возрастает во сто крат.
👉если есть возможность торговать нефть на ICE, я торгую ее там, а не где-то еще, где цена привязана к ICE. Но иногда бывает проще открыть контракт на МБ, осознавая все нюансы.

Когда я торгую на срочном рынке Мосбиржи, я знаю, что все что может произойти, примерно бывало в прошлом. Зная, что было, я не не пускаю теплого по ноге, когда случился очередной спайк, и не бегу к маме схватившись за голову, крича на ходу: «Ну её на*й эту Московскую биржу, ухожу на америку». Если бы на америке было маслом намазано, все были бы уже там. Но я торгую там, где есть есть понятные мне преимущества.

100 секретов торговли на фьючерсном рынке - Ларри Уильямса

Привет коллеги трейдеры!

К вашему вниманию представляю обзор СЕКРЕТОВ торговли на фьючерсном рынке.

Я разделил главные мысли из книги Ларри Уильямса “Секреты торговли на фьючерсном рынке” на 3 ключевые группы: психология, тактика, управление финансами; + ЦИТАТЫ.

Рынок способен вскружить голову даже самым опытным его представителям. Часто я ощущаю необходимость подтягивать какое-то из этих направлений и возвращаюсь к мыслям успешных трейдеров, которые вдохновляют и наставляют на путь истинный.

Так что не стесняйтесь, добавляйте в избранное и пользуйтесь на здоровье!

       1. Психология

 
  1. Пока вы не найдете наилучший способ справиться с провалом или проигрышем, которые обязательно будут у вас как трейдеров, вы не сможете оставаться в игре достаточно долго,


( Читать дальше )

Интеграция Lua и С++ (2)


Обмен данными между Lua и Сpp осуществляется через Lua-стэк, то есть через специальным образом структурированное (по принципу Last In — First Out) пространство. 


Интеграция Lua и С++ (2)

Иллюстрация процесса добавления переменных в Cтэк (Push) и извлечения переменных из Стэка (Pop).

Иными словами, Lua стэк — это одномерный массив переменных (список, строка) с прямой (от 1 до n) индексацией.



Заполняется стэк командами lua_push (С-side) :

void lua_pushnumber (lua_State *L, lua_Number n);
const char *lua_pushstring (lua_State *L,  const char *s);

и другими. 


Новой переменной в стэке Луа длинной n автоматически присваивается индекс [n+1] или [-1], где n+1 — абсолютный индекс переменной, а -1 — индекс новой переменной относительно конца (!) стэка. 




Доступ, к переменным, соответственно осуществляется функциями lua_to (C-side) :

lua_Number lua_tonumber (lua_State *L, int index);
const char *lua_tostring (lua_State *L, int index);
где L — указатель Lua-стэка, а index — абсолютный или относительный индекс переменной в стэке.

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Взломан код рынка

    • 04 апреля 2020, 12:04
    • |
    • d_d
  • Еще
Секретный индикатор технического анализа перевернёт ваш взгляд на рынок.

В книжках по трейдингу говорилось, что движение цены должно подтверждаться объёмом, но как это вообще понимать ?  

Характерный пример того, как в популярной литературе полностью выхолощен и искажён реальный смысл работающего торгового правила...

На самом деле принцип здесь следующий.
Дно по любому популярному инструменту можно определить так:

Столбик объёма полностью перекрывает тело свечи вместе с верхней тенью за тот же день на сайте stockcharts.com на графике за последний месяц.

Вот эта так называемая 'донная свеча' и обозначает дно. Всё очень просто и буднично. Как и полагается,  для разных инструментов по этому правилу дно будет в разные дни.

ДНО ОПРЕДЕЛЯЕТСЯ С ТОЧНОСТЬЮ ДЕНЬ В ДЕНЬ!

например:

 RSX -  18 марта

( Читать дальше )

QLua: таблица крупных "склеенных" обезличенных сделок

    • 03 апреля 2020, 15:06
    • |
    • _sk_
  • Еще
Иногда хочется наблюдать за ситуациями, когда участники торгов исполняют по рынку крупные заявки. Конечно, можно смотреть на обычную ленту обезличенных сделок с настроенными фильтрами на размер сделки, но ведь можно написать специальный QLua-скрипт, который будет отбирать сделки, являющиеся результатом исполнения.

В терминале QUIK ордерлог недоступен, поэтому надо как-то эвристическим образом определить, что набор обезличенных сделок относится к одной и той же рыночной заявке. Например, можно проверять, что инструмент в текущей сделке совпадает с инструментом в предыдущей сделке, направление сделки то же самое, время сделки совпадает с точностью до миллисекунд, и цена при покупке растёт, а при продаже — падает.

Если суммарный объём не менее какой-то границы, которую можно задать для каждого инструмента индивидуально, такие «склеенные» сделки выводятся в таблице. В ней указаны:
— суммарный объём;
— количество обезличенных сделок, которые были склеены;
— начальная цена и конечная цена;

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

....все тэги
UPDONW
Новый дизайн