Блог им. igor12
Нужен торговый модуль (движок) под Квик… Лучше готовое решение-иначе долго и дорого..
То что встречал в сети- по разным вопросам до конца не устраивает…(мож что пропустил)..
Основные требования – надёжность удобство в работе и возможность
подключать свои алгоритмы без больших проблем (это кратко).
Просьба дать ссылки на подобные решения или пишите в личку.
Код нужных стратегий можно переписать под любой язык..
Нынешняя реализация на WL4…
1-сервер заявок
2-сервер котировок
3-код на любой платформе
1-пункт я для себя сделал forum.quik.ru/forum11/topic904/
2-3 у меня на базе МТ4 и WL6
В планах сделать Сервер котировок на С#
Где-то можно глянуть подробнее ?
Или как связаться с вами(в личку)…
можете в личку
И интерес прежде всего к срочке а не споту…
Под WL4 была dll, которая записывала сигнал в текстовый файл для квика и заявка выставлялась, если в квике был включен импорт транзакций из файла. Единственное ее неудобство: заявки выставлялись по рыночным ценам и исполнение было как получится.
Но глючит слегка, а автор уже не поддерживает его…
Ну WL при переходе от 4 версии к 5 сменил язык, вот все и «полетело».
AXY robotrader заточен под WL4 c 4 и пытался его запустить…
Да и думается, что связка «тестовая» платформа (Тслаб, Ами, Вэлс, SuperCharts...) адаптер — Квик — не лучшее решение для торговли… Хотя у вас вроде всё это работает…
прикол в том что в тслабе вменяемая техподдежка… и счас написан и тестят тслаб2.0 если у тя конкретные траблы то тебе адекватно помогут
Продвинутые ребята реализуют подобные задачи и на C# ,R , питоне, луа или их комбинациях .....
Как-то раньше пробовал запустить прогу Сухова на сток шарпе для загрузки котировок(Гидра) — крайне криворукое решение оказалось…
Конструктор стратегий Lbot3D
Но пока не очень понятно, как этим пользоваться…
По сути — это коннектор между вашим роботом (в который заложена стратегия) и Квиком. Умеет получать данные из Квика (Параметры бумаг, заявки, сделки, графики/свечки, колбэки и т.п.), и отправлять в Квик команды на открытие/снятие ордеров.
Проект с открытым исходным кодом. Все еще продолжает разрабатываться, но пользоваться уже можно.
Вкратце как-то так…
А челу, имеющему опыт работы на C# довести до удобного в работе варианта(некий интерфейс для оперативного запуска отключения торговых алгоритмов по разн. инструментам)- это большой кусок работы??
До недавнего времени всех своих роботов я писал на QLua, в том числе был привод с визуальным интерфейсом. Но когда роботов, одновременно запущенных в квике стало больше десятка, то это стало здорово тормозить сам квик (особенно после обновления до 7-ки). Начал искать возможные альтернативные варианты и случайно наткнулся на QuikSharp. Сразу скажу, что я не программист, но некоторый жизненный опыт программирования на нескольких языках, для решения определенных задач, есть. До этого на C# я почти ничего не писал. И максимум, что полезного сделал — это читалку логов для своих роботов, написанных на QLua. Столкнувшись с QuikSharp, понял, что для того, чтобы что-то получилось необходимо более глубокое изучение языка. Нашел на ютубе курс и полностью его просмотрел, выполняя написание программы из этого курса.
С момента знакомства с QuikSharp прошло около полугода. Результаты такие:
— Всех роботов теперь пишу только на C#, используя QuikSharp, немного доделанный под себя.
— Есть оболочка, которая совмещает в себе алгоритмизированный привод (использую для торговли на фондовой секции), там же блок запуска пакета роботов (стратегии пишутся отдельно, загоняются в DLL`ку и подключаются к главной оболочке), плюс еще пара мелочей.
— Общая стабильность меня устраивает, за исключением проблем восстановления работоспособности после дисконнекта (если таковой происходит).
— Продукт узкоспециализированный, рассчитанный именно на меня и мои предпочтения.
— Разгрузил квик, т.к. все сложные расчеты теперь выполняются вне торгового терминала.
— Сказать что продукт имеет законченный вид никак нельзя, но уже использую в «боевой» торговле.
Так что, сколько уйдет времени у человека с большим опытом кодирования на C# я не знаю, но если этот человек знаком с биржевой торговлей, то явно меньше чем у меня.
На самом деле, многое зависит от постановки задачи.
Опять же из своего опыта: я нескольким трейдерам совершенно бесплатно писал роботов и приводы под их стратегии (в первую очередь для саморазвития) на QLua, и всегда выяснялось одно и то же:
Трейдеры, привыкшие торговать руками в подавляющем большинстве случаев не могут с ходу описать алгоритм, и не потому, что не хотят им делиться, а потому что не знают как формализовать правила по которым они торгуют.
В результате, написание каждого робота превращалось в многократное (иногда достаточно длительное) обсуждение различных условий и параметров системы, с целью превращения их в программный код.
З.Ы.: Для справки — ни одну из стратегий этих трейдеров я так и не стал использовать в своей торговле, хотя некоторые полезные идеи для своих стратегий удалось почерпнуть.
«так и не смог понять из Вашего поста, что именно вы хотите сделать»-
мне нужен некий торговый модуль под Квик, с помощью которого можно будет торговать свои «паттерны». Вот и пытаюсь найти решения для этой задачи.
Писал, что в данный момент алгоритмы формализованы на 4 Вэлсе(паскалеподобный язык). Переписать их под 6 Вэлс вроде больших проблем не должно создать. Даже есть специальная программа переписывающая код4 вэлса под 6 на С#.(пусть и чуть криво). А вот дальше!?
C C# не знаком и полгода на освоение не могу позволить себе. Готов за разумное вознаграждение воспользоваться сторонней помощью программиста знакомого с данной темой
Готовых подходящих решений не нашёл… То что видел -по разным причинам не устраивает меня. Кратко как-то так…
тоже пытаюсь перейти с МТ4 на WL6
для работы на WL6 проблему можно делить на 2 части.
1 подача котировок в WL6 из QUIK
2. заявки в QUIK из WL6 ( через мой коннектор будет работать на Фортс я потестил работает нормально)
Будут идеи по 1 пункту обращайтесь. кодить умею на С# сделаю бесплатно,
пока не разбирался как устроена подача котировок в WL6, как забирать котировки из QUIK понятно, дело на пару дней.
Сходу в исходниках пока не разобрался.
Заранее спасибо.
long result = 0;
QuikSharp.DataStructures.Transaction.Order order_new = new QuikSharp.DataStructures.Transaction.Order();
order_new.ClassCode = ClassCode;
order_new.SecCode = SecurityCode;
order_new.Operation = operation; // type Operation
order_new.Price = price;
order_new.Quantity = qty;
order_new.Account = AccountID;
order_new.ClientCode = ClientCode;
result = await _quik.Orders.CreateOrder(order_new);
У меня сделано так. Думаю, разберетесь. Правда, есть некоторое «НО»:
Я до сих пор использую довольно старую версию QuikSharp, т.к. некоторые проблемы до сих пор не позволили мне нормально объединять свежие версии от автора со своими доработками. Так что теоретически, эта конструкция может и не сработать в текущем виде, но думаю общий порядок Вы уловили.