Изменение комментария в открытых ордерах

 

Добрый день. Надеюсь разработчики платформы читают данный форум. Просьба сделать возможным изменять комментарий по открытым ордерам.

Крайне не хватает данной опции для автоматизированной торговли, когда сделки управляются и роботом и человеком. Приходится очень сильно изощряться.

Спасибо заранее.

 
ZzzonaaA:

Добрый день. Надеюсь разработчики платформы читают данный форум. Просьба сделать возможным изменять комментарий по открытым ордерам.

Крайне не хватает данной опции для автоматизированной торговли, когда сделки управляются и роботом и человеком. Приходится очень сильно изощряться.

Спасибо заранее.

да, да. хорошо бы еще, чтобы тикет ордера можно было менять, а также цену открытия.

особенно цену открытия.

 
ZzzonaaA:

Добрый день. Надеюсь разработчики платформы читают данный форум. Просьба сделать возможным изменять комментарий по открытым ордерам.

Крайне не хватает данной опции для автоматизированной торговли, когда сделки управляются и роботом и человеком. Приходится очень сильно изощряться.

Спасибо заранее.

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

А если лаконично)

Нет и не будет таких изменений из-за специфики.

 
Так ведь в том то и дело, что если будет доступно изменение таких полей как Magic Number и Order Comment, то вся автоторговля пойдет прахом. Каждый советник сможет изменять эти поля, чем нарушит алгоритм работы другого советника, которому принадлежат эти ордера.
 
ZzzonaaA:

Добрый день. Надеюсь разработчики платформы читают данный форум. Просьба сделать возможным изменять комментарий по открытым ордерам.

Крайне не хватает данной опции для автоматизированной торговли, когда сделки управляются и роботом и человеком. Приходится очень сильно изощряться.

Спасибо заранее.

Мне данной функции тоже не хватает. Например я выставляю Buy Limit. В комментарии кратко пишу значения индикаторов в момент выставления. Через какое то время изменяю цену лимитки т.к значения индикаторов изменились, а новые значения индикаторов в комментарий уже не запишешь. 

До сделки могли бы и разрешить изменять комментарий да и  меджик. Рисков мошенничества,  я тут не вижу. 

 
pivomoe:

Мне данной функции тоже не хватает. Например я выставляю Buy Limit. В комментарии кратко пишу значения индикаторов в момент выставления. Через какое то время изменяю цену лимитки т.к значения индикаторов изменились, а новые значения индикаторов в комментарий уже не запишешь. 

До сделки могли бы и разрешить изменять комментарий да и  меджик. Рисков мошенничества,  я тут не вижу. 

удалить pending, поставить новый с новым значением индикатора в комменте

 
Denis Sartakov:

удалить pending, поставить новый с новым значением индикатора в комменте

На FORTS есть ограничение в 2000 не эффективных транзакций. Удалить поставить это две транзакции. Изменить одна.


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

 
Создаешь файл и пишешь туда что угодно, когда угодно и так как хочется.
 
ZzzonaaA:

Добрый день. Надеюсь разработчики платформы читают данный форум. Просьба сделать возможным изменять комментарий по открытым ордерам.

Крайне не хватает данной опции для автоматизированной торговли, когда сделки управляются и роботом и человеком. Приходится очень сильно изощряться.

Спасибо заранее.

А модифицировать ордер с той же ценой, но с другим комментарием не пробовали?

Добавлено

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

 
pivomoe:

На FORTS есть ограничение в 2000 не эффективных транзакций. Удалить поставить это две транзакции. Изменить одна.


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

На самом деле на Бирже нет команды "Модифицировать ордер", есть комманда "Move order", при которой 

присваивается новый тикет.

Просто МТ5 сохраняет присвоеный (внутренний ордер) при модификации

 
ZzzonaaA:

Добрый день. Надеюсь разработчики платформы читают данный форум. Просьба сделать возможным изменять комментарий по открытым ордерам.

Крайне не хватает данной опции для автоматизированной торговли, когда сделки управляются и роботом и человеком. Приходится очень сильно изощряться.

Спасибо заранее.

Как раз для автоматизированной торговли не нужны комментарии, лучше изменять Магики (для модификации не требуется изменения магика).

Да и вообще, плохая идея торговать и роботом и руками.

Добавлено

Вот вам код (только для ФОРТС) для автоматического присвоения начального и уникального магика для символа.

При каждой установке ордера прибавляете 1, при переполнении (доступно 65534 изменения) просто снова задаете

начальное значение (GetStoredMagic()).

Функция IsMyMagic() проверяет магик на принадлежность данному символу.

//+------------------------------------------------------------------+
//|                                                    AutoMagic.mqh |
//|                                 Copyright 2017-2018 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//version   "1.01
struct SYMBOL_MAGIC
{
  long ch_id;
  ulong magic;
};
SYMBOL_MAGIC symb_magic;
//-------------------------------------------------------------------+
// Split string function                                             |
//+------------------------------------------------------------------+
string SplitString(const string a_str,ulong &a_month,ulong &a_year)
  {
   int str_size=StringLen(a_str);
   int str_tire=StringFind(a_str, "-");
   int str_tochka=StringFind(a_str, ".", str_tire);
   if((str_tire>0) && (str_tochka>0) &&(str_size > 0))
     {
      a_month= ulong(StringToInteger(StringSubstr(a_str,str_tire+1,str_tochka-str_tire-1)));
      a_year = ulong(StringToInteger(StringSubstr(a_str,str_tochka+1,str_size-str_tochka-1)));
      if((a_month > 0) && (a_year > 0)) return(StringSubstr(a_str, 0, str_tire));
     }
   return("");
  }
//-------------------------------------------------------------------+
// Get Magic function                                                |
//+------------------------------------------------------------------+
ulong GetMagic(const string a_symbol)
{
//--- Get ChartID
  symb_magic.ch_id = ChartID();
  if(SymbolSelect(Symbol(), true) == false)
  {
    Print(__FUNCTION__, ": Нет такого символа!");
    return(0);
  }
  if(symb_magic.ch_id != 0)
  {
    ulong month = 0;
    ulong year = 0;
    string new_str = SplitString(a_symbol,month,year);
    if(StringLen(new_str)>0)
    {
      symb_magic.magic = 0;
      uchar char_array[];
      int result=StringToCharArray(new_str,char_array,0,WHOLE_ARRAY,CP_ACP);
      if(result>0)
     {
        ulong value;
        for(int i = 0; i < result - 1; i++)
        {
          value=ulong(char_array[i]);
          value<<=(56 -(i*8));
          symb_magic.magic += value;
        }
        month<<=24;
        symb_magic.magic += month;
        year<<=16;
        symb_magic.magic += year;
        return(symb_magic.magic);
      }
    }
  }   
  return(0); 
}
//-------------------------------------------------------------------+
// Is my magic function                                              |
//+------------------------------------------------------------------+
bool IsMyMagic(const ulong m_magic, const long chart_id)
{
  if(symb_magic.ch_id == chart_id)
  {
    ulong stored_magic=symb_magic.magic;
    stored_magic>>=16;
    ulong in_magic = m_magic;
    in_magic>>=16;
    if(in_magic == stored_magic) return(true);
  }
  return(false);
}
//-------------------------------------------------------------------+
// Get stored magic function                                         |
//+------------------------------------------------------------------+
ulong GetStoredMagic(const long cha_id)
{
  if(cha_id == symb_magic.ch_id)
  {
    return(symb_magic.magic);
  }
  return(0);  
}

Добавлено

И вообще, Вам лучше писать в раздел "Биржевой трейдинг"