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

по

Данные из QUIK в Python. Построение Дельта графика.

Данные из QUIK в Python. Построение Дельта графика.Построение нестандартных графиков в Python при помощи библиотеки finplot.
Можно строить почти любые нестандартные графики: Range, Renco, Delta.
В качестве примера скрипт для построения Дельта графика.
График строиться с момента запуска по поступающим данным из таблицы обезличенных сделок.
Для получения данных из КВИКа используется PythonServer Евгения Шибаева (огромное спасибо автору!!!)

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

# В КВИКе запускаем луа-скрипт QuikLuaPython.lua
import socket
import threading
from datetime import datetime, timezone
import pandas as pd
import finplot as fplt

fplt.display_timezone = timezone.utc


class DeltaBar():
    def __init__(self):
        self.df = pd.DataFrame(columns='date_time open high low close delta delta_time_sec'.split(' '))
        self.df.loc[len(self.df)] = [0, 0, 0, 0, 0, 0, 0]

    def parser(self, parse):
        if parse[0] == '1' and parse[1] == 'RIH1':
            if abs(self.df.iloc[len(self.df) - 1]['delta']) >= 500:
                self.df.loc[len(self.df)] = [0, 0, 0, 0, 0, 0, 0]  # Добавляем строку в DF

            self.df.iloc[len(self.df) - 1]['close'] = float(parse[4])  # Записываем последнюю цену как цену close бара

            if self.df.iloc[len(self.df) - 1]['date_time'] == 0:
                self.df.iloc[len(self.df) - 1]['date_time'] = \
                    datetime.strptime(f'{parse[7]} {parse[8][0:-1]}', "%d.%m.%Y %H:%M:%S.%f").replace(microsecond=0)

            if self.df.iloc[len(self.df) - 1]['open'] == 0:
                self.df.iloc[len(self.df) - 1]['open'] = float(parse[4])

            if float(parse[4]) > self.df.iloc[len(self.df) - 1]['high']:
                self.df.iloc[len(self.df) - 1]['high'] = float(parse[4])

            if (float(parse[4]) < self.df.iloc[len(self.df) - 1]['low']) or \
                    (self.df.iloc[len(self.df) - 1]['low'] == 0):
                self.df.iloc[len(self.df) - 1]['low'] = float(parse[4])

            if parse[5] == '1026':
                self.df.iloc[len(self.df) - 1]['delta'] += float(parse[6])

            if parse[5] == '1025':
                self.df.iloc[len(self.df) - 1]['delta'] -= float(parse[6])

            self.df.iloc[len(self.df) - 1]['delta_time_sec'] = \
                datetime.strptime(f'{parse[7]} {parse[8][0:-1]}', "%d.%m.%Y %H:%M:%S.%f") - \
                self.df.iloc[len(self.df) - 1]['date_time']
            self.df.iloc[len(self.df) - 1]['delta_time_sec'] = self.df.iloc[len(self.df) - 1]['delta_time_sec'].seconds


def service():
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.bind(('127.0.0.1', 3587))  # Хост-этот компьютер, порт - 3587
    while True:
        res = sock.recv(2048).decode('utf-8')
        if res == '<qstp>\n':  # строка приходит от клиента при остановке луа-скрипта в КВИКе
            break
        else:
            delta_bar.parser(res.split(' '))  # Здесь вызываете свой парсер. Для примера функция: parser (parse)
    sock.close()


def update():

    df = delta_bar.df
    # Меняем индекс и делаем его типом datetime
    df = df.set_index(pd.to_datetime(df['date_time'], format='%Y-%m-%d %H:%M:%S'))
    # print(delta_bar.df)

    # pick columns for our three data sources: candlesticks and TD
    candlesticks = df['open close high low'.split()]
    volumes = df['open close delta_time_sec'.split()]
    if not plots:
        # first time we create the plots
        global ax
        plots.append(fplt.candlestick_ochl(candlesticks))
        plots.append(fplt.volume_ocv(volumes, ax=ax.overlay()))
    else:
        # every time after we just update the data sources on each plot
        plots[0].update_data(candlesticks)
        plots[1].update_data(volumes)


if __name__ == '__main__':
    delta_bar = DeltaBar()
    # Запускаем сервер в своем потоке
    t = threading.Thread(name='service', target=service)
    t.start()

    plots = []
    ax = fplt.create_plot('RIH1', init_zoom_periods=100, maximize=False)
    update()
    fplt.timer_callback(update, 2.0)  # update (using synchronous rest call) every N seconds

    fplt.show()
  • обсудить на форуме:
  • QUIK

Прелесть и ужас опционов

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

Во первых строках — кратко о себе и о том, что, как и где торгую. Мне 46, в мир опционов пришел давно, лет 5 назад, но с первого захода не сложилось — торговал рублевыми опционами, и неудачно. Я потом объясню, почему неудачно. В прошлом году покинул, наконец, работу, открыл счет в IB, закинул туда столько, сколько не жаль потерять полностью, и начал учиться на свои кровные. Начал, как водится, с покрытых коллов. Потом перешел к голым путам. Кривая обучения выглядит классически: первые два месяца — уверенный, но небольшой плюс. 



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

