Автоматическое создание признака принадлежности позиции к некоторой пачке позиций - страница 4

 
shanty:

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

 Всё то как-бы и с большего понятно. Но есть некоторые базовые моменты.

Во-первых, откуда брать магики? Что делать что б они не повторялись? Постоянно проверять на повторение перед каждый потенциальным входом? Не будет ли это расчточительством к ресурсам?

Да и хранить то нужно получается где-то магики. 


Ты или не совсем понял или совсем не понял.

Если первый ордер поставленный по стратегии можно назвать главным, то магик ему - заданный во внешних переменных. А все доливки к нему и локи ко всей группе уже магиком использовать тикет главного который НИКОГДА не повторится.

А вот как будут перебираться ордера это уже "своя рука владыка" как напишешь так и будет. А перед потенциальным входом проверять только наличие одного ГЛАВНОГО ордера, если есть может быть только доливка или лок. Если-же по стратегии допускается несколько групп, то это конечно посложней, но всё-же решаемо. Надо только напрячь мышцы головы.

По поводу расточительности ресурсов. Если я не ошибаюсь, ты сейчас стараешься всё писать создавая новые объекты ООП не задумываясь о размере выделенной памяти под него, а память на массив из десятка строк пытаешься экономить.

Других вариантов я предложить не могу.

 
AlexeyVik:

Ты или не совсем понял или совсем не понял.

Если первый ордер поставленный по стратегии можно назвать главным, то магик ему - заданный во внешних переменных. А все доливки к нему и локи ко всей группе уже магиком использовать тикет главного который НИКОГДА не повторится.

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

Если бы не было пачек позиций, вопрос решался бы просто: прогнать по циклу позиции и выбрать открытый первым. Да и вовсе не требовалось бы это делать, т.к. было только одна позиция или одна сеть. А тут  если нет идентификации главного, как Вы выразились ордера, определённой пачки, то не поможет ни тикет ни магик т.к. при обрыве связи или ещё каком косяке как сов сможет узнать о том, какой ордер главным?

AlexeyVik:  

А вот как будут перебираться ордера это уже "своя рука владыка" как напишешь так и будет. А перед потенциальным входом проверять только наличие одного ГЛАВНОГО ордера, если есть может быть только доливка или лок. Если-же по стратегии допускается несколько групп, то это конечно посложней, но всё-же решаемо. Надо только напрячь мышцы головы.

 Вот то и дело, что подразумевается с несколькими группами позиций или отдельными позициями, а не группами)! Я ж об этом с первого поста уже пишу. Вот в этом то и сложность. 

AlexeyVik:

По поводу расточительности ресурсов. Если я не ошибаюсь, ты сейчас стараешься всё писать создавая новые объекты ООП не задумываясь о размере выделенной памяти под него, а память на массив из десятка строк пытаешься экономить. 

 Думаю я и о выделенной памяти и о других сопутствующих вопросах, на самом деле. И на массиве я не экономлю. Где Вы, Алексей, увидели, что я экономлю на массиве?  Я экономлю на излишних расчётам и переборах, если этого можно избежать, а не на расчётах...

 
RickD:

Попросить бы разработчиков увеличить длину Magic до long. Столько можно было бы туда позапихивать. :)

Вариант, предложеный выше, тоже не плох. Тикет первого ордера выступает как ID пачки ордеров. Я бы его назвал GroupID.  Соответственно остальные ордера хранят в комментарии, в своем Magic или в связанном массиве номер этого тикета и тип ордера (основной или лок). Таким образом ордера можно группировать и обрабатывать.
Можно использовать отрицательные магики
 
shanty:

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

Если бы не было пачек позиций, вопрос решался бы просто: прогнать по циклу позиции и выбрать открытый первым. Да и вовсе не требовалось бы это делать, т.к. было только одна позиция или одна сеть. А тут  если нет идентификации главного, как Вы выразились ордера, определённой пачки, то не поможет ни тикет ни магик т.к. при обрыве связи или ещё каком косяке как сов сможет узнать о том, какой ордер главным?

 Вот то и дело, что подразумевается с несколькими группами позиций или отдельными позициями, а не группами)! Я ж об этом с первого поста уже пишу. Вот в этом то и сложность. 

 Думаю я и о выделенной памяти и о других сопутствующих вопросах, на самом деле. И на массиве я не экономлю. Где Вы, Алексей, увидели, что я экономлю на массиве?  Я экономлю на излишних расчётам и переборах, если этого можно избежать, а не на расчётах...

