У функции OrderSend() нужно в качестве одного из параметров указывать этот номер - ознакомьтесь с параметрами, подаваемыми на вход этой функции.
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());
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);
//+--------------------------------------------------------------------------------------+ //| 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
Стряхнем пыль с архивов :))
//+----------------------------------------------------------------------------+ //| Автор : 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()); } }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
{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);}
Как сделать так что бы данная функция открывала ордера с магическим номером ?