Постов с тегом "Алготрейдинг": 4534

Алготрейдинг


алготрейдинг - подход к биржевой торговле, основанный на автоматизации торгового процесса при помощи программных алгоритмов и различных аппаратных решений.

Ниже приведены все записи на нашем сайте по теме алготрейдинга.

Что нужно роботизировать при торговле на бирже?

   Всем привет! С Вами вновь космонавт с МКС Михаил Тихий.
   С Наступающим! Здоровья Вам и всего доброго!

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

   Взял и спросил советчика о том, что нужно роботизировать. Интересно, что он ответит, и как считаете вы?
На мой взгляд — вопрос простой, но многие не очень правильно его понимают. 
Короче говоря, решил немного по-умничать.
 
   Свой ответ уже написал и ссылку на него добавлю позже в этот пост.

   Добавлю, т.е. поясню вопрос — что главное нужно роботизировать?

В 12:58 добавил ответ:
Вот ссылка на мой ответ — в 10-17 там моё сообщение на МФД.РУ (с ошибкой одно слово написал, но редактировать не стал, т.к. время изменится):
forum.mfd.ru/forum/poster/?id=61469

Поясню этот ответ. На мой взгляд, многие пытаются роботизировать что угодно, т.е. метод какой-нибудь, стратегию итд., но не самое главное — СВОЮ УСПЕШНУЮ РУЧНУЮ ТОРГОВЛЮ. 

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

Клятва на 2020 год

Клятва на 2020 год

Заепало уже сливать руками.

Анализ обезличенных сделок, рабочий прототип приложения.

Решил заморочиться над анализом обезличенных сделок.
Зачем ?
1) Меня интересует структура объема по конкретному инструменту. Не просто общий объем на покупку и продажу, а были ли очень крупные покупки или продажи, на количество акций, которое раз в 30-100 превышает среднее количество? А каково соотношение покупка/продажа таких крупных сделок? Например: по конкретному инструменту «цену» колбасит вверх/вниз на 1% но при этом видно, что кто-то аккуратно, с учетом большого объема заявок на продажу — только выкупает акции большими лотами. Какой вывод можно сделать, если увидеть подобную ситуацию ?
2) Меня интересует скорость изменения числа сделок по каждому инструменту.
3) Анализ поведения ботов. Приведу пример: если наблюдать за лентой сделок, то периодически встречается серия сделок с разницей во времени в доли секунды, с одинаковым числом акций (часто либо «1» либо «100») и либо вообще без разницы в цене, либо цена отличается на копейку. И таких сделок, одна за другой может «пролететь» по 50-100 за раз. Это вот зачем? Понятно, что скорей всего чей-то софт «старается», но почему именно так, а не одним лотом? И опять же — какая доля данного «выдающегося» поведения в минутном объеме по инструменту ?

Надеюсь мне удалось объяснить, для чего я решил заняться анализом. А реализовать свой прототип я решил в Excel-e :) Да, кто-то улыбнется. И да, можно было придумать что-то мудреное, в духе «я создал свой сервис, с использованием современного мультиплатформенного языка программирования и современных фреймворков, с использованием искусственного интеллекта на базе обученных нейронных сетей и разместил это все в облаке». Но, во-первых я не собираюсь Вам ничего продавать, а во-вторых я по своей сути — практик. Лично мне пофиг как будет реализовано решение, главное чтобы оно было рабочим. Поэтому excel с использованием visual basic. Вот так вот просто. И, чтобы окончательно вывести Вас из себя своими выходками простолюдина, добавлю, что свой проект я назвал «stuck», т.е. «прилипала» по русски. Вспомнил про рыбку, которая плавает рядом с акулами и доедает объедки.

Как это работает. В качестве торгового терминала я использую «альфа-директ». Он мне также не нравится как и Quick, но если сравнивать с жадным и неповоротливым терминалом от Interactive Brokers — то не все так печально. Что в квике, что в альфа-директе есть возможность не только показывать ленту сделок по всем инструментам из Вашего списка, но и выгружать все в excel и в текстовый файл. У альфа-директа все сделано максимально убого: выгрузка в текстовый файл происходит не постоянно, пока запущено окно, а «одноразово». Что касается выгрузки в excel — в окне альфы отражается только 200 строк последних по времени сделок и если появляется информация о новых сделках то терминал по прежнему отражает 200 строк, опять же показывая информацию о последних сделках. Также идет и выгрузка в excel — выгружается 200 строк, при появлении новой информации — эти же строки перезаписываются поверх старых. С точки зрения автоматизации загрузки данных — очччень неудобно. Как это реализовано у меня — когда запускается макрос, он в зависимости от указанного в настройках времени, например каждые 0.5 секунды — пробегается по загруженному из альфа-директ списку и ищет те заявки, которые еще не загрузил, ну и сортирует их дальше. Если поставить время еще меньше (0.1 секунды) — система будет работать, но на слабеньких компах начнутся проблемы с отрисовкой данных (пока работает макрос), если поставить время меньше (1 секунду), есть риск не успеть подгрузить данные, т.к. альфа-директ может их затеречь очередной порцией новых данных.



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

От дискретности к непрерывности

    • 24 декабря 2019, 09:19
    • |
    • bozon
  • Еще
Итак, рассмотрим случайное блуждание (СБ).
ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B5_%D0%B1%D0%BB%D1%83%D0%B6%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5
Согласно всезнающей Википедии, «СБ — математическая модель процесса случайных изменений — шагов в дискретные моменты времени».
Характеристики СБ:
1. Постоянство среднего квадратического отклонения (СКО) на каждой «видимой» частоте дискретизации (ЧД);
2. Постоянство математического ожидания (МО) также на всех «видимых» ЧД.

Что же происходит с этой дискретной математической моделью при переходе к непрерывному времени или при дифференцировании СБ по ЧД?
Появляется непрерывный частотный спектр функции СБ (Преобразование Фурье для СБ)
  {\hat  {f}}(\omega )={\frac  {1}{{\sqrt  {2\pi }}}}\int \limits _{{-\infty }}^{{\infty }}f(x)e^{{-ix\omega }}\,dx.
Волатильность в данном случае представляется как функция СБ (f). Именно постоянство функциональной зависимости волатильности от времени и определяет СБ.

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

Михаил Ханов. Практика алготрейдинга "Алго Капитал"

Передача «Михаил Ханов. Практика алготрейдинга „Алго Капитал“» на интерстриме YouTrade.TV 23 декабря 2019 г.


Супер ускорение расчета индикаторов

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

Например, был ценовой ряд из 6-ти элементов:

1.104, 1.102, 1.105, 1.106, 1.103, 1.101 

Найдем его интегральное представление (начнем с нуля):

0.0, 1.104, 2.206, 3.311, 4.417, 5.52, 6.621

Чему будет равно SMA за последние 3 элемента? Достаточно посчитать разницу: 6.621 - 3.311 и разделить ее на 3.

SMA(3) = (6.621 - 3.311)/3 = 1.103

Убедимся, что SMA(3) найдено верно. 

(1.106 + 1.103 + 1.101)/3 = 1.103

Таким образом можно найти SMA с любым периодом, совершив всего навсего одну операцию вычитания и одну операцию деления. Это позволит гораздо быстрее получить набор значений индикаторов типа SMA, RSI, STD_DEV.
Вроде все хорошо, НО НАДО ПОМНИТЬ, что если использовать тип данных с плавающей точкой, то у нас будет накапливаться ошибка. Поэтому ценовой ряд лучше сначала преобразовать в целочисленный тип. Для этого достаточно для 5-ти значных котировок умножить цену на число 100 000.

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




нейросеть как индикатор

    • 22 декабря 2019, 01:04
    • |
    • Cyber
  • Еще
Написал тут нейросеть и решил выложить на всеобщее обозрение NNTrade.readmcu.com.
Нюансов много. Поэтому это не более чем еще один индикатор, а не робот для торговли.
Как пользоваться ей, каждый решает сам. Я использую как индикатор. Или набор индикаторов, каждый из который отдельная нейросеть (профи поймут). С обязательными стопами. Профитфактор минимум 5:1.
Некоторые акции, особенно в затяжном падении которые, предсказывает плохо. Шортить по ней — самоубийство, хотя недавно шортанул татнефть по ней удачно. Хорошо подходит для поиска точки входа. Но иногда из-за внешних факторов, которые невозможно учесть, хорошие точки входа вылетают по стопам и через пару дней рост идет уже без тебя.
Статистики нет, сложно посчитать и лень. Можно примерно оценить по картинкам какие акции стоит торговать по ней, а для каких не подходит.
Часовики, интервал 10-100 часов, США и РФ. Данные с СПБ биржи для США, если там мало, то с BATS.
В остальном, думаю, сами разберетесь, какая линия за что отвечает.

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

"Мост" между MetaTrader и программой через socket

В жизни бывают такие моменты, когда очень хочется торговать из программы на С++, но по каким-то причинам у брокера нет API, зато есть MetaTrader. Конечно, можно просто писать код на MQL4/MQL5, на этом урезанном варианте-мутанте Си и С++, но мне как-то не в кайф это делать. Поэтому я решил сделать «мост» между MetaTrader и программой через socket. Встречайте — MT-Bridge
"Мост" между MetaTrader и программой через socket

На данный момент MT-Bridge позволяет только передавать поток котировок в программу с заданной частотой + добавлена инициализация исторических данных. Пока мне этого достаточно, но возможно в будущем функционал MT-Bridge будет расширен. Поэтому извиняйте, если здесь вы не нашли полноценного функционала, что есть то есть пока. Библиотека для подключения к советнику написана на С++11 и зависит от boost.asio, но нужны только файлы-заголовки. Вот github репозиторий с советником и библиотекой. Передача данных реализована через сокеты, советник является клинетом, а программа на С++ — сервером. Данные передаются через сокет в бинарном виде. 

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

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