Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Управляй агентами в профиле. Это просто!
siroja
42
siroja 2012.08.22 06:07 
int NewOrder(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUY)
{PR=Ask;
if(TakeProfit>0) TP=Ask+TakeProfit*Point;
if(StopLoss>0) SL=Ask-StopLoss*Point;}
if(Cmd==OP_SELL)
{PR=Bid;
if(TakeProfit>0) TP=Bid-TakeProfit*Point;
if(StopLoss>0) SL=Bid+StopLoss*Point;}
int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"«,0,0,CLR_NONE);
if(tic<0) Print(»Ошибка открытия ордера: «,GetLastError());

return(tic);}


Как сделать так что бы данная функция открывала ордера с магическим номером ?

Владимир Тезис
4269
Владимир Тезис 2012.08.22 06:56  
У функции OrderSend() нужно в качестве одного из параметров указывать этот номер - ознакомьтесь с параметрами, подаваемыми на вход этой функции.
Mikhail Kozhemyako
1166
Mikhail Kozhemyako 2012.08.22 14:20  
7erj:
int NewOrder(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUY)
{PR=Ask;
if(TakeProfit>0) TP=Ask+TakeProfit*Point;
if(StopLoss>0) SL=Ask-StopLoss*Point;}
if(Cmd==OP_SELL)
{PR=Bid;
if(TakeProfit>0) TP=Bid-TakeProfit*Point;
if(StopLoss>0) SL=Bid+StopLoss*Point;}
int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"«,0,0,CLR_NONE);
if(tic<0) Print(»Ошибка открытия ордера: «,GetLastError());

return(tic);}


Как сделать так что бы данная функция открывала ордера с магическим номером ?

Так, это вообще что???? int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,,0,0,CLR_NONE);

Должно быть где-то так:


int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,"7jrj-comment",MagicЦелоеЧисло,0,CLR_NONE);
Alexandre
601
Alexandre 2012.08.22 15:30  
//+--------------------------------------------------------------------------------------+
//| Get Unique Magic Number                                                              |
//+--------------------------------------------------------------------------------------+
// 
int GetUniqueMagID ( string symbol_, int period_, int icount_ = 0 )
  {
    int i, str_length, num_magic, pos2;
  // ----
    pos2 = 1;
    num_magic  = period_;
    str_length = StringLen ( symbol_ );
    // типа полином, составленный из строки инструмента
    for ( i = str_length - 1; i >= 0; i -- )
      {
        pos2 *= 2;
        num_magic += pos2 * StringGetChar ( symbol_, i );
      } // for ( i = str_length - 1; i >= 0; i -- )
    // учитываем дополнительный параметр icount_, если он положительный
    if ( icount_ > 0 )   { pos2 *= 2; num_magic += pos2 * icount_; }
    // в режиме тестирования дополнительно увеличиваем магический номер
    if ( IsTesting ( ) ) { pos2 *= 2; num_magic += pos2;           }
  // ----
    return ( num_magic );
  } // int GetUniqueMagID
Виктор
Модератор
6560
Виктор 2012.08.22 18:08  
Стряхнем пыль с архивов :))

//+----------------------------------------------------------------------------+
//|  Автор    :  granit77, KimIV style                                         |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.04.2009                                                     |
//|  Описание : Возвращает сумму символьных кодов всех символов входной строки |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    symbolstring - строка для расчета                                       |
//|    multiplier   - дополнительный множитель                                 |
//+----------------------------------------------------------------------------+

int GetMagic(string symbolstring, int multiplier){
   int res=0;
   int len=StringLen(symbolstring);
   for(int i=0; i<len; i++)
       res+=StringGetChar(symbolstring,i);      
   return(res*multiplier);
}

//применение
extern int Magic=0;
string _comment;
//------------------
int init()
{
   _comment=WindowExpertName();
   //Если Magic >0,используется значение, установленное в extern int Magic
   //Если Magic==0,рассчитывается новое значение Magic на основе имени эксперта,символа и ТФ
   //Если Magic <0,к рассчитанному значению Magic прибавляется абсолютное значение, 
   //установленное в extern int Magic 
   if(Magic<=0){
      Magic=MathAbs(Magic)+(GetMagic(_comment+Symbol(),Period()); 
   }
}
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий