Организация сложного учета ордеров

 

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

Магик номер и комментарии мы не можем поменять. В лучшем случае можно создать массив для учета ордеров, но при случайном выключении терминала данные массива потеряются и нужно после включении терминала вновь составить или восстановить такой массив.

Какие есть варианты решения поставленой задачи?

 
Skymer >>:

Какие есть варианты решения поставленой задачи?

Восстановить такой массив. Это лучше чем сохранять в файл, тк с вашим ордером кроме приказа МТС что то может случится

(он может закрыться по профиту и вся система учёта полетит или

перенос позиции через ночь с закрытием и переоткрытием другого ордера).

А если будет организована система подхвата открытых позизий то совсем другое дело, любой сбой нипочём.

 
Skymer писал(а) >>

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

Магик номер и комментарии мы не можем поменять. В лучшем случае можно создать массив для учета ордеров, но при случайном выключении терминала данные массива потеряются и нужно после включении терминала вновь составить или восстановить такой массив.

Какие есть варианты решения поставленой задачи?

Пишите массив в файл, и при каждом заходе в start считывайте... Либо глобальные переменные - проще...

 
На каджом тике, предполагаемый массив будет обнуляться и перезаполняться ордерами в определенном порядке. Т.е. у Вас всегда будет "свежий" массив. Так уж точно не собьетесь..
 
niko1312 писал(а) >>
На каджом тике, предполагаемый массив будет обнуляться и перезаполняться ордерами в определенном порядке. Т.е. у Вас всегда будет "свежий" массив. Так уж точно не собьетесь..

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

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

может еще есть какой вариант?

 
Skymer писал(а) >>

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

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

может еще есть какой вариант?

Можно попробовать использовать глобальные переменные. Хранятся 2 недели, вполне достаточно. Создать несколько груп переменных, различающихся по имени и переносить номер тикета из одной группы в другую.

 

На самом деле, задача может иметь несколько решений. Все зависит от Вашей конкретной задачи. Я бы все же предпочел пусть усложненный, но все же массив (или даже несколько) со свежими данными. Скажем, для моей торговли ни запись в файл ни глобальные переменные не подходят так как порой приходится торговать с разных компьютеров. А массив всегда может определить (пересмотреть) все ордера и отсортировать их по определенному признаку или критерию в другой алгоритм. ;)

 
Vinin писал(а) >>

Можно попробовать использовать глобальные переменные. Хранятся 2 недели, вполне достаточно. Создать несколько груп переменных, различающихся по имени и переносить номер тикета из одной группы в другую.

речь идет о выключении терминала, и глобальные переменные удаляться наверное

скажем если комп неожиданно выключился из за перебоя электричества и сразу включится снова и загрузит терминал - в этот момент надо восстановить массив.

 
Skymer писал(а) >>

речь идет о выключении терминала, и глобальные переменные удаляться наверное

скажем если комп неожиданно выключился из за перебоя электричества и сразу включится снова и загрузит терминал - в этот момент надо восстановить массив.

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

Самый простой способ - это файл, но при каждом изменении нужно делать сохранение. Тогда всегда можно будет восстановить. И можно будет организовать обмен между разными терминалами (комьютерами) в сети или через и-нет.

 

По работе с файлами можете посоветовать библиотеку или можно без библиотек сделать?

 
Skymer писал(а) >>

По работе с файлами можете посоветовать библиотеку или можно без библиотек сделать?

Все зависит только от того, что нужно. Если речь идет об одном компьютере и одном терминале, то достаточно встроенных средств. В остальных сулчаях нужно использовать WIN-API. И опять же зависит от того, что нужно получить. Есть статьи, есть примеры организации работы с файлами в CodeBase.