Избранное трейдера NikGood
Построение нестандартных графиков в Python при помощи библиотеки finplot.# В КВИКе запускаем луа-скрипт 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()
Решил поделиться одним техническим способом, который я использую для определения тренда – среднюю с изменяющимся диапазоном усреднения. Но перед тем, как выложить все это искушенной публике, проверил есть ли что похожее. Оказывается, есть, но только по названию, а не по сути (может, правда, я чего-то не нашел). Это индикатор VIDYA. Ниже я приложу справку с описанием из интернета с расчетом VIDYA. VIDYA немного модифицирует экспоненциальную скользящую среднюю EMA. Период усреднения в EMA – это доля, которая определяет сколько взять текущей цены, а сколько предыдущего значения EMA. То есть вся фишка VIDYA в добавлении переменной в размер доли.
Если озвучивать задачу, которую я перед собой поставил, то это максимально быстро выявить тренд с минимальными ошибками. Самый простой трендовый индикатор – средняя, да и самый удобный при работе в Excel. У меня в Excel в принципе все расчеты. Дальше немного порассуждаю. При боковике с быстрыми изменениями направления движения средняя с большим усреднением не покажет хорошего результата, а при длительном движении средняя с маленьким периодом усреднения будет чаще показывать разворот, которого еще нет. Значит при боковике или быстро изменяющихся движениях рынка период средней должен уменьшаться, а при трендовом движении в одну сторону период средней должен увеличиваться.
Всем привет.
Я не трейдер, но регулярно, на протяжении нескольких лет инвестирую в акции и ETF. Сумма уже преодолела психологическую отметку, когда беспокоишься не только о надежности брокера или банка (поэтому и был выбран ВТБ), но и защиты от мошенников или доступа к личному кабинету посторонних, вследствие явных дыр в безопасности ВТБ, которые они не признают (якобы все делается для удобства клиента). Написанное больше касается именно банка, но немного затронул тему и восстановления доступа к брокерскому счету.
Так вот, уже не в первый раз, в комментариях встречаю рекомендацию в ВТБ банке поставить запрет на «удаленное восстановление доступа». Мол, это защитит от мошенников или если вы потеряете сим карту (Например, тут https://smart-lab.ru/blog/676249.php#comment12208793) Хотел сначала написать просто комментарий, однако затем решил выделить в отдельный пост (кстати первый аж за 6 лет, как оказалось. Быстро же летит время), предназначенный для таких же параноиков как я, а вдруг пригодиться.
Пока весь смартлаб орет о ставках/нефти/рубле/улюкаеве/горепрогнозистах/подливных гуру и тд — я подготовил, как мне кажется, норм постецкий. Вашему вниманию тщательно сцеженная, рассортированная по тематикам мякотка для работы, учебы и отдыха в нашей общей интернет-помойке:
Сайты и приложухи для трейдинга:
finviz.com — это божественно! Бэнчмарк всех фин сайтов по интерфейсу и удобству навигации, множество плюшек отбора акции для домашки, и визуальной подачи инфы. Бесит, что календарь только для амеров и на текущую неделю.
forexpf.ru — 1 год назад этот сайт лежал когда на него ринулась каждая домохозяйка отслеживать курс рубля. Нормальный ресурсоёмкий сайт, чтобы попырому прочекать нефтянку, голду или бакс.
freestockcharts.com — если вдруг упал tradingview.com.
TLDR:
1) Возможна
2) Цену экспирации на ММВБ дает лондонская биржа ICE;
3) Берутся средние данные с 10:30 до 19:30 (лондонское время) предыдущего рабочего дня;
4) Короткий провал (возможно) будет отсеян.
Для начала скажу, что в теории вполне возможно стечение обстоятельств, когда цена на любой из контрактов, входящих в индекс может торговаться по отрицательной цене. Способ определения цены на Brent примерно такой же, как на Crude Light. Если все, кто желает отказаться от поставки ломанутся на выход, то цена может упасть до любого отрицательного уровня за небольшое время.
Теперь давайте разберемся, как определяется цена экспирации на фьючерс на Brent на ММВБ. Для начала откроем спецификацию контракта на сайте мосбиржи:
https://www.moex.com/ru/contract.aspx?code=BR-5.20
по этой ссылке спецификация полностью:
https://fs.moex.com/files/3243/21741
Цитирую:
В целях определения Обязательства по расчетам текущая Расчетная цена (цена исполнения Контракта) считается равной значению индекса на нефть сорта «


Последние две недели на всех мировых рынках резко повысилась активность, количество биржевых данных выросло в 2-3 раза. Из-за этого у многих пользователей терминал QUIK начал безбожно тормозить и виснуть. Сервера брокеров также с трудом переваривают повышение нагрузки и наплыв клиентов, желающих что-либо купить-продать (по слухам кто-то из брокеров висел аж целую неделю))) ).
На Смарт-Лабе появилось несколько постов с советами как избавиться от тормозов. И меня сильно поразила неадекватность предлагаемых действий. Люди готовы покупать новое железо за бешеные деньги, создавать какие-то командные файлы и заниматься прочей ерундой. А нужно всего лишь включить голову и разобраться в причинах тормозов. Когда программисты разрабатывают какую-либо программу, они всегда оптимизируют ее для работы на определенном «средне статистическом» компьютере, закладывая при этом кратный запас по производительности. Если вдруг эта программа (QUIK) начинает неадекватно тормозить и виснуть на обычном современном компьютере — значит дело почти наверняка не в железе, и даже не в самой программе, а в ее конфигурации (настройках). Т.е. нам нужно правильно настроить терминал QUIK , а уже потом апгрейдить железо, менять туда-обратно версии и бухтеть на Смарт-лабе.