Алгоритм, за который мне не стыдно. Crypto/Commodities/Penny Stocks

Несколько месяцев я торговал BRENT на MOEX с помощью собственного алгоритма и публиковал результаты под постами с названием «Рынок нефти и его переменные» .

Летом я занимался разработкой кода для перехода на международные площадки. На данный момент торговый робот подключается к рынкам через API брокера EXANTE. В своем телеграмм канале я публикую результаты торговых дней и показываю реальные брокерские отчеты. 

На Smart-Lab меня долго ругали за то, что мой алгоритм не имеет бектеста. Как я могу доверять такому роботу и такой стратегии, если у нее нет даже элементарного бектеста? В декабре мы взяли паузу в торгах и написали бектест для торгового алгоритма и проверили стратегию на всех ключевых инструментах. 

Бектест показал, что часть рабочих параметров необходимо подбирать индивидуально под каждый инструмент. Более того, параметры могут меняться после экспирации текущего контракта и перехода на новую серию фьючерса. Работа оказалась более сложной чем представлялось изначально. Тем не менее, за прошедшее время удалось научиться оптимизировать и работать с основными параметрами. В течение недели буду публиковать результаты бектестов и покажу, что получилось и чего ожидаю в будущем.

Есть и другие новости. Проект расширился: теперь мы также торгуем криптовалюты и пенни стоки.Невозможно было обойти стороной стремительный рост криптовалют. К проекту присоединился алгоритм, работающий с основными криптовалютными парами. Алгоритм работает круглосуточно, здесь будут появляться отчеты о его работе. На данный момент мы торгуем BTC и LTC на бирже Binance. В отличие от крупных бирж (CME/ICE), где минимальный депозит 10.000$, Binance позволяет работать с гораздо меньшими объемами денежных средств на счету. Для работы с криптовалютой мы решили использовать небольшую сумму, которой средний российский ритейл инвестор готов рискнуть на бирже. Проделав серии бектестов чтобы убедиться, что алгоритм и стратегия работает, мы запустились на 1400$ в конце января. Ниже, на картинке, вы можете увидеть результат работы алгоритма с 20 января по сегодняшний день: +60%. Период довольно короткий, однако, хорошие результаты бектестов позволяют считать, что дальше будет также — будем следить за этим здесь. Алгоритм торгует круглосуточно, работает полностью самостоятельно и не требует никакого участия инвестора. 
Алгоритм, за который мне не стыдно. Crypto/Commodities/Penny Stocks



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

Почему я сейчас не покупаю акции?

Это самый популярный вопрос ко мне. Подписчики заходят в публичный портфель, доходность которого за год составляет около 100%, смотрят сделки и недоумевают: «Так он с апреля прошлого года ничего не покупал! Тоже мне инвестор». 

Постараюсь объяснить. Вопрос лежит в плоскости управления капиталом. Покажу на простом примере.

Допустим, у вас есть портфель активов с простым соотношением:

  • 60% акции.
  • 40% облигации.
Почему я сейчас не покупаю акции?

Вы постоянно поддерживаете данную пропорцию, периодически проводите ребалансировку:

👉 Если один из активов сильно дешевеет, вы продаете часть другого актива, так как его доля выросла, и покупаете подешевевший актив.

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



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

Фундаментальный анализ тоже поддается автоматизации и вероятностному прогнозированию

Я на некоторых своих публичных вебинарах и лекциях рассказывал об элементах в моем подходе при оценке компаний с помощью фундаментального анализа. А также на свое курсе ТРИ КИТА ИНВЕСТИЦИЙ я подробно рассказываю, и показываю в Excel, как и что считать и принимать решение об инвестициях. Для удобства, многие расчеты у меня автоматизированы на Matlab и Python.

Мои оценки эволюционировали со временем, но начинал я как и многие с тех подходов, которые изложены в таких книгах как «Инвестиционная оценка» Дамодорана, «Стоимость компании» Коупленда, Коллера, Муррина и, конечно, «Анализ ценных бумаг» Грэма и Додда. Но мне всегда не давал покоя, тот простой факт, что все подходы, изложенные в этих книгах, не позволяют численно измерить вероятность сделанных оценок. Она неявным образом зашивается в прогнозы темпов роста и в ставки дисконтирования, которые используются для получения справедливой стоимости.

Поэтому я немного модернизировал подход, и сейчас называю его механической оценкой фундаментальных факторов и/или показателей финансово-хозяйственной деятельности предприятия. Помогает мне в этом понимание фундаментальных основ роста компаний, а также знание методов теории вероятности и математической статистики.



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

В сеть утекли данные Мосбиржи. Методичка ABC of stock trading. Пузырь небывалых размеров.

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

