Избранное трейдера Роман Давыдов

по

В помощь QLUA-водам. Функция чтения CSV файла.

    • 21 ноября 2019, 12:01
    • |
    • Egorax
  • Еще
В былую давность пытался решить вопрос с интерфейсом для QLUA.
Испробовал IUP, VCL и еще какая-то библиотека была. Но ни одна библиотека стабильно не работала, через какой-то промежуток времени Квик вставал колом.


Т.к. нам красоты не надо, а удобство хочется, то решил пусть интерфейсом будет Excel(файл.CSV).

В помощь QLUA-водам. Функция чтения CSV файла.


Вот вам функция для чтения CSV файлов:

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

-----------------------------
function File_Read(filename)


local col = 1
local pat = "(.*)"
local A={};local B={};local C={};local D={};local E={};
local F={};local G={};local H={};local I={};local J={};
local K={};local L={};local M={};local N={};local O={};
local P={};local Q={};local R={};local S={};local T={};
local file, err = io.open(filename,«r»)
if err ~= nil then PrintDbgStr(«err read file: »..err); return; end
str = file:read()
for var in string.gmatch (str, ";") do col=col+1 end
for i = 2, col do pat = pat..";(.*)" end
for line in io.lines(filename) do
--PrintDbgStr(line)
local _,_,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20 = string.find(line,pat)
--PrintDbgStr(tostring(s1))
table.insert(A,s1);table.insert(B,s2);table.insert(C,s3);table.insert(D,s4);table.insert(E,s5);
table.insert(F,s6);table.insert(G,s7);table.insert(H,s8);table.insert(I,s9);table.insert(J,s10);
table.insert(K,s11);table.insert(L,s12);table.insert(M,s13);table.insert(N,s14);table.insert(O,s15);
table.insert(P,s16);table.insert(Q,s17);table.insert(R,s18);table.insert(S,s19);table.insert(T,s20);
end
file:close()
table.remove(A,1);table.remove(B,1);table.remove(C,1);table.remove(D,1);table.remove(E,1);
table.remove(F,1);table.remove(G,1);table.remove(H,1);table.remove(I,1);table.remove(J,1);
table.remove(K,1);table.remove(L,1);table.remove(M,1);table.remove(N,1);table.remove(O,1);
table.remove(P,1);table.remove(Q,1);table.remove(R,1);table.remove(S,1);table.remove(T,1);
--Print_Table® Print_Table(S) Print_Table(T)
return A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T
end

 



-------------------------------


Во время работы робота смело изменяем CSV файл и сохраняем, и новые параметры у вас в роботе.
CSV файл можно держать открытым.



  • обсудить на форуме:
  • Quik Lua

Опционы для новичков. Как забить болт на Б-Ш?

    • 20 ноября 2019, 09:01
    • |
    • KarL$oH
  • Еще
Сегодня я отвечу на тривиальный вопрос, на который наши гуру-математики со смартлаба почему-то так и не смогли найти решения методом дифференциирования афинно-квадратичных функций: Как торговать опционы не используя Б-Ш?

Другими словами, как забить болт на формулу Блэка-Шоулза и при этом спать спокойно, осознавая, что не в пирогах счастье, Карлсон (зачеркнуть)?

Для этого необходимо разобраться всего лишь в двух опционных понятиях: внутренняя (intrinsic value) и временная стоимость (time value).

Чтобы было удобнее работать с этими понятиями также напомню, что опционы бывают трёх типов: otm (out of the money), atm (at the money), itm (in the money).

Вне денег, около денег и в деньгах.

Около денег это когда страйк на экспирации совпадает со спотовой ценой (такое очень редко можно увидеть), в Америке такие опционы обычно не исполняются, но на нашем рынке есть особенность — чаще всего брокеры исполняют 50% от текущей позиции.

С itm все понятно, опционы в деньгах, когда спот выше цены страйка для купленного call-опциона, например.

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

Любителям опционов

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

Было бы интересно узнать а какие собственно результаты можем давать опционная торговля. Не правда ли? Нашлись добрые люди и протестировали результаты применения различных опционных стратегий на истории. Результаты за 30 лет (1986 — 2016) на картинках ниже

Любителям опционов

Лучше всех (по доходности) себя показала стратегия под кодовым названием BXMD. Это покупка индекса S&P и продажа call-опциона на него с дельтой 30.
Второе место стратегия PUT — это просто продажа пут-опциона на центральном страйке.
В цифрах это выглядит следующим образом



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

ЛЧИ и иГРырАЗУМа. Тяжела и Неказиста... BRENT...



     А куда деваться продавцу (во) времени?


Лосизм крепчал, но было всё неважно. (трейдеры мы!)
И рост на сорок центов – ни о чём. (ваще!)
В лонгах лежат рогатые отважно, (смелые, бл*)
Зарыв в песок всю «морду кирпичом». (страшно)

В руках у нас – отскоки и подскоки. (см. соотв. граф-фик)
Мы тащим нефть на финишный наш страйк (63-й).
Зажаты мёртво оба наши коки. (в простонародье – яйца)
А сдохнем — ставьте погребальный лайк! (и поделом!)

     Бабочка моя 59/63/67 уже не летает, как Великий Кондор Стерх, а лишь подпрыгивает, как полупридавленная мандавошка. Поделом ей. Нехрен крылушки растопырчивать.


