Избранное трейдера ezomm

по

Данные из 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

Дыра в ВТБ или все для удобства клиента и плевали мы на вашу безопасность

    • 11 февраля 2021, 22:57
    • |
    • Rock_er
  • Еще

Всем привет.
Я не трейдер, но регулярно, на протяжении нескольких лет инвестирую в акции и ETF. Сумма уже преодолела психологическую отметку, когда беспокоишься не только о надежности брокера или банка (поэтому и был выбран  ВТБ), но и защиты от мошенников или доступа к личному кабинету посторонних, вследствие явных дыр в безопасности ВТБ, которые они не признают (якобы все делается для удобства клиента). Написанное больше касается именно банка, но немного затронул тему и восстановления доступа к брокерскому счету.
Так вот, уже не в первый раз, в комментариях встречаю рекомендацию в ВТБ банке поставить запрет на «удаленное восстановление доступа». Мол, это защитит от мошенников или если вы потеряете сим карту (Например, тут https://smart-lab.ru/blog/676249.php#comment12208793) Хотел сначала написать просто комментарий, однако затем решил выделить в отдельный пост (кстати первый аж за 6 лет, как оказалось. Быстро же летит время), предназначенный  для таких же параноиков как я, а вдруг пригодиться.



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

Посчитал сколько рублей в индексе IMOEX

Индекс МосБиржи — ценовой, взвешенный по рыночной капитализации (free-float) композитный индекс российского фондового рынка. Валютой расчета индекса являются рубли. Собственно его так и принято называть «рублевый индекс».

Основой для расчета являются рублевые цены активов, включенных в индекс. Но, всем известно, что некоторые из инструментов имеют в качестве основной валюты совсем не рубли. Более того, в прошедшем году состав индекса испытал буквально нашествие депозитарных расписок. Посмотрим как это сказалось на его «рублевости».

Берем историю индекса с 2012 года, и считаем. Я не стал проводить поквартальный расчет, взял только данные на момент декабрьских ребалансировок. Результаты получились такие.


Общая картина

  Валюта
Дата ребалансировки SUR USD EUR


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

Смотрим на Энел

Энел Россия — энергетическая компания, которая делает ставку на низкий углеродный след. Эта энергия будет пользоваться спросом у наших экспортеров. Перспективная энергетика 21 века. Это дочерняя компания итальянской группы Enel. Отрасль электроэнергетики и теплоэнергетики. Фиксированный дивиденд 0,085 рублей на акцию на следующие два года. При стоимости в 0,913 рубль компания даёт приличную доходность. 
Список ветропарков: Мурманская область на 201 МВт, Ростовская область на 90 МВт, Ставропольский край на 71 МВт. ГРЭС на природном газе: Невинномысская ГРЭС на 1530,2 МВт, Среднеуральская ГРЭС на 1578,5 МВт, Конаковская ГРЭС на 2520 МВт

При этом компания теряла в стоимости и надо будет разобраться почему.

ROIC по годам:
2016 — 13,23%
2017 — 22,37%
2018 — 17,92%
2019 — 2,16%
Ожидаемая рентабельность за 2020 год  составляет 13,8%

При этом требуемая доходность первое время была существенно выше доходности компании. По отчету компании рублевый долг в 2016 имел среднюю ставку в 12%, в 2017 — 10,9%, в 2018 — 9,3%, в 2019 — 8,5% и стала отсутствовать валютная составляющая. В 2020 ожидается дальнейшее снижение. Учитывая факт снижения требуемой доходности как по долговому финансированию, так и по акционерному капиталу (сейчас это около 9,05%) Энел становится привлекательной инвестицией.



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

Новый продукт на Мосбирже

Вчера разбирала новый продукт на Мосбирже от Финам БПИФ «Дивидендные Аристократы США». Тикер FMUS.

Я радуюсь, что появляются новые продукты, растёт конкуренция, а значит, по рыночным законам вскоре начнёт снижаться комиссия. Для частных инвесторов это хорошо.

Правда, в реальности что-то пошло не так. Россия, ТУПО копируя Запад, все-таки умудряется идти своим путём. И особенность этого пути в конских комиссиях. Об этом с расчетами чуть позже, а пока про ЦА продукта.

БПИФ «Дивидендные Аристократы США» создан для какого-то дурака инвестора с плохим зрением, который прогуливал математику в школе с 1 по 11 класс. Видимо, по мнению провайдера, слова «американские акции», «дивиденды», «всего по 10₽» (пассивный доход ещё забыли написать) должны очаровать и загипнотизировать неискушённого российского инвестора из глубинки и он купит этот вредный для финансового здоровья продукт. Всего то 10₽!
Рассчитано на толпу, которая ринулась на фондовый рынок, и скупает все без разбору, не читая, не считая.



( Читать дальше )
  • обсудить на форуме:
  • ПИФы

Стратегия внутридневной сезонности (торговый алгоритм) для FX

Коллеги, всем привет! 

Спешу с вами поделиться одной из своих стратегий FX, она проста и гениальна, торгует волатильностью.
Написана на языке Lite-c для программного инструмента Zorro, подробнее в видео.


Опубликую основную часть кода:

// strategy specifications
tradeIntradaySeasonalityOnHour(«EUR/USD», 11, 14, «USD», ET, 0.43);
tradeIntradaySeasonalityOnHour(«GBP/USD», 10, 16, «USD», ET, 0.48);
tradeIntradaySeasonalityOnHour(«USD/CHF», 9, 19, «USD», ET, 0.48);
tradeIntradaySeasonalityOnHour(«EUR/AUD», 6, 17, «EUR», CET, 0.53);
tradeIntradaySeasonalityOnHour(«EUR/NZD», 6, 17, «EUR», CET, 0.53);
tradeIntradaySeasonalityOnHour(«EUR/USD», 8, 17, «EUR», CET, 0.43);
tradeIntradaySeasonalityOnHour(«EUR/CHF», 9, 16, «EUR», CET, 0.48);
// note for JST
tradeIntradaySeasonalityOnHour(«USD/JPY», 10, 14, «USD», JST, 0.48);

обязательно используйте фильтр волатильности.

 



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

Новости фондового рынка США

  • Apple, Facebook и Tesla обвалились вопреки рекордным отчетностям
  • Microsoft отчиталась о рекордных квартальных продажах
  • AMD завершила 2020 год с рекордными доходами
  • Рекордные потери за всю историю Boeing
  • Акции Beyond Meat взлетели на 26% после новости о партнерстве с PepsiCo
  • Novavax заявила об эффективности вакцины от COVID-19 около 90%
  • Palantir провел Demo Day
  • Goldman Sachs предупреждает об опасном пузыре на 39 акциях
  • Новости IPO
  • Фондовые индексы США завершили неделю в самом большом минусе с октября

Подпишись на телегу и будь в курсе новостей фондового рынка.



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

Любителям ТА - подарок))

    • 19 января 2021, 11:16
    • |
    • Valday
  • Еще
Смотрю частенько возникают споры между  любителями  ТА и остальной публикой, я не являюсь приверженцем ТА, но вот поднакопилась  коллекция различных ТАшных стратегий. Не нашел как тут можно прикреплять файлы, поэтому буду постить текстом. Пользуйтесь и ТАшный Бог вам в помощь! Заранее извиняюсь перед авторами этих стратегий))) 


«Построена на стохастике, дневные графики, размерность стохастика стандартная (5,3).

Тренд определяем по стохастику — как только стохастик ушёл в зону перекупленности (перепроданности), то считаем, то начался тренд в этом направлении. Для присоединения к тренду ждём отката стохастика за линию 50. Как только стохастик ушёл за линию 50 (но ещё не дошёл до противоположной области перекупленности-перепроданности), ставим ордер на край дневной свечи. Если ордер не сработал, передвигаем его на край следующей свечи, пока ордер не сработает или пока стохастик не уйдёт в зону перекупленности-перепроданности, начав тем самым тренд противоположной направленности. Стоп и трейлинг-стоп по локальному экстремуму (как вариант — по краю дневной свечи). Точка профита определяется перебором вариантов. Я измеряю величину профита в отношении к среднедневной волатильности (среднедневную волатильность определяю по формуле Mov(ATR(1),260,S) на дневных графиках). Система хорошо работает на AUD (оптимальное значение профита 1.7 среднедневной волатильности), на EURJPY (профит 1.7 среднедневной волатильности), на NZD (профит 0.8 среднедневной волатильности). Совсем не работает на CAD, CHF и JPY. На остальных парах работает плохо, лучше не использовать.



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

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