Инвестором недели будем считать блог Александра Шадрина, подписывайтесь на блог: smart-lab.ru/my/option-systems  — все посты по теме инвестиций в российские акции, являются результатом глубокой аналитической проработки.

Лучшие посты прошлой недели

👉🏻Инвестиции:

⭐️15❤️197 Александр Шадрин: Разумный инвестор. Реверс 

⭐️25❤️196 Виктор Петров: В сеть утекли данные среднего инвестиционного портфеля Мосбиржи 

⭐️25❤️195 Илья Пестов: На фондовом рынке США сформировался пузырь небывалых размеров  

⭐️22❤️101 Георгий Аведиков: ТОП-10 дивидендных идей по текущим ценам 

⭐️50❤️100 Levan_Investing: Прежде чем инвестировать в акции американской компании — прочти её 10-K отчёт  

👉🏻Трейдинг:

⭐️275(!)❤️339 Автор — ваш Мартыныч, Методичка ABC of stock trading от легенды Blastarr_no_1


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

О крахах рынка и больной голове Седого

Уже месяц прошел, как мы обсудили с Седым итоги года. поведаю их и вам. 

… на этот раз Седой был без ковидных заморочек. Встретил у порога дома, пожал руку и даже похлопал по плечу

— Ты чего? Перестал бояться? — Я думал что опять будем сидеть на расстоянии три метра и чихать в себя

— Ну, во-первых ты переболел. А потом — я ужжалился недавно. 

— Спутником?

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

— Да не только в спутнике ты ошибался, — ехидно вставил я

— Ой, давай без этого перца на раны. Это и так очевидно. Главное, чтобы выводы были сделаны правильные

— Ну расскажи. Выводы — это то, что я люблю. Особенно если они приводят к новым вводам

Седой плюхнулся в потертое, но видимо весьма удобное кожаное кресло

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

В светлый зимний сад принесли чай. Запахло мятой.

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

Все свободны

Все свободны

Прочел новую книгу Михаила Зыгаря «Все свободны», кто не знает это автор двух классный книг «Вся кремлёвская рать» и «Империя должна умереть». Михаил мне близок по духу, мы одного возраста, журналист, в прошлом военный корреспондент и главный редактор телеканала «Дождь».

Все свободны – книга про время перевыборов Ельцина в 1996 года, кроме того, там много отсылок в прошлое и будущее. Кто читал Зыгаря раньше знает его интересный стиль изложения истории, он объясняет словно ты не знаешь ничего и читаешь про какую-то далёкую страну.

«Все свободны» можно поставить в один ряд с такими книгами, как:

1. Крестный отец Кремля Борис Березовский, или История разграбления России (2000, Пол Хлебников)

2. Красный циркуляр (2015, Билл Браудер)

3. Вся кремлевская рать (2015, Михаил Зыгарь)

И кстати, если вы не читали из них ни одной книги, то «Все свободны» лучше читать после книги Хлебникова, по хронологии отлично ложиться.



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

Разумный инвестор. Реверс

Сегодня опять про диверсификацию, а также о планах; и последние новости по портфелю.

В январе 2021 г.:

-покупал КуйбышевАзот ао.

-продал Варьёганнефтегаз ап.

Не совсем, как я планировал месяц назад в Разумный инвестор 2021, а точнее совсем не по плану. Но на то были объективные причины, рынок вырос достаточно бодро в январе выше 3300-3500 п. и я остановил покупки в принципе.

Однако КуйбышевАзот еще купил, так как заметил, что при росте цен на газ, капролактам и карбамид, а это важные товары для компании – акции не особо реагировали. Я покупал по 157-165 руб., и потом уже после разгона РДВ и сдувания взял еще по 162 руб.

Разумный инвестор. Реверс

Посмотрел, что пишет РДВ про КУАЗ, так всё правильно, актив дешевле аналогов, рост цен на газ ему на руку, а также рост цен на карбамид. Есть, правда, у них неточность: они не знают о квазиказначейском пакете акций, считая его собственностью руководства компании.



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

8 компаний, которые каждый год платят дивиденды

Акции покупают, чтобы заработать не только на росте цены, но и на выплате дивидендов. Мы попросили аналитиков назвать компании, которые за последние пять лет лидировали по дивидендным выплатам.

Согласно подсчётам «Открытие брокер», больше всего дивидендов в течение последних пяти лет заплатили восемь компаний. В их числе МТС, Северсталь, Норникель и ЛСР. 

В 2015 году самый большой дивиденд в размере 22,7% от цены акции заплатил крупнейший производитель полиэтилена — компания Казаньоргсинтез. По итогам прошлого года наибольший дивиденд на уровне 13,9% заплатила по привилегированным акциям компания Татнефть. Это почти в два раза больше, чем можно было заработать на вкладах в крупных банках. 

8 компаний, которые каждый год платят дивиденды

Не все компании выплатили дивиденды за 2020 год. Выплаты могут происходить до середины 2021 года. Поэтому данные за 2020 год в этой таблице мы не указали.  



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

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