Одновременная работа двух Торговых систем с одним инструментом

Страницы: 1
RSS
Одновременная работа двух Торговых систем с одним инструментом, подкиньте идей
 
Добрый день, возникла потребность в разных Торговых системах работать с одним инструментом (например фьючерс рубль/доллар).
Если одна ТС купила, а другая продала, то при обращении к Позиции по клиентским счетам (фьючерсы) (futures_client_holding) - Текущие чистые позиции (totalnet) будет возвращать соответственно ноль.
Пока возникла идея хранить количество купленных/проданных фьючерсов в файле для каждой ТС, ну вот не знаю оптимальное решение, может есть лучше решение?
 
Не понятно в чем проблема-то у вас?
Брокер специально для вас сделал волшебство: как-будто вы продаете / покупаете один актив в разных системах. Готовый арбитраж.
(На самом деле юридически, конечно же, это разные активы, разных торговых площадок, и брокер на разных площадках депонирует для вас эти разные по сути активы, однако для удобства в терминале неттирует для вас позиции по разных площадкам, как-будто это один и тот же актив.)

Но что хотите вы - не понятно.
Хотите вести и видеть раздельные позиции по каждой торг. системе?
Уточните у брокера, вдруг он умеет отключать это волшебство неттирования.
 
Я не понимаю, что такое "торговая система", но у меня нет ни малейших сомнений, что такие данные надо хранить у себя. И не в файле, а в ОЗУ (при запуске читая из файла, а при останове сбрасывая туда текущее состояние). А изменяться оно должно, как я понимаю, по OnTrade (как раз сейчас ковыряюсь в этом направлении - прерывания при сделках уже приходят, но что там они приносят, нужно долго разбираться). У одного брокера у меня два счёта. а у другого - несколько валют, инструменты вполне могут пересекаться в любой момент. Лично я сделал так: каждому брокеру завёл свой "персональный" Квик, а внутри одного веду отдельный подсчёт, где ключом является код инструмента, код класса и код моего счёта. Нареканий нет...
 
Цитата
swerg написал:
Хотите вести и видеть раздельные позиции по каждой торг. системе?
да.

Цитата
swerg написал:
Уточните у брокера, вдруг он умеет отключать это волшебство неттирования.
хотел обойтись без брокера, своими силами, вот и спросил есть ли способ лучше, чем хранить количество в файлах для каждой ТС.
 
Цитата
Владимир написал:
Я не понимаю, что такое "торговая система"
Скрипт Lua
Цитата
Владимир написал:
И не в файле, а в ОЗУ (при запуске читая из файла, а при останове сбрасывая туда текущее состояние)
С этим согласен
Цитата
Олег написал:
Лично я сделал так: каждому брокеру завёл свой "персональный" Квик
Желательно в одном квике реализовать
 
Олег, Видимо, можно и в одном, но зачем? Одновременность уж точно пропадёт! К тому же, у меня к этим брокерам доступ разный. Alt+Tab - и все дела!  :smile:  
 
Цитата
Олег написал:
Цитата
Владимир написал:
Я не понимаю, что такое "торговая система"
Скрипт Lua

:shock: Неожиданно. Вольное применение терминологии - это здорово, конечно, но как же вас понять-то тогда??

Т.е. у вас 2 разных Lua-вкрипта торгуют одним и тем же инструментом на одном классе, так? ну и ведите в каждом из них свою позицию по куплям / продажам. При надобности пишите в два разных файла, в каждом скрипте в свой файл.
Но до добра это всё не доведёт, по-моему. Один скрипт покупает, другой тут же продаёт - в чем финансовый результат таких прикольных действий?
 
Цитата
swerg написал:
Неожиданно. Вольное применение терминологии - это здорово, конечно, но как же вас понять-то тогда??
Согласен некорректно выразился - в моем понимание торговая система, это робот который имеет свой алгоритм, которым торгует определенный инструмент.
Цитата
swerg написал:
Т.е. у вас 2 разных Lua-вкрипта торгуют одним и тем же инструментом на одном классе, так?
Что в Вашем понимании в "одном классе"? Я писал как пример фьючерс рубль/доллар
Цитата
swerg написал:
Но до добра это всё не доведёт, по-моему. Один скрипт покупает, другой тут же продаёт - в чем финансовый результат таких прикольных действий?
т.е. придерживаться правила - один скрипт - один инструмент?
 
Олег, Не, лучше правило "один скрипт - ДОХРЕНА инструментов! У меня на оном Квике несколько десятков инструментов, на втором - несколько сотен. А скрипт фактически один (с небольшими модификациями). Ну ладно, пусть два.  :smile:  
 
