[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 529

 
001:
Подскажите, плз, есть ли в "природе" автооптимизатор, который оптимизирует параметры в процессе теста? Надо идейку проверить.
Даже ближе есть, прямо у нас на сайте.
А еще есть такая штука как поиск, это когда слова, которыми называется предмет поиска, вставляются в поисковик.
http://www.google.ru/search?as_sitesearch=mql4.com&as_q=автооптимизатор
 

Подскажите, пожалуйста, как в отложенном ордере правильно указать в советнике автоматическое его удаление в 23:00?

Такой вариант выдаёт ошибку:

  datetime Tim=D'23:00';
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  {

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
 
Andreev:

Подскажите, пожалуйста, как в отложенном ордере правильно указать в советнике автоматическое его удаление в 23:00?

Такой вариант выдаёт ошибку:


int Tim=iTime(NULL, Period_D1,0)+23*60*60;
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
Что-то примерно так
 
dmmikl86:

вообще вроде бы и не новичок программирую несколько лет, переписывал индикатора с другого языка, и наткнулся на перерисовку. прошу подправьте и покажите где ошибка???

вот код индикатора:


Индикатор лучше было файлом выкладывать. Никто же не будет куски в один файл склеивать
 
Andreev:

Такой вариант выдаёт ошибку:

int Tim;
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  { Tim=TimeCurrent( )+ (23-Cur_time)*3600

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);


Как то так.
 
Vinin:

Что-то примерно так

Выдаёт ошибку:


2011.07.19 18:56:15 2011.07.18 20:00 Return EURUSD,M1: OrderSend error 4062
2011.07.19 18:56:15 2011.07.18 20:00 Return: the comment parameter for OrderSend function must be a string

 
alexshell:

Как то так.

Почему-то выдаёт ту же самую ошибку. Если убираю функцию Tim из ордера, то работает, но часть сделок открывает после 23.00. Что можно придумать, чтобы ограничить?
 
Andreev:

Выдаёт ошибку:


2011.07.19 18:56:15 2011.07.18 20:00 Return EURUSD,M1: OrderSend error 4062
2011.07.19 18:56:15 2011.07.18 20:00 Return: the comment parameter for OrderSend function must be a string


Извиняюсь, отредактировал Ваш вариант без проверки

 ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, "",0,Tim, CLR_NONE);
 
Vinin:


Извиняюсь, отредактировал Ваш вариант без проверки


Большое спасибо!!! Работает :)
 

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

//+------------------------------------------------------------------+
//|                                                    пробныйй .mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
  
  int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price; int stsBUY;int stsSELL;double Price;int C=0;datetime wremjapomnim;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4) ; Alert ("price", price);Alert("otstup*Point",otstup*Point);
//----
Alert ("Price +otstup*Point",Price +otstup*Point);Alert ("Price+takeprofit*Point+otstup*Point", Price+takeprofit*Point+otstup*Point);
tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, Price +otstup*Point, Point* 3, R1, Price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( ));
  Alert ("Price -otstup*Point",Price -otstup*Point);Alert ("Price-takeprofit*Point-otstup*Point", Price-takeprofit*Point-otstup*Point); 
tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, Price -otstup*Point, Point* 3,R2, Price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
   
//----

// Здесь код для закрытия всех открытых позиций (тоже в цикле)
         for ( i=0; i<OrdersTotal(); i++) {
           OrderSelect(i, SELECT_BY_POS );
              if (  OrderType( )==OP_BUY && OrderType( )==OP_SELL ){
                          OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);
   Alert ("OrderClose-vse-2",  GetLastError( ) ); C=0;A=1; }} 
         // Здесь код для удаления всех отложенных ордеров (также в цикле)
         for ( i=0; i<OrdersTotal(); i++) {
         OrderSelect(i, SELECT_BY_POS );
           if (  OrderType( )==OP_BUYSTOP && OrderType( )==OP_SELLSTOP ){ 
            OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vse-2",  GetLastError( ) ); }}    
        
   return(0);
  }
//+------------------------------------------------------------------+
Алерт должен писать в журнал цену Alert ("price", price); допустим 1.4825, и он пишет, т.е. переменная нармальная. А дальше!!

Alert ("Price +otstup*Point",Price +otstup*Point); Это-Цена + отступ(20пп)* умножить на поинт(0.0001) итого-1.4805 должно-то быть, (!!!!), а пишет тока 0.002

и т.п. Вот: Как понять? Какой синтаксис в формулах надобен?

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