ЛЧИ и иГРырАЗУМа. Тяжела и Неказиста... BRENT...


     Игра близится к экспирации. Вот тама цыплятосов всех и сосчитаем. И это будет пока ещё осень (26 ноября). Последняя (шутка) осень…



     Не я… Не он… Не мы...




Тестирование стратегий для бинарных опционов на истории. Библиотека для С++ и пример с "граалем".

В данной статье будет рассмотрен только технический аспект тестирования стратегий для бинарных опционов. Если вы считаете, что бинарные опционы не предсказуемы, или что брокеры «разводят» трейдеров, то данный пост будет не об этом и просьба не обращать на него внимания. Здесь будет рассмотрен только технический аспект для тех, кто хочет сам тестировать стратегии и проводить эксперименты на БО. Впрочем, используемый код можно адаптировать при желании и под форекс.

Итак, математика бинарных опционов не очень сложная. Тем не менее, проводить тесты будет гораздо  проще, если сделать отдельную библиотеку для тестирования и вообще подготовить «среду», где проводить свои изыскания. Не всегда же строить «велосипед» заново. К тому же, могут быть ситуации, когда ТС использует несколько экспираций опционов во время тестирования сразу, или может отличаться процент выплат и ставок. Поэтому есть смысл выделить «тестер» в виде отдельной библиотеки, несмотря на то что его задача по сути банально считать результат.

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

Python фреймворк для алготрейдинга (VNPY)

Перевел тут (в автоматическом режиме) питонячий китайский фреймворк для алготрейдинга.

Python фреймворк для алготрейдинга (VNPY)

Что он может:

1) Тестить и пускать в лайв страты (а-ля plug and play)
2) Есть коннекторы к крипте, каким-то китайским брокерам, IB, Alpaca
3) UI на pyQT5
4) Качать/хранить котировки

в общем все что надо для базового (и не только) алготрейдинга. все это бесплатно и под MIT лицензией

Перевод пока так себе, но лучше чем китайский оригинал. Теперь хоть что-то можно понять в интерфейсе.  Запустил пару предустановленных страт, загрузил данные, написал простенькую стратегию — все работает, багов не нашел пока. Постепенно улучшаю перевод в ручном режиме.

vnpy — лучшее из python open source для трейдинга что я видел. Понятная и логичная структура, ожидаемая архитектура, хорошо написанный UI. Часть логики коннекторов написана на C++ (поэтому гитхаб и говорит что оно С++, но это не так)



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

Как посчитать популярные мультипликаторы без знания МСФО за минуту. Очень полезные короткие видео для начинающих.

Все на понятном и доступном языке. 
Видео разбиты на серии  стиле «а как посчитать…?» знание МСФО не требуется! К концу, вы научитесь строить и считать большинство мультов за минуту и не больше. Видосики короткие и без воды.
Как посчитать популярные мультипликаторы без знания МСФО за минуту. Очень полезные короткие видео для начинающих.
Рекомендуем самостоятельно собрать файл или просто скачать готовый пример из видео. 
Темы: 
1. Как посчитать, сколько годовых прибылей стоит компания. 
2. Как посчитать чистый долг. 
3. Как посчитать полную стоимость компании EV. 
4. Что такое EBITDA и как это считать. 
5. Как посчитать свободный денежный поток. 
6. Как посчитать мультипликатор P/BV. 
7. Как построить пузырьковую диаграмму. 
Внимание! Данный метод не является методическим пособием или последней инстанцией. Сообщество не несет ответственности за все сказанное в данном видео и тем более за сделки, заключенные на его основе.  
Данный метод является поверхностным и упрощенным для понимания начинающих инвесторов.

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

Срез доходностей рублевых облигаций: ОФЗ, субфеды, корпораты, ВДО

Срез доходностей рублевых облигаций: ОФЗ, субфеды, корпораты, ВДО

ОФЗ
Доходности казначейских облигаций повторили движение вниз, начатое западных рынках госдолга. Реакция на глобальные тенденции? Возможно и так, но и на нашем рынке достаточно сильны ожидания снижения ставок. Кривая доходностей стала немного более пологой, причем на всей ее протяженности: спред между “долгими” и “короткими” выпусками уменьшился, а бумаги среднего сегмента сконцентрировались на уровне семипроцентной доходности. Стоит ли проводить аналогии и готовиться к проблемам на фондовом рынке страны? Считаем, что это преждевременно: данные конца лета не самые показательные для составления прогнозов, а более четкая картина сложится в первой половине сентября.


Срез доходностей рублевых облигаций: ОФЗ, субфеды, корпораты, ВДО

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

Python: поиск поддержки и сопротивления

Написал тут питонячью библиотечку небольшую для поиска поддержки/сопротивления.

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

Общая концепция такая:
1. Ищем разворотные точки
2. Обучаем Agglomerative Clustering, собираем уровни из точек

Находит оно примерно следующее:
Python: поиск поддержки и сопротивления


Юзайте в общем. Работает на Python 3.6+

Когда не лень выкладываю что-то по трейдингу в телегу

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