Блог им. kvazar

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

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

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

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

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

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

avatar

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BadLogic, зависит.

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

avatar

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

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

avatar
kvazar, ну там прямо из квика в mysql можно жеж…
avatar
Свой Мужик, можно…
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

теги блога kvazar

....все тэги



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