Цитата
Владимир написал:
лучше правило "один скрипт - ДОХРЕНА инструментов
а алгоритм в этом скрипте один на все инструменты или разные?
 
Да, такое просят иногда сделать.
К примеру, один алгоритм торгует один тайм-фрейм, другой - второй.
На длительном периоде работы, фин рез "как-бы" сходится.
Такая задача обязательно требует хранения текущего состояния каждого алгоритма, т.к. чтение данных таблиц Квика уже не даст результат. Впрочем, это стоит итак делать.
Также не лишним будет помечать сделки комментарием, чтобы понимать, что это сделка этого алгоритма.

Такая задача имеет и проблемы. Т.к. позицию мы можем получить только из сделок, то важно, чтобы не было перерывов в работе, т.к. Квик удаляет сделки на следующие сутки.
Код
т.е. придерживаться правила - один скрипт - один инструмент?
Это никак не соотносится с вопросом. Ведь можно сделать один скрипт на 100 разных инструментов, торгующих одним и тем же алгоритмом, или разными.
 
Цитата
Nikolay написал:
Ведь можно сделать один скрипт на 100 разных инструментов, торгующих одним и тем же алгоритмом, или разными.
Если один алгоритм, то хранить данные для каждого инструмента в файле необязательно. а вот если алгоритмы разные, то для каждого алгоритма хранение уже становится обязательным условием, верно я Вас понял?
 
Олег, Алгоритм-то оин, но он довольно сложный: ведь он зависит не только от инструмента, но и от состояния рынка, состояния собственного кошелька, возможности (или невозможности) освободить средства для покупок и ещё от чего-то там.
 
Хранить надо не потому что инструменты или алгоритмы разные, а потому, что при рестарте скрипта (а это нормальное, очень частое явление) надо восстановить и актуализировать свое состояние.
Это просто некий state. Выключите скрипт (или Квик упал) - потеряете.
 
Олег, Кажется, я придумал, как решить проблему с записью в файл и, одновременно, убрать дико раздражающую меня необходимость анализа флага останова при любом обращении к функциям второго потока (тем более, что это не гарантирует отсутствие потери управления). Делаем так:
Запись результатов в файл производим после каждой сделки - ведь состояние портфеля изменилось, фиксируем новое текущее. В самом прерывании OnTrade это делать "неприлично" (ещё что-нибудь может придти), поэтому там просто устанавливаем флаг необходимости перезаписи файла, а саму инфу кидаем в стек сделок. А уже в нашем прерывании (по таймеру) разбираемся с этим стеком, записываем результаты и сбрасываем флаг. А по выходу из main как раз ничего в файл не пишем - актуальное состояние уже записано, и плевать на потерю управления или даже неожиданное отключение питания! Просьба покритиковать - мне эта идея ОЧЕНЬ понравилась. И на код теперь не так тошно глядеть.
 
Владимир, это же написано в документации к расширению языка от разработчика, документ Использование Lua в Рабочем месте QUIK https://arqatech.com/upload/iblock/194/quik_lua.zip
Простая схема передачи данных через очередь из колбека в дополнительный поток скрипта.
 
Nikolay, Что "это"? Техника записи результатов без риска потери управления? А что же все молчали, включая техподдержку, когда мы с Антоном и другими это дело обсуждали в нескольких ветках?  :smile:  
 
Цитата
Nikolay написал:
Владимир, это же написано в документации к расширению языка от разработчика

Как уже всем известно, документацию Владимир не читает? так что смысла давать на неё ссылки - нет, увы. Разве что только ушат помоев получите в ответ (уже получили, как видите).
 
swerg, Врать - нехорошо  :smile: Это насчёт "не читает". Что до другого тезиса, так я давным-давно (в начале "нулевых" писал:

Для "подтверждения" своих мыслей они тычут пальцем в мегатонные доки, которые они якобы изучили (или хотя бы читали). Например, в трехтомник Кнута. Однако в последнее время (видимо, нарвавшись пару раз на тех, кто этого самого Кнута все-таки читал) предпочитают ссылаться на некие абстрактные "учебники" или там "документацию". Профессионал же не позволяет себе подобного НИКОГДА - он просто не умеет этого делать. Эта уловка обрубается стандартной фразой: "Читайте сами, раз уж ничего оттуда внятно процитировать не можете".
Страницы: 1
Читают тему (гостей: 1)
Наверх