Или ты никак не можешь сказать что пишешь не советник и во время открытия ордеров нет возможности задать соответствующий магик? Как ты определяешь глазами, руками и прочими органами тела что в пачку входят ХХХ ордера?

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

Не оправдывайся, я без претензий. Если нужны будут уточнения спрашивай, отвечу, не подходит, извини.

 
Vinin:
Можно использовать отрицательные магики

А толку? Длины всё-равно не хватит для реализации того, что приходит на ум. Причём, тогда я б точно решил вопрос в кротчайшие сроки.

Во-первых,  косяк с длинной магика.

Второй косяк, в бесполезности комментариев как таковых.

Я предложил бы  сразу увеличить магика длину до типа long( думал про это ещё пару недель назад ) и убрать комментарии по причине их бесполезности.

AlexeyVik:

Или ты никак не можешь сказать что пишешь не советник и во время открытия ордеров нет возможности задать соответствующий магик? Как ты определяешь глазами, руками и прочими органами тела что в пачку входят ХХХ ордера?

 Глаза определять мне это не нужно. Хотя всё просто. Если есть долив, значит уже сформирована пачка. Если долива нет, ещё не сформирована. Таким образом от долива до долива имеется 1 пачка промежуточная. Это если используется долив или лок. Но может быть другой вариант. Использоваться плавающий лок, который не открыт, а лишь установлен отложками, которые будут частичными порциями лочить основную позицию. Таким образом, получается, что имеются разные варианты.

AlexeyVik:

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

 Да нет, Алексей, не доказывать а изъяснять свою точку зрения :) Может я Вашу не допонял или Вы мою задачу не так поняли. Но имеются разные пачки ордеров. Назовёт их просто позиции т.к. позиция может состоять из 1 или более штук открытых ордеров включительно. Таким образом, я и спросил как эту задачу решить изначально.

 

AlexeyVik:

Не оправдывайся, я без претензий. Если нужны будут уточнения спрашивай, отвечу, не подходит, извини.

 Ну я касательно уточнений и написал. Интересует работать с несколькими пачками. Чтоб при рестарте терминала или после восстановления связи не было косяка с логикой. Потому что в нормальном режими всё и так работает.

 
shanty:

Я предложил бы  сразу увеличить магика длину до типа long( думал про это ещё пару недель назад ) и убрать комментарии по причине их бесполезности.

Не надо ничего убирать! Я в 95% всех экспертов только комментариями и выкручиваюсь. А добавить что-нибудь можно.

Magic типа лонг и комментарий ордера в 64 символа хватило бы для полного счастья. :)

 
RickD:

Не надо ничего убирать! Я в 95% всех экспертов только комментариями и выкручиваюсь. А добавить что-нибудь можно.

Magic типа лонг и комментарий ордера в 64 символа хватило бы для полного счастья. :)

А коммент ДЦ может обрезать разе до 64 символов? Больше не режет?
 

shanty:

 Глаза определять мне это не нужно. Хотя всё просто. Если есть долив, значит уже сформирована пачка.

Вот этой доливке и назначь магиком тикет того ордера который он локирует. И в пачке будет ордер тикет = т1; магик = м; и лок-ордер тикет = т2; магик = т1

shanty:

 Если долива нет, ещё не сформирована.

А почему не может быть пачка из одного ордера?

shanty:

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

Ну не открыт и что? он ведь принадлежит этой пачке? или нет?

shanty:

Интересует работать с несколькими пачками. Чтоб при рестарте терминала или после восстановления связи не было косяка с логикой. Потому что в нормальном режими всё и так работает.

А вот тут как раз и спасает массив с тикетами ордеров. Открылся ордер, увеличили размер массива, дополнили его, записали в бинарный файл массивом. Закрылся ордер, очистили массив, перебрали ордера с заполнением массива и опять переписали тот самый файл. При запуске в OnInit() читаем файл и всё на месте.

А вот если во время аварии будет закрыт какой-либо ордер по тейку или стопу, тут уже ничего не сделаешь. Так и называется АВАРИЯ...

 
shanty:
А коммент ДЦ может обрезать разе до 64 символов? Больше не режет?

Сейчас комментарий 27 символов макс. Это видимо 32 символа - 5 символов для служебной информации, которую добавляет брокер.

В общем - это мало. 64 было бы в самый раз. А лучше 128.

 
RickD:

Сейчас комментарий 27 символов макс. Это видимо 32 символа - 5 символов для служебной информации, которую добавляет брокер.

В общем - это мало. 64 было бы в самый раз. А лучше 128.

Хорошо-бы 512, но это - максимально возможный размер под любую структуру вообще. 
Причина обращения: