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

по

Автоматизируем e-disclosure.ru

Автоматизируем e-disclosure.ru


Добрый день читатели форума Smart-Lab. Я, как и вы, являюсь инвестором и для меня важно получать новости компаний как можно быстрее. Постоянно мониторить сайт e-disclosure.ru, на который выкладываются все отчеты компаний, я устал, да и времени не так много. А недополучать прибыль мне не хочется. 

Думаю проблема актуальна и для вас.

Решил сделать с командой программистов телеграмм-бота по отслеживанию новостей компаний. Этот парсер отправляет вам уведомление, когда появляется, например, новый отчет по организации. Работает автоматически с задержкой 5 мин.

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

Автоматизируем e-disclosure.ru



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

Дорого значит ликвидно? Сравнительный анализ акций России и США (+ код на Python)

Цель исследования  — показать связь между капитализацией и ликвидностью на российском рынке через пересечение позиций в портфелях. Распространенная точка зрения, что рыночная капитализация хорошо отражает ликвидность. Например, в индексе ММВБ-Мосбиржи больший вес дается более дорогим компаниям. Этот пост является дополнением к исследованиям по факторным премиям, опубликованным ранее на SL: https://smart-lab.ru/blog/791938.php

В этой статье также будем проверять гипотезы через построение портфелей, но технические детали вынесены в блокнот с кодом в формате .ipynb. Состоит из кодовых блоков и комментариев. По нему можно полностью реплицировать исследование на своих данных. Выглядит так:
Дорого значит ликвидно? Сравнительный анализ акций России и США (+ код на Python)

Ссылку размещу в конце текста.

 

Основные результаты

 

  • В США 25% самых дорогих компаний почти полностью отражают ликвидность. Позиции в портфеле самых дорогих компаний совпадают с 25% наиболее активно торгуемыми бумагами на 90%. В России пересечение аналогичных портфелей всего 73%, т.е. у четверти бумаг есть рассинхронизация в ликвидность-стоимость. В отдельные периоды значение доходило до 50%.



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

Google таблица, которая делает быстрый фундаментальный анализ акции в 1 клик


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






Google таблица, которая делает быстрый фундаментальный анализ акции в 1 клик




«Таблица для всех» доступна по ссылке.




Не вводите все подряд (работают только иностранные акции), т.к. Google начнет выдавать ошибки из-за большого количества запросов. Ввели тикер, ждете, как только компания поменяет название, значит данные подгрузились и можно смотреть результат.



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

Стратегия "Хай-Лоу предыдущего дня".

         В 2019 году в TSLab сделал тесты стратегии «Hi_Lo», которая установлена в базовой версии этой программы. Смысл стратегии заключается в том. что вход в лонг осуществляется при пробитии хая предыдущей свечи, вход/переворот в шорт осуществляется при пробитии лоя предыдущей свечи. В TSLab мною был создан скрипт для тестирования одновременной торговли несколькими инструментами с целью диверсификации:

 Стратегия "Хай-Лоу предыдущего дня".
        В результате тестирования и опыта торговли остановился на следующем варианте: торгуются фьючерсы RTS, Si, BR в соотношении 1:6:4, дневной таймфрейм. Результаты тестов за период с 01.01.2003 г. по настоящее время без капитализации, без учета комиссии и проскальзывания представлены ниже:

 Стратегия "Хай-Лоу предыдущего дня".



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

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

Индикатор AT-levels для отрисовки горизонтальных уровней для quik

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

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

Та самая торговая система

    • 15 ноября 2021, 19:35
    • |
    • GOLD
      Популярный автор
  • Еще
Друзья, спасибо за звезды. Вот та самая система 100%/250% годовых:

Берем фьюч Сбера на минутках. Навешиваем Simple MA. Выставляем период 70 и расчет по цене Median. Отрисовку SMA делаем точками, а не линией. Перестаем бухать и начинаем пристально пялиться в эти точки............

Если не в позе, то открываем лонг, когда 3 точки SMA поднимаются вверх.
Если не в позе, то открываем шорт, когда 3 точки на SMA опускаются вниз.

Для лучшего понимания привожу рисунок шортового сигнала:

Та самая торговая система

Точки на SMA — 1,2,3 — идут вниз. Как только сложилась такая нехитрая конструкция и мы не в позе, то встаем в шорт на открытии следующей свечи после точки 3 с тейком 1% и стопом 1% от цены открытия. Сидим на попе ровно до сработки тейка или стопа. Если мы не в позе и точки пошли вверх — встаем в лонг и сидим в нем по аналогичному сценарию. Входим и выходим по рынку. Но никто не запрещает дрочить лимитниками — это дело вкуса. В конце каждого дня после 23:45 принудительно закрываем позу, если она осталась открытой. На утренней сумасшедшей свече не открываем позу, чтобы не скользить носом по вазелину.

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

₽ Бесплатный зарабатывающий робот: качаем

    • 01 ноября 2021, 21:54
    • |
    • Q Bot
  • Еще
Для тех, кто пока не в теме: у нас тут сериал, и это не первая серия.
Качать будем не робота, а данные для него. Для них. Для всех.

Что мы делали до этого?
1. Скачали и запустили платформу OsEngine
2. Познакомились с главными разделами, почитали доки

3. Скачиваем исторические данные

Напомню, зачем нам исторические данные. Они нам нужны для тестов и оптимизации. Умные люди роботов никогда не запускают сразу в «боевом» режиме для управления настоящими деньгами. Сначала нужно проверить, смог бы робот что-то заработать со своим алгоритмом на каких-то предыдущих периодах времени. Мы скармливаем роботу историю давно прошедших торгов, он пытается торговать, будто идут настоящие торги, и выдает нам какой-то результат. Есть заработок — хороший робот. Нет заработка — тоже наверняка хороший ;-) Но для чего-то другого, а не для заработка.

На всякий случай сообщу еще одну очевидную вещь, которая может оказаться не такой уж очевидной для новичков. Когда робот торгует по-боевому в реальном времени, одна минута проходит за одну минуту, а год проходит за один настоящий календарный год. Когда мы тестируем робота, мы можем подсовывать ему данные гораздо быстрее. Переварил робот свечку — сразу даем ему следующую. И 600 минутных свечек (10 часов реального времени) робот может обработать за несколько миллисекунд или секунд. Таким образом, за считанные минуты мы можем протестировать месяцы или годы предыдущих торгов.

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

Шаблон торговой системы на Python (backtrader, quantstats)

    • 22 сентября 2021, 21:54
    • |
    • Diamond
  • Еще
Сначала я пытался бэктестить системы в TradingView и этого было достаточно для быстрой оценки торговых гипотез, но оказалось, что мало просто знать, где купить и где продать. Не менее важно понимать, сколько купить или продать и для этого нужны другие инструменты.

Зачем Python?

Лично мне он показался удобнее. Например, можно быстро подключить telebot и система начнёт отправлять сигналы прямо в телегу на все девайсы. Работать со скриптами можно даже на айпаде где-нибудь в дороге, тоже плюс.

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

Что потребуется?

— backtrader для логики торговой системы

— quantstats для формирования отчёта

— Jupyter Notebook, если нужно удобнее редактировать код

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

Анализ и визуализация данных в финансах — анализ ETF с использованием Python

    • 18 сентября 2021, 00:55
    • |
    • Aleks
  • Еще
С проникновением аналитики во многие сферы нашей жизни она не могла обойти стороной финансы. В этой статье рассмотрим ее применение для анализа ETF с целью их анализа, в том числе и с применением визуализиции.

1. О данных

Для анализа будем использовать данные ETF c базовой валютой USD: FXCN, FXRL, FXIT, FXUS и FXRU. Временной ряд рассмотрим за три года с 2018 по 2020 года. Само исследование проведем в Google Colaboratory.

Как обычно в начале импортируем все необходимые библиотеки для дальнейшей работы.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from google.colab import files
import warnings
warnings.filterwarnings("ignore")
Сначала необходимо получить данные. Есть несколько способов. Мы воспользовались — взяли их с Finam в формате csv. Дальше написал функцию для обработки полученных данных и при помощи concat свел их в один датафрейм.

def changeDF(df):
  df['date'] = pd.to_datetime(df['<DATE>'].astype(str), dayfirst=True)
  name =[x for x in globals() if globals()[x] is df][0]
  df = df.drop(['<DATE>','<TIME>', '<OPEN>', '<HIGH>', '<LOW>'], axis=1)
  df = df.set_index(['date'])
  df.columns = [name+'_cl', name + '_vol']
  return df

fxgd_change = changeDF(fxgd)
fxrl_change = changeDF(fxrl)
fxit_change = changeDF(fxit)
fxus_change = changeDF(fxus)
fxru_change = changeDF(fxru)
fxcn_change = changeDF(fxcn)

etf = pd.concat([fxgd_change, fxrl_change, fxit_change, fxus_change, fxru_change, fxcn_change], axis=1)

etf.head()
В результате получили:

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

Хотите попрогнозировать рыночные котировки? Нет проблем - вот код.

    • 14 сентября 2021, 22:46
    • |
    • 3Qu
  • Еще
Итак, код обучения и прогнозирования нейросетью рыночных котировок на 5 минут.
import sqlite3 as sql
from scipy.stats import logistic
import math
import numpy as np
import numpy.random as rnd
import matplotlib.pyplot as plt
from sklearn.neural_network import MLPRegressor

sdata =[]
sql1= "select ticker, date, open, high, low, close, vol \
    from Hist_1m where ticker_id=1 order by Date;"
con=sql.connect('C:/Users/ubase/Documents/StockDB/StockDB21.sqlite')
cur=con.cursor()
cur.execute(sql1)
sdata=cur.fetchall()
con.commit()
con.close()

Ldata = len(sdata)
N = 8000 # Количество сделок
ld = 5 #Продолжительность сделки
NNinterval = 20 # Количество входов NN

# Генерация случайных чисел
rng = rnd.default_rng()
rm=rng.integers(0, Ldata, N )

class Candle:
    tr = 0
    dt = 1
    o = 2
    h = 3
    l = 4
    c = 5
    v = 6
    
cl = Candle
DataC =[sdata[i][cl.c] for i in range(0,Ldata)]

# sigmoid линейность до 0.5
def sigmoidnorm(x, alfa = 0.9, xmin = -1.3, xmax = 1.3):
    return (xmax - xmin)*((1 / (1 + math.exp(-x*2.0*alfa))) - 1.0) + xmax

x = [0.002 * i - 3 for i in range(0,3000)]
y = [sigmoidnorm(x[i]) for i in range(len(x))]


plt.plot(x,y)
plt.grid()
plt.show()

# формируем сделки.
def DealsGenL(rm,ld):
   #Lm = len(rm)
   ix = []
   x = []
   pr = []
   
   for i in range(0,N):
        if rm[i] + ld < Ldata and rm[i] - NNinterval - 1 > 0:
            delta = (sdata[rm[i]+ld][cl.c] - sdata[rm[i]][cl.c])/sdata[rm[i]+ld][cl.c]*100
            x0 = [sigmoidnorm((sdata[rm[i] - j][cl.c] - sdata[rm[i]][cl.c])/sdata[rm[i]][cl.c]*100) \
                 for j in range(0, NNinterval)]
            ix.append(rm[i])
            x.append(x0)
            pr.append(delta)
   return ix, x, pr


Ix, X, Pr = DealsGenL(rm,ld)



Ib = 0
Ie = 100

plt.plot(X)
plt.legend()
plt.grid()
plt.show()


plt.plot(Pr, label = 'Prof')
plt.legend()
plt.grid()
plt.show()


regr = MLPRegressor(hidden_layer_sizes = [30,20,15,10,5], \
                    max_iter=500, activation = 'tanh')

regr.fit(X, Pr)
Out = regr.predict(X)

plt.plot(Pr, Out, '.')
plt.grid()
plt.show()
И вот результат прогнозирования:

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

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