Блог им. kvazar

Столько стоит робот?

    • 19 сентября 2020, 15:47
    • |
    • kvazar
  • Еще
Начало здесь: https://smart-lab.ru/blog/631748.php
Я подумал, что не готов пользоваться разработками типа osa/net. поскольку привык все делать сам в части ПО.
НО, с нуля начать сейчас связку lua-БД-C# я просто морально… не совсем готов.
Поэтому такой вопрос: 
мне по сути  нужен каркас, который позволяет коннектиться с квиком (odbc), взаимодействовать с ним по api (заявки, ордера, стоп-ордера и отмены минимум). Информацию сохранять в БД, т.к. БД обязательное условие, у меня работа завязана на нее — торговая логика и множество хранимых данных. Никаких ноу-хау не требуется. С такого пакета стартовать можно быстрее...
кто-то обладает такой поделкой, которой он мог бы поделится за деньги, с настройкой на моем компе (тимвьюер) и некоторой техподдержкой.
Есть какие-то мысли? оса-нет и стокшарп не предлагать. 
1.1К | ★3
41 комментарий
Андрей Андреичъ, нихт) это свобода мысли, ее ничем не заменишь
avatar
kvazar, в инете полно таких поделок. Ссылки, к сожалению, дать не могу, мне они как-то ни к чему были.
Я через Луа — С++ ДЛЛ работаю. В моих постах что-то есть на эту тему, может пригодится для чего.
avatar
3Qu, +mysql?
avatar
kvazar, не. + sqlite.
avatar
Ося и есть такой каркас. Чем не устроило-то? ))
avatar
tashik, в осе есть работа с субд?
avatar
kvazar, в Осе есть csv. С СУБД сделайте сами, на том уровне, который Вас устроит. Взять любимый пакет и парой строк кода его в нужном месте дернуть — это даже не работа. Вот то, что в Осе нет выставляемых заранее стопов — да, может быть проблемой. А это вот не проблем
avatar
tashik, хотел предложил автору связку BigQuery + R. Но подумал,  вдруг сделает и будет конкурент вашему Кактусу.))
avatar
BadLogic, ) мы конкурентам только рады, Вы же понимаете, лишь бы ликвидности в опционных стаканах прибавилось. Коннектор к Алору на R кстати можно юзать, если нужно, можно в него контрибутить и доводить. Ник на гитхабе как тут.
avatar
kvazar, а в чём проблема работы с БД? Что именно интересует ? 
avatar
Anest, я не работал в связке c# — бд. наличие бд в логике робота облегчило бы задачу понимания.
avatar
kvazar, Это я понял, Что именно интересует? подключение проекта С# к БД, код что нужен ? 
avatar
Anest, идеально весь РАБОТАЮЩИЙ комплект. подключить проект к бд я могу, но чем больше «мяса» в каркасе тем проще....
что-то типа готовый робот, логика которого заточена на работу с субд из которого выдраны мозги — удалено ноу-хау, грааль расчета индикатора и т.д.
как вариант можем обменяться + идеями которые работают.
avatar
kvazar,  если база, то предлагаю храдкор — напишите торговую логику на хранимых процедурах.  Хороший специалист по PL/SQL на фрилансе стоит недорого. 
avatar
BadLogic, попробую сам, я sql хорошо знаю
avatar

BadLogic, хорошая, но вредная шутка.

PL/SQL даже близко не предназначен для решения подобных задач.

На фрилансе почти всё стоит недорого.

И у того есть простая причина: низкое качество.

avatar

FinSerfing, почему не предназначен?  Есть торговые системы с логикой прямо в базе. Не уверен что там конкретно PL/ SQL, но что то подобное точно(что там внутри Posgres?). ИМХО  это лучшее решение для сложных торговых стратегий с мониторингом нескольких тысяч базовых активов. 

Качество то как определяете? 

avatar

BadLogic, я думал шутите.

А вы на полном серьёзе.

