Нужна ли возможность изменять Magic открытой позиции? - страница 5

 
Galina Bobro:

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


С чем сталкивалась и очень неудобно - что советник может пометить свои ордера только магиком. 

Например, если стоит задача сделать эксперт в которого будет сетка ордеров, каждый ордер сетки по определенному образу должен закрыться, и еще таких сеток должно быть ЭН количество. Т.е. нужно узнать, кроме того что это наш ордер, еще и ИД сетки и номер ордера в сетке. 

Раньше такую задачу решала через комменты, но это увеличивает время выполнения советника (работа со строками грузит) + столкнулась с тем что брокер свои крякозябрики вставляет. Молчу уже за частичное закрытие и переоткрытие (клиринг, магик оставляют, а вот коммент совсем не факт).

Сейчас танцую с бубном - магик у совеника, например, "123", а перед/после магиком еще вставляю номер сетки и номер ордера, получается что-то типа 12356, осталось чтоб все заказчики данную концепцию понимали... 

-----

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


Задача решается через запись всей инфы об открытом ордере в БД. Но это не пройдет в Маркете. Вариант 2. Пишем всю инфу в созданный через new объект класса CAvOrder, а объект передаем на сохранение в COrderManager, так у меня называется.

В нем сидит экземпляр класса CDictionary, он есть в кодобазе. И пойнтер на объект пишем в него, причем ключом является магик. Потом сериализуем все на диск на случай выключения терминала. Этакий аналог своей БД 

 
Vitaly Muzichenko:

Так о том и речь)

Только не нужно ничего возвращать, это не интересно, гораздо удобнее просто в процессе сменить тип позиции =)


А, многократно? Об этом я как-то не подумал )

 
Alexey Volchanskiy:

Битовые операции и маски рулез ) А поля еще сжимали?


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

"Проблемы возникают именно тогда, когда уже существуют пути их решения. Нужно лишь найти эти решения." (c)

 
Alexey Volchanskiy:

Задача решается через запись всей инфы об открытом ордере в БД. Но это не пройдет в Маркете. Вариант 2. Пишем всю инфу в созданный через new объект класса CAvOrder, а объект передаем на сохранение в COrderManager, так у меня называется.

В нем сидит экземпляр класса CDictionary, он есть в кодобазе. И пойнтер на объект пишем в него, причем ключом является магик. Потом сериализуем все на диск на случай выключения терминала. Этакий аналог своей БД 

Тут как минимум пол-литра нужно, чтобы понять.

 
Alexey Volchanskiy:

Задача решается через запись всей инфы об открытом ордере в БД. Но это не пройдет в Маркете. Вариант 2. Пишем всю инфу в созданный через new объект класса CAvOrder, а объект передаем на сохранение в COrderManager, так у меня называется.

В нем сидит экземпляр класса CDictionary, он есть в кодобазе. И пойнтер на объект пишем в него, причем ключом является магик. Потом сериализуем все на диск на случай выключения терминала. Этакий аналог своей БД 


Да заметно что не без легких путей))) Ну зачем же хоть БД сдалась? В файл скидывать структуру(объект) можно, там какая-то стандартная функция была. Другой вопрос что еще загрузку дописывать нужно, предусмотреть ситуацию если юзверь закрыл ордер, перенес и т.д. т.п.. Мне проще наметить их и для каждого прописать действия (если ордер такой-то - делаем то). 

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

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

 
Vadim Zotov:

Тут как минимум пол-литра нужно, чтобы понять.


Достаточно знания ООП, но про пол-литра мысль интересная )

Причина обращения: