Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 452

 

Здравствуйте. Подскажите,пожалуйста. как организовать задержку на исполнение. Чтобы после новой свечи до выполнения обновления прошло 10 секунд.

#define  WM_COMMAND                    0x0111
#property indicator_chart_window
#import "user32.dll"
int RegisterWindowMessageA(string lpstring);
int PostMessageA(int  hWnd,int  Msg,int  wParam,string lParam);
int New_Bar;
datetime Time_0;
#import
int start()
 {
     New_Bar=0;                   // Для начала обнулимся
  if (Time_0 != Time[0])          // Если уже другое время начала бара
      {
      New_Bar= 1;                 // А вот и новый бар
      Time_0 = Time[0];           // Запомним время начала нового бара
      PostMessageA (WindowHandle (Symbol(), Period()), WM_COMMAND, 33324, 0);
      PostMessageA (WindowHandle (Symbol(), 0), RegisterWindowMessageA ("MetaTrader4_Internal_Message"), 2, 1);
      } 
 return(0);
 }
 
Здравствуйте, прощу написать код на условие, что если удалить с графика 1 объект тогда и остальные(на выбор) удалятся

у меня к 1 объекту привязаны другие, и при удалении этого объекта, остальные просто висят на графике
 
Dmitry Ivkin:
Здравствуйте, прощу написать код на условие, что если удалить с графика 1 объект тогда и остальные(на выбор) удалятся

у меня к 1 объекту привязаны другие, и при удалении этого объекта, остальные просто висят на графике
При создании объектов использую префиксы, т.е. начало имени. Например: ObjectCreate("777_a"  ...    ObjectCreate("777_z"  и потом группу удаляю ObjectsDelete(0,"777_")
 
werter:

Здравствуйте. Подскажите,пожалуйста. как организовать задержку на исполнение. Чтобы после новой свечи до выполнения обновления прошло 10 секунд.

Самое простое - после Time_0 = Time[0];  вставить Sleep(10000);    и кажется нижнюю директиву #import надо поднять на 2 строки выше

 
STARIJ:

Самое простое - после Time_0 = Time[0];  вставить Sleep(10000);    и кажется нижнюю директиву #import надо поднять на 2 строки выше

Ну да, был бы это эксперт... нельзя в индикаторе Sleep, увы.
 
STARIJ:
При создании объектов использую префиксы, т.е. начало имени. Например: ObjectCreate("777_a"  ...    ObjectCreate("777_z"  и потом группу удаляю ObjectsDelete(0,"777_")

Спасибо что ответили, нет вы не поняли, у меня к объекту приставлены другие объекты, и если удалить индикатор тогда всё норм,но если же нажать правую кн. мыши и удалить тогда удалится именно 1 объект а нужно чтобы все привязанные, надеюсь вы поняли)

 
Dmitry Ivkin:

Спасибо что ответили, нет вы не поняли, у меня к объекту приставлены другие объекты, и если удалить индикатор тогда всё норм,но если же нажать правую кн. мыши и удалить тогда удалится именно 1 объект а нужно чтобы все привязанные, надеюсь вы поняли)

Периодически (каждый тик?) проверяйте наличие основного объекта и при его отсутствии по префиксу удаляйте дочерние
 
werter Ну да, был бы это эксперт... нельзя в индикаторе Sleep, увы.
datetime Time_0=0;

void ...
{
   if (Time_0 < TimeCurrent())
   {
      Alert(TimeCurrent());
      Time_0 = Time[0]+PeriodSeconds()+10; 
   }
 

Давно не писал на MQL4, сейчас надо переписывать с MQL5 советника. Код который должен открывать 1 сделку на символе где стоит советник, правильный ли он?

На тестере открывается 2 сделки почему то

...
if(!Orderex(_Symbol))
{
   OrderSend(NULL,OP_SELL,lot,Bid,30,Bid+stop*Point,Bid-take*Point,NULL,magicf,0,clrRed);
}
...
bool Orderex(string symbol)
{
   for(int i=OrdersTotal(); i>0; i--)
      {
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==symbol && OrderMagicNumber()==magicf) return true;
      
      
      
      }


   return false;
}
 

Наткнулся на еще один нюанс о котором раньше не думал

1) у нас установлено много советников на парах

2) при открытии любого ордера любым советником со своими настройками (какой то открывает 0.1 какой то 0.5 для примера) выводится запись в строку "эксперты"

3) происходит чтение строки эксперты, и при открытых позициях на сумму более х лотов остальные роботы самоудаляются, выключаются и т д.


Вопрос, а как ее прочитать и обработать ? она вроде не входит в файлы логов.

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