Всех приветствую!
Предлагаю чуть отвлечься от чтения новостей и кодирования ботов, и написать, кто что делает в теме системного трейдинга. Пункты: тип робота (арбитраж, опц стратегия, тренд следящая, скальпинг и т.д.), использую ли S# (если нет, то на чем пишите), под что пишите (Квик, Смарт, Плаза😂). Мой пример:
- арбитраж, опц стратегия, аналитическия прога по опцам.
- Да, пользуюсь S#.
- Киви, Смарт.
Хочу понять, каким направлением более всего балуетесь, и чего не хватает для S#.
Comentários (26)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
HFT - это же не алгоритм, а скорость. Через Киви и Смарт получает довольно выигрышно по скорости. По Плазе не пробовал, потому и не делал.
Арбитраж через квик на S#. Есть еще несколько ботов на с++ билдере но хотелось бы их тоже реализовать на s#. собственно с реализацией не должно быть проблем. есть только одна проблема в недопонимание того как правильно и красиво несколько ботов на шарпе связать с одним квиком. чтоб никто никому не мешал и работало все быстро и легко. наверно это должно какимто образом смахивать на livetrade sdk.
Да, за S# огромное спасибо!
И еще... Если мне не изменяет память когдато тут поднималась тема по поводу кнопки Donate. Я так и не в курсе появилась она или нет... если нет то было бы не плохо сделать, я б вам, Михаил, хоть на пиво донейтнул) и думаю не я один такой. Мелочь но приятно(наверно). А если есть то покажите мне ее быстрей...
Все Спасибо
В одном роботе реализовано несколько стратегий (5-6), каждая из них работает на отдельном счету. В одно время шла одновременная работа с несколькими квиками (вплоть до 7). Сейчас торговля ведётся на 1 квике, на нескольких счетах - на каждом своя стратегия. Стратегии все пока таймфреймовые - 1-5 минут, вялый интрадей - 1-2 сделки в день.
Конечно пользуюсь, куда без него? :)
Квик. Смартком невзлюбил с того времени, как он только зарождался на форуме айтиинвест - уж слишком много багов было. Наверняка сейчас лучше, но в плане стабильности с квика слезать не хочется совсем.
Alexander, а вы могли бы привести приблизительную схему реализации?
Создаётся multitrader, в aggregatedtraders кладутся QuikTraders. Далее для каждой стратегии:
наверное мне проще будет ответить на вопросы или помочь разрешить сложность, если она есть...
Сегодня случай произошёл. Отлучился на пару часов. У меня 2 квика. Пока меня не было связь одного квика с сервером оборвалась, но через несколько минут восстановилась. Такое, к сожалению, достаточно регулярно бывает. И как раз, в эти несколько минут, пока не было связи, сигнал на продажу поступил. Естественно он не выполнился. В связи с чем, такой вопрос родился, хотя бы теоретически: Можно ли исполнение MQS откладывать до тех пор пока связь снова не восстановится?
StrategyManager в случае потери связи перестает выполнять стратегии. Есть подозрение, что Квик ничего не послал (это Вам лучше проверить экспериментально). В таком случае нужно смотреть на отсутствие данных. Через ReConnectionSettings.ExportTimeOutInterval
Вот если б можно было не целиком стратегии приостанавливать, а только передачу ордеров в квик до тех пор пока связь не восстановится. В принципе, можно было б сделать опционально - указывать в настройках, либо исполнять все накопившиеся ордера за это время, либо обнулять их все. Но такого я ни в одной проге не видел
интрадэй свинг 50-100 сделок в день
раньше использовал перл и C++ делая вызовы из Оракла через RPC писал в файл транзакций, так как система была распределённая (логика вся в Оракле саму базу заполнял через odbc). В принципе всего было нормально, скорости хватало. Единственное что замучило при перезапуске QUIK или обрыве связи надо было таблицу "все сделки" заново импортировать через odbc - потеря времени большая. Сейчас полностью перешёл на S# так как можно продолжить писать в базу с любого момента времени быстро получив данные по DDE, из S# - за что много спасиб! В Оракл пишу/читаю по ODP.NET , логика осталась в базе, заявки выставляет S#. Сейчас пытаюсь релизовать некоторые стратегии полносью на S# - разбираюсь с событийной моделью , которая всё таки не до конца событийная... имхо. :)
Спасибо и с уважением!
Внутри - да. Буду постепенно ее улучшать. Но, что главное, дал наружное описание, которое постараюсь только расширять. Так что для перехода соблюдены все условия.😎
Спасибо и с уважением!
Я не знаю, что пишу =) Даже терминов большую часть не знаю. Жена занимается биржей вручную, я себе сделал несколько счетов и играюсь с ними. Суперденег не заработал ещё =)
От S# использую только QuikTrader, в стратегиях и остальном времени разбираться нет. Приложение консольное.
К обновлениям функциональности отношусь спокойно, кроме одной какой-то версии. Где появился QuikTerminal и изменилась сигнатура метода у события Trader.OrdersFailed. Про терминал понятно, а с событием получилось забавно -- я оборачивал старую реализацию ошибок в S# классом с таким же названием и теми же свойствами =)
Из пожеланий могу написать следующее: реализацию QuikTrader посмотреть и отлаживать нет возможности, полностью зависимость от Вас, Михаил. Поэтому хотелось бы большей надежности в работе этого класса.
Уже произошел случай, когда выяснить по какой причине некорректно прошла сделка не было возможности. Возможно проблема была в QuikTrader, возможно нет. Когда речь идет о больших суммах, данная неопределенность не допустима. Если аналогичный случай повторится, придется писать свой вариант QuikTrader. Хотя очень не хочется тратить время на то, что уже сделали Вы, Михаил.
Больше фидбеков от вас, больше надежности. Так что тут все напрямую зависит лично от каждого участника.
Странный конечно подход. Я бы начал с систематизации проблемы, а уж потом решил - писать свое или просить о фиксах... Если будете писать свое, не бросайте нас. Выкладывайте свои наработки, я ими буду S# улучшать.😀
Да мне самому мартышкин труд не охота делать.
Но только систематизировать проблему не всегда получается. Если ошибка появляется редко, но стоит он очень много денег, то систематизировать ее имея черный ящик труднее, чем без черного ящика.
Да мне самому мартышкин труд не охота делать.
Но только систематизировать проблему не всегда получается. Если ошибка появляется редко, но стоит он очень много денег, то систематизировать ее имея черный ящик труднее, чем без черного ящика.
Если очень много денег, то можно поговорить о подписании NDA + сумме в 300 тысяч рублей.
🙂
NDA без проблем. Но сумма, к сожалению, очень большая.
Наверно у нас разные представления об «очень много денег» :)
Это такая проверка уровня серьезности - человек серьезен на словах или на деле. Деньги, всегда прекрасный показатель проверки намерений. А юридический документ - это формальность.
Я эту дверь не закрываю. Если есть другие желающие посмотреть в исходники QuikTrader - пишите в личку. Условия я здесь озвучил.
Для стабильной невоспроизводимой ошибки использование чужих исходников оправдано.
Если ошибка стабильно не воспроизводиться может ее и нет?
Хотел я было узнать что такое лежит в enumerable
Когда выяснилось, что это всего-то
то я сдался работать деобфускатором ;)
Было бы не 300 а 50 я бы согласился. Все равно выгодней чем руками их до нуля проскальпить;) Или пять лет самому что-то подобное рожать с нуля. Но 300 не тяну никак.
Может глубокоуважаемый автор устроит акцию "Напиши ITrader для OEC" или там "Найди 200 багов в смартком адаптере" и обменяй его на сорсы HistoryTrader когда-нибудь ;) В общем за полезные дела.
Все равно следует признать, что библиотека лучшее из того что есть в фри-доступе.
Я понимаю, было бы платное или без тех поддержки. Но я то тут, и вроде как денег за ответы не прошу. Или это такой экстремальный вид проведения досуга?🙂
Насчет обфускации. К сожалению, защита от конкуренции отражается и на пользователях. Если я выложу все в открытый доступ, то что стоит компании с инвестициями сделать аналог S# (можно даже не аналог, а взять сам S#) + продвинутый дизайн как в попсовых ТА программах? Да ничего. А у меня вряд ли появиться желание и возможность конкурировать в этой нише. В итоге проект закроется. На опен сорс уповать даже не стоит. Под такую брендовую вещь как Плаза, и то нашлось 3 волонтера, что уж говорить про обычные роботы. И останется только платное решение. Оно вам надо?
Ошибка стабильная, но воспроизвести её не получается. В этом случае известно только направление иследования и можно добавить отладку в чужой код, чтобы сузить область исследований.
У меня нет примеров из обычной жизни =) А из необычной вряд ли получится экстраполировать. Например, IIS эпизодически захлёбывается запросами, хотя мощности сервера достаточно и так происходить не должно. Или, например, port sharing отваливается в случайные моменты -- и под нагрузкой, и просто так. Всё разбирается частично с помощью исходников .NET Framework, частично эмпирически при столкновениях с нативными бинарниками, исходников к которым нет, частично просто в процессе поиска воспроизводимости.
Пока торгую только на мамбе.