Рекомендую последовать собственному совету.

И испытать всю боль мира на себе.

Можете начать с самого простого: отправки заявок, обработки их состояния и ошибок.

avatar
FinSerfing, а если только рассчитывать индикаторы? торговая логика /исполнение -это нет
avatar

kvazar, с боольшой натяжкой наверное можно считать индикаторы.

Но я категорически не рекомендую.

Инструменты нужно использовать по назначению.

База данных — это место хранения/извлечения информации.

Причём зачастую информации долговременной.

А индикатор — это нечто более краткосрочное и быстрое.

В плане изменения.

Логичнее извлечь данные и быстро посчитать значение.

Получить новый бар, пересчитать значение.

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

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

При необходимости задолбаетесь менять её на другую.

avatar
FinSerfing, я не спорю, у меня в процедурах расчеты, не хранимых, обычных)
avatar
FinSerfing, это от языка не зависит.  В чем проблема взаимодействовать с брокером по HTTP?
Пилят на том что знают, если человек хорошо знает PL/SQL, уверен что особых проблему него не будет.
avatar

BadLogic, зависит.

Каждый язык создавался с прицелом на определённые задачи.

avatar
FinSerfing, погуглил.  Как пример. blogs.oracle.com/sql/calculate-stock-market-returns-using-sql
avatar

BadLogic, ну и где здесь реализация торговой логики ?

Всё ровно в рамках языка: извлечение, группировка и суммирование.

avatar
kvazar, ну там прямо из квика в mysql можно жеж…
avatar
Свой Мужик, можно…
avatar
Сергей Сергаев, а БД  есть в логике робота? или обработка на лету?
avatar
Я тоже использую trans2quik.dll
Я не могу себя назвать программистом,  все что делал, гуглил.
Схема такая.
Из квика код луа состоящий из нескольких строчек, с импортироаанной либой сокетов,  отправляет в сокет приемник питоновский инфу о событии. Параллельно нужная мне инфа из квика по одбс грузится в БД. 
Когда приходит событие из луа,  питгновский скрипт отправляет в бд запрос, достаёт инфу, считает, как надо, и по необхомости,  отправяет через trans2quik.dll необходимое действие в квик.
Я несколько месяцев назад здесь запилил пару постов,  как я  все это делал, и даже выложил все эти либы, мной использованные, и свой говнокод.
Просто здесь так муторно все искать, чтоб найти свои посты надо рыться в своей истории, поэтому ссылку не оставляю.
Думаю, все тоже самое можно реализовать на любом другом языке.

