Передача открытых позиций от одного эксперта, другому эксперту.

 
Здравствуйте, Уважаемое сообщество! Возникла необходимость, в передаче открытых позиций от одного эксперта, другому эксперту, по окончанию торгового дня. Эксперты работают на одном терминале и на одном таймфрейме. Сам рассматриваю два варианта: 1) Использовать в качестве поля передачи параметров, комментарии. 2) Использовать глобальные переменные. Может есть какой, более изящный и простой способ, решить задачу? Эксперты мои, в коде разбираюсь хорошо. Спасибо, за Ваше время.
 

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

001 - тип ордера ( по личной классификации... причина открытия ордера...)

030 - СЛ

060 - ТП

...

итого магиг: 001030060

имхо...

ну, и конечно, можно использовать файл, как промежуточное хранение информации...

 

Можно также  классифицировать(подхватывать) по :

- размеру лота

- по цене открытия

- по названию торгуемого инструмента

- по индексу позиции 

- по наличию позиции на заданном расстоянии от тек цены (Функция ExistOPNearMarket(). Стр.16
Данная функция возвращает флаг существования ордера или позиции около рынка (на заданном расстоянии в пунктах от рынка).

- по размеру текущего профита/убытка

- ... и т.п. ...

Все эти возвращаемые параметры можно найти в функциях Игоря Кима без проблем.

'Полезные функции от KimIV'

Код будет простой и ясный(легко-читаемый).

 
Спасибо, большое за ответы! Буду мозговать далее...
 
konda >>:
Здравствуйте, Уважаемое сообщество! Возникла необходимость, в передаче открытых позиций от одного эксперта, другому эксперту, по окончанию торгового дня. Эксперты работают на одном терминале и на одном таймфрейме. Сам рассматриваю два варианта: 1) Использовать в качестве поля передачи параметров, комментарии. 2) Использовать глобальные переменные. Может есть какой, более изящный и простой способ, решить задачу? Эксперты мои, в коде разбираюсь хорошо. Спасибо, за Ваше время.

мона запихнуть все в один советник

if(TimeDay(OrderOpenTime())==TimeDay(TimeCurrent()))
   {/*первый эксперт*/}
else
   {/*второй эксперт*/}
или это условие добавить в оба советника. первый работает с ордером если true, второй если false.
 
Swan, спасибо за совет! Сделал примерно так-же. Второй советник, работает с ордерами, которые открылись не в текущий день.
 
konda >>:
Swan, спасибо за совет! Сделал примерно так-же. Второй советник, работает с ордерами, которые открылись не в текущий день.

Если хотите - могу поделиться небольшими кусками кода и DLL - эта фиговина поддерживает некоторое подобие базы данных для ордеров. Каждому magic-у в соответсвие ставится строка текста. К этому прилагается небольшой модуль для распарсивания строки. :)

 
Спасибо, Azzx ! Все уже получилось, как надо.
 
Azzx писал(а) >>

... DLL - ... фиговина поддерживает некоторое подобие базы данных для ордеров. Каждому magic-у в соответсвие ставится строка текста...

а зачем и от кого прячете comment ордеров?

 
konda >>:
Здравствуйте, Уважаемое сообщество! Возникла необходимость, в передаче открытых позиций от одного эксперта, другому эксперту, по окончанию торгового дня. Эксперты работают на одном терминале и на одном таймфрейме. Сам рассматриваю два варианта: 1) Использовать в качестве поля передачи параметров, комментарии. 2) Использовать глобальные переменные. Может есть какой, более изящный и простой способ, решить задачу? Эксперты мои, в коде разбираюсь хорошо. Спасибо, за Ваше время.

Выставлять очень далекие pending ордера. В качестве магика в них засовывать тикет передаваемого ордера.

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