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

по

Нефть

    • 13 февраля 2022, 19:34
    • |
    • jelezo
  • Еще
день
Нефть

неделя
Нефть

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

Range график из тиковых данных

Написал скрипт, который переделывает тиковые данные в range заданной размерности.

Но есть нюанс, когда идет быстрый рынок, некоторые бары могут иметь одинаковое время открытия, что приводит к некоторому несоответствию range баров.

Range график из тиковых данных
<code>"""
Скрипт из файлов с тиковыми данными делает файл с рандже барами
"""
import re
from datetime import datetime
from pathlib import *

import pandas as pd


def zero_hour(cell):
    """ Функция преобразует время (с финама приходят часы без нулей (с марта 2021), которые pandas не воспринимает)"""
    cell = f'{int(cell)}'
    tmp_time = datetime.strptime(cell, "%H%M%S")
    return tmp_time.strftime("%H%M%S")


def run(tick_files: list[Path], razmer: int, target_dir: Path):

    for ind_file, tick_file in enumerate(tick_files, start=1):  # Итерация по тиковым файлам

        list_split = re.split('_', tick_file.name, maxsplit=0)  # Разделение имени файла по '_'
        tiker = list_split[0]  # Получение тикера из имени файла
        date_quote_file = re.findall(r'\d+', str(tick_file))  # Получение цифр из пути к файлу
        target_name = f'{tiker}_range{razmer}_{date_quote_file[0]}.txt'  # Создание имени новому файлу
        target_file_range: Path = Path(target_dir / target_name)  # Составление пути к новому файлу

        if Path.is_file(target_file_range):
            print(f'Файл уже существует {target_file_range}')
            continue
        else:
            df_ticks_file: pd = pd.read_csv(tick_file, delimiter=',')  # Считываем тиковые данные в DF

            # Создание DF под рандже бары одного тикового файла
            df: pd = pd.DataFrame(columns='<DATE> <TIME> <OPEN> <HIGH> <LOW> <CLOSE> <VOL>'.split(' '))

            for tick in df_ticks_file.itertuples():  # Итерация по строкам тикового DF
                print('\rCompleted file: {:.2f}%. Completed files: {:.2f}%'.format(
                    tick[0] * 100 / len(df_ticks_file.index),
                    ind_file * 100 / len(tick_files)
                    ),
                    end=''
                )

                if tick[0] == 0:
                    # Добавление строки в DF с рандже барами
                    df.loc[len(df.index)] = [int(tick[1]), int(tick[2]), tick[3], tick[3], tick[3], tick[3], tick[4]]
                    continue

                # Если бар сформирован по размеру возрастающий бар
                if df.loc[len(df.index) - 1, '<LOW>'] + razmer < tick[3]:
                    df.loc[len(df.index) - 1, '<CLOSE>'] = df.loc[len(df.index) - 1, '<LOW>'] + razmer
                    df.loc[len(df.index) - 1, '<HIGH>'] = df.loc[len(df.index) - 1, '<CLOSE>']
                    # Добавление строки в DF с дельта барами
                    df.loc[len(df.index)] = [int(tick[1]), int(tick[2]), tick[3], tick[3], tick[3], tick[3], tick[4]]
                    continue
                    # break

                # Если бар сформирован по размеру падающий бар
                if df.loc[len(df) - 1, '<HIGH>'] - razmer > tick[3]:
                    df.loc[len(df) - 1, '<CLOSE>'] = df.loc[len(df) - 1, '<HIGH>'] - razmer
                    df.loc[len(df) - 1, '<LOW>'] = df.loc[len(df) - 1, '<CLOSE>']
                    # Добавление строки в DF с дельта барами
                    df.loc[len(df.index)] = [int(tick[1]), int(tick[2]), tick[3], tick[3], tick[3], tick[3], tick[4]]
                    continue
                    # break

                # Заполняем(изменяем) последнюю строку DF с рандже баром --------------------------------------
                # Записываем <CLOSE> --------------------------------------------------------------------------
                df.loc[len(df.index) - 1, '<CLOSE>'] = tick[3]  # Записываем последнюю цену как цену close бара

                # Записываем <HIGH> ---------------------------------------------------------------------------
                if float(tick[3]) > df.loc[len(df) - 1, '<HIGH>']:  # Если цена последнего тика больше чем high
                    df.loc[len(df.index) - 1, '<HIGH>'] = tick[3]  # Записываем цену последнего тика как high

                # Записываем <LOW> ----------------------------------------------------------------------------
                if float(tick[3]) < df.loc[len(df.index) - 1, '<LOW>']:
                    df.loc[len(df.index) - 1, '<LOW>'] = tick[3]  # Записываем цену последней сделки как low

                # Записываем <VOL> ----------------------------------------------------------------------------
                df.loc[len(df.index) - 1, '<VOL>'] += tick[4]  # Увеличиваем объем

            # Изменение типа колонок
            df[['<DATE>', '<TIME>', '<VOL>']] = df[['<DATE>', '<TIME>', '<VOL>']].astype(int)
            # Преобразуем столбец <TIME>, где нужно добавив 0 перед часом
            df['<TIME>'] = df.apply(lambda x: zero_hour(x['<TIME>']), axis=1)

            df.to_csv(target_file_range, index=False)  # Запись в файл для одного тикового файла

        # break


if __name__ == "__main__":
    razmer: int = 250
    ticker: str = 'RTS'
    year_tick: str = '2022'

    source_dir_tick: Path = Path(f'c:/data_quote/data_finam_{ticker}_tick')  # Путь к ресурсному каталогу
    target_dir: Path = Path(f'c:/data_quote/data_prepare_{ticker}_range')  # Путь к целевому каталогу

    # Создание списка путей к файлам с тиками
    tick_files: list[Path] = list(source_dir_tick.glob(f'*{year_tick}*.csv'))

    run(tick_files, razmer, target_dir)
</code>

Размерность range баров.

Привет, Всем!

Хотел бы рассчитать размерность range баров, чтобы их количество в одном дне было бы как и количество 5 мин баров.

Написал скрипт но значения так разнятся. Может кто-то уже занимался таким вопросом? 

Рассчитанное значение величины range в поле <RAZMER>

Размерность range баров.
<code>"""
Для расчета рендж баров эквивалентных 5 мин
"""
from pathlib import *

import pandas as pd
import talib


def body(open: float, close: float) -> float:
        return abs(close - open)


if __name__ == "__main__":
    # 198 баров 5м в дне (с 7:00)

    period: int = 198
    source_file: Path = Path('c:\data_quote\data_finam_RTS_5m\SPFB.RTS_210301_220131.csv')
    df: pd = pd.read_csv(source_file, delimiter=',')  # Считываем тиковые данные в DF
    
    # Преобразуем столбец <TIME>, где нужно добавив 0 перед часом
    df['<BODY>'] = df.apply(lambda x: body(x['<OPEN>'], x['<CLOSE>']), axis=1)
    df['<RAZMER>'] = talib.MA(df['<BODY>'], timeperiod=period, matype=0)

    df_15: pd = df.loc[df['<TIME>'] == 150000]  # Бары в 15:00

    print(df_15.tail(20))

    """
    Получается, что рендж бар для фьючерса RTS должен быть размером 250, чтобы количество баров в дне, 
    примерно совпадало с с количеством 5 мин баров. 
    """</code>

Value Investment. Earnings Reports. Novo Nordisk (NVO)

2 февраля свой консолидированный отчет за четвертый квартал 2021 фин. года представил европейский фармацевтический концерн, датская Novo Nordisk A/S (NVO).
Novo Nordisk является крупнейшим в мире поставщиком инсулиновых препаратов от диабета. Доля продаж препаратов от диабета в валовых продажах компании составляет 85%. Nova Nordisk занимает около 30% доли мирового рынка инсулина, а по прогнозам самой компании, уже к 2025 году эта доля будет выше 33%.Компания сообщила, что в четвертом квартале увеличила валовую выручку на 14% (г/г), продажи инсулина увеличились на 1%. Продажи практически по всем сегментам компании выросли относительно четвертого квартала 2020г. Чистая прибыль увеличилась на 13%, а разводненная прибыль на акцию выросла на 15%. Компания сделала довольно детальный прогноз на весь 2022 фин. год, который предполагает рост по всем основным показателям. 
Подробный инвест. проект с расчетом справедливой стоимости для Novo Nordisk в формате pdf, можно скачать на нашей страничке www.patreon.com/HoldInvestors

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

Вся правда про Илью Коровина.

Всем привет)

В последнее время опять стали всплывать странные люди с мифами и откровенной ложью про меня, в том числе о том, что случилось со мной и моими клиентами в 18-ом году. Хотя достоверной информации об этом в сети масса и давно уже можно было во всем разобраться, что нормальные люди давно и сделали. Но есть те, кому факты не нужны, а нужно распускать сплетни, преследуя разные цели, в том числе и  просто хайпануть на известном имени, не особо разбираясь вообще в сути вопроса. Обычно я таких людей игнорирую, понимая истинную (часто неадекватную)  мотивацию их деятельности, да и мнение такой публики меня совершенно не интересует.

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



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

Мошенничество Тиньнкова или я не прав?

Всем здравствуйте. Хочу поделиться с вами ситуацией, которая со мной произошла. Нас обманывает либо Тинькоф, либо клиринговый центр. Вот подробности.
Купил 7шт за 1531983,45 продал за 1 542 446,52 разница 10463р Мошенничество Тиньнкова или я не прав?

Мошенничество Тиньнкова или я не прав?

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

Проф болезнь инвестора - синдром плюшкина.

    • 30 января 2022, 18:01
    • |
    • хм
      Популярный автор
  • Еще
В тему ЗОЖ. 

Общался
тут вчера с пенсионером, у которого мошенники с депозита выманили, через ВТБ онлайн, 3,5 млн руб.

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

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

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

Или пенсионеров — вкладчиков сбера, этих жизнь вообще ни чему не учит. Как в 1991 году инфляция сожрала все накопления, так и мозгов не прибавилось.

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

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

Налог на дивиденды иностранных акций: свежая инструкция

    • 29 января 2022, 08:52
    • |
    • Eevgeny
  • Еще
В этом году ФНС немного поменяла форму заполнения декларации 3-НДФЛ на сайте налоговой. Теперь вместо поля «Страна» — два поля: «Страна источника выплаты» и «Страна зачисления выплаты».
Страна источника выплаты — это страна, в которой зарегистрирована компания-эмитент. Для всех акций США это будет: 840 — США. Для депозитарных расписок — другие коды. Например, для Тинькофф: 196 — Кипр.
Страна зачисления выплаты — это страна регистрации брокера. Для всех русских брокеров: 643 – Россия. Для Interactive Brokers: 840 — США. Правда, пока на сайте нельзя ввести Россию. Возможно, в скором времени это исправят.

Еще поменялась форма ввода инвестиционного налогового вычета — это из-за введения упрощенного вычета по ИИС.

Я обновил свою инструкцию, которой сам пользовался в прошлом году. Учел в ней все нововведения. Может кому будет полезно. Для удобства оформил ее в виде pdf-файла и сделал несколько версий:


Для русского брокера:

Подробная — для тех, кто подает в первый раз:https://disk.yandex.ru/i/A4LQ8EzmGT4KNg



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

Как пульсята сливают деньги на рынке

    • 25 января 2022, 13:56
    • |
    • wkpbro
  • Еще

Никто не хочет богатеть медленно. Жажда халявы и легких денег будто бы зашита в менталитет русского человека. Я не перестаю удивляться людям, которые до сих пор верят в волшебную кнопку «бабло», нажав на которую можно быстро получить материальное богатство, ничем не рискуя. Действительность такова, что реальное «бабло» получают создатели таких кнопок, а не обычные пользователи. Казино запретили, ставки на спорт уже не так популярны, хайп на торги по банкротству вроде прошел, а вот инвестиции/акции/криптовалюта/картинки NFT — это то, на чем сегодня пытаются подняться искатели легких денег.

Хочу вам показать к чему может привести путь типичного «начинающего инвестора», который решил заработать деньжат, скачав брокерское приложение на свой смартфон. Этот пост будет ярким примером того «как не нужно делать» и к чему могут привести беспорядочные половые сделки на бирже.
Как пульсята сливают деньги на рынке



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

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