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

по

Все ли знают, что в Quik'е у каждого скрипта main() свой отдельный Windows-поток (thread)?

Пишу потому, что к большому моему удивлению открыл, что весьма активные писатели Смарт-лаба этого не знают. В главном потоке программы Quik работают только функции обратного вызова типа OnTransReply, OnTrade и индикаторы. Кстати, OnTrade срабатывает не только по заявкам из скрипта, но и поданным интерактивно.

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

Хотя QLua обладает весьма эффективными средствами взаимодействия с любым приложением Windows, не так просто придумать повод для обращения QLua за посторонней помощью. Например, сохранять на диске текущие данные QLua может массой способов от простейшего io.read/write до SQLite.
Количество библиотек для QLua просто изумляет.

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

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

Беспроигрышная стратегия для фьючерсов. Чудеса и их разоблачение

О чудесах календарного спреда фьючерсов уже доложено в статье некого 3Qu. smart-lab.ru/blog/586202.php

Поэтому сразу приступим к разоблачению. Какая проделана работа.
В Qukk'е на QLua написан монитор, который с 2020.01.17 по 2020.02.06 каждые 200 мсек записывал в текстовый файл офера и биды RIH0 и RIM0. Эти данные представлены как стандартный файл котировок Метастока, где Open = Bid(H0), High = Ask(H0), Low = Bid(M0), Close = Ask(M0).
Программа WealthLab показывает график этого файла, не понимая его значения. Но мой скрипт на C# по этим данным строит другие графики:

Диаграмма из WealthLab
Две точечные линии, зелёные и красные ступеньки, в середине центральной панели:
1) SpreadLong = Ask(H0) — Bid(M0).
2) SpreadShrt = Bid(H0) — Ask(M0).
По цене SpreadShrt приходится продавать спред фьючерсов, когда он дорог а по цене SpreadLong — покупать спред, когда он подешевл.
Чтобы определить, дорог спред или дёшев, строим скользящие средние  с горизонтом 10 мин (серые линии)

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

Получение котировок акций при помощи Python

    • 08 февраля 2020, 19:13
    • |
    • Aleks
  • Еще

Статья о том, как получить ежедневные исторические данные по акциям, используя yfinance, и минутные данные, используя alpha vantage.

Как вы знаете, акции относятся к очень волатильному инструменту и очень важно тщательно анализировать поведение цены, прежде чем принимать какие-либо торговые решения. Ну а сначала надо получить данные и python может помочь в этом.

Биржевые данные могут быть загружены при помощи различных пакетов. В этой статье будут рассмотрены  yahoo finance и alpha vantage.

Yahoo Finance

Сначала испытаем yfianance  пакет. Его можно установить при помощи команды pip install yfinance. Приведенный ниже код показывает, как получить данные для AAPL с 2016 по 2019 год и построить скорректированную цену закрытия (скорректированная цена закрытия на дивиденды и сплиты) на графике.

# Import the yfinance. If you get module not found error the run !pip install yfianance from your Jupyter notebook
import yfinance as yf

# Get the data for the stock AAPL
data = yf.download('AAPL','2016-01-01','2019-08-01')

# Import the plotting library
import matplotlib.pyplot as plt
%matplotlib inline

# Plot the close price of the AAPL
data['Adj Close'].plot()
plt.show()


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

Брошенная стратегия. Дневник разработчика.

    • 06 февраля 2020, 16:47
    • |
    • 3Qu
  • Еще
Сегодня окончательно сделал и протестировал DLL. DLL через Lua получает из Quik реал-тайм данные о истории, состоянии текущей свечи, стакане, ленте сделок и пр., и поставляет все эти данные в ТС. Также DLL считает (пока не все) необходимые данные для оценки вектора текущего состояния инструмента, и также передает их ТС. Сама ТС еще не написана, только данные получает. DLL также пишет все получаемые данные в БД Sqlite, где они, при необходимости, доступны ТС.
И, чтобы не быть голословным, картинки.
История, последние 15 записей:
Брошенная стратегия. Дневник разработчика.

Лента сделок, последние 15 сделок.
Брошенная стратегия. Дневник разработчика.

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

Quik->Lua->C++DLL. Опыт разработки и немного кода.

    • 04 февраля 2020, 13:54
    • |
    • 3Qu
  • Еще

Начал вчера работы по реализации "Брошенной стратегии". Хорошо когда есть наработки: взял готовые куски кода, немного доработал под новые нужды, соединил их вместе и уже все готово — почти все необходимые данные передаются в DLL, расставляются по местам и готовы к использованию. С этим почти закончено, остальное будет делаться по ходу пьесы, и по мере необходимости.

С передачей данных закончено, а стратегия даже не начиналась. Система новая и архитектора системы пока не ясна, есть несколько вариантов, выбрать из которых не так просто.
Пока суд, да дело, решил написать о передаче данных из Quik в С++DLL.
О том как сделать простую С++DLL для работы с Quik-Lua написано на сайте https://quikluacsharp.ru  здесь и о передаче данных из Lua — здесь и в других материалах сайта. Наверняка многие из вас все это видели и знают, а некоторые это даже применяют. Я это все не использую, не очень разбирался, но, тем не менее, сам сайт



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

MVP на нейронных сетях

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

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


SWT-метод. О фильтрах и спектральном анализе

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

SWT-метод. О фильтрах и спектральном анализе
Рис.1.1. Отображение индикатора SWT в режиме по умолчанию

Технически разделение производится с помощью системы полосовых фильтров (см.рис.1.2), на вход которых поступает временной ряд, соответствующий графику цены, а на выходе получается набор функций времени, на которые этот сигнал разделяется.
SWT-метод. О фильтрах и спектральном анализе

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

Нужна помощь кодера: в каком плоте нарисовать график?

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

Приведу пример:
Нужна помощь кодера: в каком плоте нарисовать график?



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