avatar
Может уже давали ссылку на https://github.com/finsight/QUIKSharp — там только нет связки с базой данных. Но имхо ничего сложного, от себя посоветую SQLite, и просто и быстро и удобно. И никакого odbc. 
avatar
Игорь Лопатин, спасибо! Вы это используете?
avatar
kvazar, Использую. Как раз и базу для архивов в sqlite веду. Я правда новичок в торговле, так что пока вникаю в процесс. Сама библиотека удобна для C#, но и Луа желательно знать немного, чтобы под себя что-то пилить.
avatar
а вы сами c# знаете? у меня есть заготовка. MS SQL + C# приложение. ничего лишнего, только робот. интерфейс минимум. только торговля по алгоритму.
avatar
Susanin, C# изучаю в свободное время, сам ничего не делал еще, но думаю, это не проблема при наличии фолиантов (много справочной литературы: C#, CLR, WPF, SQL server, VS) и желания. 4-5 программок сделал учебных. а в БД что сохраняется на итог?
avatar
kvazar, работает так.
стакан и все сделки, свои заявки и сделки экспортируются в базу данных по odbc. можете делать что угодно.  база MS SQL developer.
из сделок формируются свечки прямо в базе данных.
робот постоянно отслеживает изменения в базе данных и принимает решения. ставит или снимает заявки в квике. считает открытую позицию, активные заявки и т.д.
работал около 7 лет назад. )))) зарабатывал. сейчас уже нет. т.к. красивых трендов не осталось и эффективность скальпинга очень упала.
что бы его оживить нужно: изменить разрядность номеров заявок в базе данных. т.к. числа слегка выросли. ))
и на тот момент программа работала с 32 разрядной DLL квика. возможно и так будет работать, но это не точно т.к. номера заявок стали большие и возможно их не пропихнуть в 32 разряда. да и терминал стал 64 разрядный. но я не вижу в этом какие проблемы. просто посмотреть пример использования 64 разрядной dll и поменять названия функций и их агрументов.
в целом это много поточное приложение рассчитанное на работу нескольких алгоритмов с одним квиком. работает в виде одного приложения.
насколько я знаю квик по сих пор не поддерживает подключение нескольких приложений одновременно. поэтому все  потоки должны работать в рамках одной программы.
avatar
Susanin, интересно, сколько стоит заготовка? и получается не используете более продвинутую версию? ну то есть сейчас не торгуете? я сейчас чиню свою поделку, если получится в скайпе пообщаться, я бы показал как она работает, чтобы понять стоит ли переделывать. просто смена платформы безболезненно не проходит)
avatar
kvazar, не знаю. наверно за 30 отдам. я потратил кучу времени и труда что бы заставить все это работать 24 часа 7 дней в неделю.
но я думаю подобные траты оправданы когда у вас есть готовая стратегия которую осталось только запихнуть в робота. будет быстрее использовать что то готовое чем с нуля делать свое. в противном случае не уверен что в этом есть смысл.

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

если у вас есть свое зачем вам чужое? для любопытства или вы не можете решить какие то технические проблемы? ну так напишите может что подскажу.
можете писать в личку. у меня нет скайпа, я как то не пользуюсь.
avatar
Susanin, просто работая в access есть плюсы и минусы. и я все думаю, может пора сделать переход на ООП с поддержкой СУБД. Поскольку идей много, нужна свобода, поэтому это, в моем понимании, не что-то готовое.
Дело в том что у меня это не автомат Калашникова, а конструктор, данные хранятся для анализа и принятия решений для среднесрочных стратегий.
Много инструментов, много стратегий, управление рисками и т. д. Визуализация работы, анализ сделок, тестер, анализ данных и т.д.
avatar
kvazar, ну и меня ничего этого нет. моя поделка рассчитана на запуск и работу круглый год. вот и все.
писать всякий интерфейс, анализ и все такое, я считаю не имеет смысла. это займет очень много времени. очень трудоемко. кроме того заранее просчитать что именно понадобиться не возможно, а угрохать на это все кучу времени жалко.  проще посчитать все в ексель на коленке, а тестировать в отдельной программе.
ну MS SQL это тоже самое что аксесс. но возможностей гораздо больше.

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

Читайте на SMART-LAB:
Фото
🧠 Ресейл и поколение Z: почему молодёжь выбирает разумное потребление
📱 Поколение Z относится к потреблению прагматичнее, чем остальные. Для них важны не громкие слова и статус, а понятная ценность покупки —...
5 идей в российских акциях. Индекс МосБиржи снова на грани 2700
Индекс МосБиржи опять торгуется на грани значимого уровня 2700 п. Сейчас не исключен очередной отскок от указанного уровня. Кроме того, рынок...
Фото
Тактика доверительного управления Иволги Капитал (17,5-24,1% средняя доходность счетов за всё время)
0️⃣ Предпосылки и предположения ( предыдущий пост – здесь ) • Средняя полученная доходность всех портфелей доверительного управления в...
Фото
Хэдхантер. Ситуация на рынке труда в декабре идет ко дну - хуже не было никогда
Вышла статистика рынка труда за декабрь 2025 года, которую Хедхантер публикует ежемесячно, что же там интересного: Динамика...

теги блога kvazar

....все тэги



UPDONW
Новый дизайн