Пожелания разработчикам

 
Пожелания разработчикам.
Вопрос касается открытия позиции. Хотелось бы иметь в меню открытия позиции возможность задания уникального номера. В категориях MLQ4 это параметр magic. Это необходимо тем которые работают с МТС. Приведу только два примера подтверждающих необходимость такой доработка.
Пример 1. Работает эксперт одновременно с несколькими инструментами и на каждый из них иногда открывает по нескольку позиций. Управление идет через magic,который передается параметром на каждый инструмент и иногда модифицируется самим экспертом. Я глазами вижу, что через 2-3 часа откроется позиция. Есть возможность ее открыть лучше, но после открытия хочется дальнейшее управление передать эксперту. Для этого я должен передать вместе с приказом на открытие позиции этот параметр magic.
Пример 2. Возникает необходимость по управлять с другого компьютера например закрыть позу на локальном экстремуме и затем открыть после отката и опять же вернуть управление эксперту.

В окне открытия есть возможность задания комментария, но это не то, да и вообще при открытии позы не до комментариев. Можно на это место поставить magic или добавить еще одну строку.
 
Я б на Вашем месте решил эту проблемму через скрипты. пишете скрип на открытие с любыми входными данными.
 
Вот посмотрите, может подойдет..
//+------------------------------------------------------------------+
//|                                              EnterPliusMagic.mq4 |
//+------------------------------------------------------------------+
#property copyright "Открывает ордер(+magic) по рыночной цене"
#property link      "http://www...net/"

#include <stdlib.mqh>
#include <WinUser32.mqh>
#property show_inputs
extern string o  ="OrdType 0-BUY, 1-SELL(Укажи тип ордера!)";
extern int OrdType=-1;
extern string oo ="OrdMagic - значение МагикНомер";
extern int OrdMagic=3011100;
extern string ooo="OrdLots - кол-во лотов";
extern double OrdLots=0;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int start()
  {
//----
   if(OrdLots<=0){MessageBox("СКРИПТ ОСТАНОВЛЕН\r\n\nне указано кол-во лотов!",
                             "Script-EnterPliusMagic",MB_OK|MB_ICONERROR);
                  return(-1);
                 }
   string sTyp=""; color clr=CLR_NONE;
   if(OrdType==0)      {sTyp="BUY";  clr=Green;}
   else if(OrdType==1) {sTyp="SELL"; clr=Red;}
   else {MessageBox("СКРИПТ ОСТАНОВЛЕН\r\n\nтип ордера не выбран!\r\nУкажи тип: 0-BUY или 1-SELL",
                    "Script-EnterPliusMagic",MB_OK|MB_ICONERROR); 
         return(-1);
        }
   if(MessageBox("Будет выставлен ордер по рыночной цене?\r\n\n\t"+Symbol()+"\r\n\t"
                 +sTyp+"\t:тип\r\n\t"+DoubleToStr(OrdLots,1)+"\t:лот\r\n\t"+OrdMagic+"\t:магик",
                 "Script-EnterPliusMagic",MB_YESNO|MB_ICONQUESTION)!=IDYES) return(-1);
//----   
   double prc=0; if(OrdType==0) prc=Ask; if(OrdType==1) prc=Bid;
   int ticket=OrderSend(Symbol(),OrdType,OrdLots,prc,3,0,0,"",OrdMagic,0,Gold);
   if(!ticket>0){int error=GetLastError();
                 Print("Error = ",ErrorDescription(error));
                 return(-1);
                }
//----
   OrderPrint();
   return(0);
  }
//+------------------------------------------------------------------+
 
Пишите логику советника с более широкими возможностями различия ордеров - например, по тикету.
 
Интересно, а планируют ли разработчики ввести Стакан в терминал. Сейчас некоторые брокеры позволяют прямой вывод на рынки по рыночным ценам. Эта информация была бы полезна некоторым трейдерам.
 
Вот посмотрите, может подойдет..
//+------------------------------------------------------------------+
//|                                              EnterPliusMagic.mq4 |
//+------------------------------------------------------------------+
#property copyright "Открывает ордер(+magic) по рыночной цене"
#property link      "http://www...net/"

#include <stdlib.mqh>
#include <WinUser32.mqh>
#property show_inputs
extern string o  ="OrdType 0-BUY, 1-SELL(Укажи тип ордера!)";
extern int OrdType=-1;
extern string oo ="OrdMagic - значение МагикНомер";
extern int OrdMagic=3011100;
extern string ooo="OrdLots - кол-во лотов";
extern double OrdLots=0;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int start()
  {
//----
   if(OrdLots<=0){MessageBox("СКРИПТ ОСТАНОВЛЕН\r\n\nне указано кол-во лотов!",
                             "Script-EnterPliusMagic",MB_OK|MB_ICONERROR);
                  return(-1);
                 }
   string sTyp=""; color clr=CLR_NONE;
   if(OrdType==0)      {sTyp="BUY";  clr=Green;}
   else if(OrdType==1) {sTyp="SELL"; clr=Red;}
   else {MessageBox("СКРИПТ ОСТАНОВЛЕН\r\n\nтип ордера не выбран!\r\nУкажи тип: 0-BUY или 1-SELL",
                    "Script-EnterPliusMagic",MB_OK|MB_ICONERROR); 
         return(-1);
        }
   if(MessageBox("Будет выставлен ордер по рыночной цене?\r\n\n\t"+Symbol()+"\r\n\t"
                 +sTyp+"\t:тип\r\n\t"+DoubleToStr(OrdLots,1)+"\t:лот\r\n\t"+OrdMagic+"\t:магик",
                 "Script-EnterPliusMagic",MB_YESNO|MB_ICONQUESTION)!=IDYES) return(-1);
//----   
   double prc=0; if(OrdType==0) prc=Ask; if(OrdType==1) prc=Bid;
   int ticket=OrderSend(Symbol(),OrdType,OrdLots,prc,3,0,0,"",OrdMagic,0,Gold);
   if(!ticket>0){int error=GetLastError();
                 Print("Error = ",ErrorDescription(error));
                 return(-1);
                }
//----
   OrderPrint();
   return(0);
  }
//+------------------------------------------------------------------+





Большое спасибо Ваш скрипт мне очень подошел. Я сам скрипты пока не делал. Думаю я разберусь и сам но если не в облом подскажите как из советника взять какие либо параметры в скрипт. Заранее спасибо.