Как установить отличие между ордерами одного типа?

 
Всем привет!
Ситуация следующая. Советник открывает ордера по определенному сигналу. С течением времени открытый ордер, допустим, не закрывается (не достигнут стоп/профит). Получаем второй сигнал в ту же сторону. Снова открываем ордера. И вот здесь нужно как-то различить ордера, открытые по первому сигналу и те, которые были открыты по второму сигналу. В функции OrderSend есть такой параметр как comment, в котором вроде можно что-то подобное написать, но в документации сказано, что "Последняя часть комментария может быть изменена торговым сервером." И вот здесь непонятно, что это за последняя часть и как это может повлиять на сам комментарий? Или может будут какие-то другие соображения о том как различить ордера?
 
Comment в ордере обычно меняется/дописывается (если меняется) при закрытии/удалении ордера. То есть - "Вскрытие показало - больной скончался от вскрытия ".
 
Rosh:
Comment в ордере обычно меняется/дописывается (если меняется) при закрытии/удалении ордера. То есть - "Вскрытие показало - больной скончался от вскрытия ".
 То есть, пока ордер открыт, комментарий не может быть изменен сервером?
 
Для различия ордеров предназначено использование MagicNumber.
Почитайте статьи по управлению ордерами.
'Управление ордерами – это просто'
'Учёт ордеров в большой программе'
 
solandr:
Для различия ордеров предназначено использование MagicNumber.
Почитайте статьи по управлению ордерами.
'Управление ордерами – это просто'
'Учёт ордеров в большой программе'
Посредством MagicNumber я отделяю ордера одного советника от ордеров другого. Спасибо.
 
MagicNumber может нести в себе кумулятивную информацию также. Например, уникальный номер советника равен 123, номер игнала равен 5 и номер ордера по этому сигналу равен 3. Тогда соберем MagicNumber=123*10 000 + 5*1000 + 3 = 1 235 003. Обратный разбор даст всю необходимую информацию об этом ордере.
 
Rosh:
MagicNumber может нести в себе кумулятивную информацию также. Например, уникальный номер советника равен 123, номер игнала равен 5 и номер ордера по этому сигналу равен 3. Тогда соберем MagicNumber=123*10 000 + 5*1000 + 3 = 1 235 003. Обратный разбор даст всю необходимую информацию об этом ордере.
Интересная мысль. Действительно, я таким образом на ассемблере хранил информацию в словах или двойных словах. Только там, конечно, присутствовал множитель 256.  
Надо будет вспомнить кодинг на языках низкого уровня, а то нынешние языки высокого уровня иногда приводят к застою мысли.
Спасибо!
 

Советник должен обрабатывать ситуацию целиком.
Моё глубокое убеждение состоит в том, что для торговли не важно по какому принципу открыт ордер.
Важно, что он уже открыт. Советник должен проанализировать ситуацию и действовать согласно инструкции.
Если инструкция различает курс открытия, время открытия, причину открытия, то это - ошибочная инструкция.
(различает - в смысле принимает на этой основе торговые решения)
Анализировать следует только текущие торговые критерии.

Отличать ордера нужно для других, более меркантильных целей.
Например, уведомить пользователя, что какой-то умник (с другого ПК) полез в терминал руками в то время, когда там работает МТС.
Или сообщить пользователю о том, что очередная торговая операция завершилась успешно.

 
SK. писал (а):

Советник должен обрабатывать ситуацию целиком.
Моё глубокое убеждение состоит в том, что для торговли не важно по какому принципу открыт ордер.
Важно, что он уже открыт. Советник должен проанализировать ситуацию и действовать согласно инструкции.
Если инструкция различает курс открытия, время открытия, причину открытия, то это - ошибочная инструкция.
(различает - в смысле принимает на этой основе торговые решения)
Анализировать следует только текущие торговые критерии.

Отличать ордера нужно для других, более меркантильных целей.
Например, уведомить пользователя, что какой-то умник (с другого ПК) полез в терминал руками в то время, когда там работает МТС.
Или сообщить пользователю о том, что очередная торговая операция завершилась успешно.

Просто я не стал конкретизировать для чего я это делаю. Но в принципе, могу рассказать.
Допустим, открылись Бай по первому сигналу с подтверждением. Получаем сигнал вниз (внимание! сигнал, ждем подтверждение). Ставим этот Бай
в +1. На сигнал вниз подтверждения не поступило. Со временем  получаем  второй сигнал Бай. Ждем подтверждения. Получили подтверждение,
заходим Бай. Итого имеем ордера БайСигнал1 и БайСигнал2. Вновь получаем сигнал вниз. И вот здесь мне надо различить, по какому из баев ставить
 профит +1. Потому как именно по уровню (БайСигнал2)+1, согласно разработанной стратегии, мне необходимо выставить профит обоих ордеров. Причем неважно какая из цен открытия этих ордеров выше или ниже.   На деле даже бывает такая чехарда до трех-четырех сигналов, в которых и нужно различать какой ордер открыт по какому сигналу
 

Ну так и в чём проблема? Имеем 2 ордера с разными магиками:
int magic_buy1=100;
int magic_buy2=200;
И работаем с каждым из ордеров согласно вашей стратегии по описанным выше торговым условиям.

 
Scriptong:
Просто я не стал конкретизировать для чего я это делаю. Но в принципе, могу рассказать.
Допустим, открылись Бай по первому сигналу с подтверждением. Получаем сигнал вниз (внимание! сигнал, ждем подтверждение). Ставим этот Бай
в +1. На сигнал вниз подтверждения не поступило. Со временем получаем второй сигнал Бай. Ждем подтверждения. Получили подтверждение,
заходим Бай. Итого имеем ордера БайСигнал1 и БайСигнал2. Вновь получаем сигнал вниз. И вот здесь мне надо различить, по какому из баев ставить
профит +1. Потому как именно по уровню (БайСигнал2)+1, согласно разработанной стратегии, мне необходимо выставить профит обоих ордеров. Причем неважно какая из цен открытия этих ордеров выше или ниже. На деле даже бывает такая чехарда до трех-четырех сигналов, в которых и нужно различать какой ордер открыт по какому сигналу

Это имеет смысл. Видимо, просто нужно навести порядок в терминологии.
Вот это сбивает: "И вот здесь мне надо различить, по какому из баев ставить профит +".
Видимо, не по какому из баёв, а по какому торговому критерию расчитывается заявленная цена TakeProfit (для всех баёв).
Для этой цели не требуется "различать" ордера. Нужно знать сколько их и на все выставить вычисленный профит.
Если для какого-то из них профит на заданную цену поставить не удаётся, то поставить его на максимально приближенную
и тащить профит для этого ордера вниз за курсом пока он не станет на заданное место (пока работает критерий).

Как разбираться с критериями - дело разработчика стратегии.

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