[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 122

 
Fduch писал(а) >>

Кстати, OrdersTotal() возвращает число типа int. А int может принимать значения:

Т.е. теоретически максимальное количество одреров: 2147483647

Спасибо вам за объективный ответ!!!

 

Прошу помощи, не могу понять, в книге напиано что этот код работает:

//--------------------------------------------------------------------
// Book_expert_33.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int Count=0; // Глобальная перемен.
//--------------------------------------------------------------------
int init() // Спец. ф-ия init()
  {
  Alert ("Сработала ф-ия init() при запуске"); // Сообщение
  return; // Выход из init()
  }
//--------------------------------------------------------------------
int start() // Спец. ф-ия start()
  {
  double Price=Bid; // Локальная перемен.
  Count++; // Счётчик тиков
  Alert("Новый тик ",Count," Цена = ",Price);// Сообщение
  return; // Выход из start()
  }
//--------------------------------------------------------------------
int deinit() // Спец. ф-ия deinit()
  {
  Alert ("Сработала ф-ия deinit() при выгрузке"); // Сообщение
  return; // Выход из deinit()
  }
//--------------------------------------------------------------------

,а у меня не пишет цены для новых тиков, срабатывает функция при запуске и выгрузке.



 
Подскажите пожалуйста непрограмисту,  куда и как вставить Sleep(1200000), чтобы после закрытия ордера была задержка минут 10, очень нужно.
Файлы:
1_1.rar  26 kb
 
v43 писал(а) >>
Подскажите пожалуйста непрограмисту, куда и как вставить Sleep(1200000), чтобы после закрытия ордера была задержка минут 10, очень нужно.

Пожалуйста - поставьте код через бутон SRC - так читать невозможно.

Для такого большого интервала лучше делать не через Sleep, а дождатся такого тика, когда это время прошло - типа:

   static datetime DontCloseBefore = 0;
   //....
   
   OrderSend(....);
   DontCloseBefore = TimeCurrent() + 10*60; //10 minutes
   //....
   
   if(DontCloseBefore!=0)
   {
      if(TimeCurrent()>DontCloseBefore) && (some other conditions - like existing order))
      {
         DontCloseBefore = 0; //important - reset the state engine
         OrderClose(...);
      }
   }
Если DontCloseBefore == 0 то ничего, если имеется стоймость, тогда нужно подождать пока текущее время становиться больше чем то, что прописано в DontCloseBefore, занулить DontCloseBefore и закрытся
 

Может кто-нибудь знает - есть ли команда, позволяющая узнать, открыт ли в окне определённый Индикатор, Например МА(20) ?

Спасибо!

 
chief2000 >>:

Может кто-нибудь знает - есть ли команда, позволяющая узнать, открыт ли в окне определённый Индикатор, Например МА(20) ?

Спасибо!



int WindowFind( string name)
Возвращает номер подокна графика, содержащего индикатор с указанным именем name, если он найден, иначе возвращается -1.
WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init().
 
 
keekkenen >>:


int WindowFind( string name)
Возвращает номер подокна графика, содержащего индикатор с указанным именем name, если он найден, иначе возвращается -1.
WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init().

Вижу что необходимо уточнение: 

моя цель проверить бежит ли МА, если "да" то узнатъ с каким Периодом. В итоге мне необходимо получить "20" если есть МА(20). 

Можно использовать для этого WindowFind() с for-циклом, но не хотелось бы грузить компьютер впустую, поскольку 

эта проверка должна выполняться только один раз в самом начале (WindowFind() в init() не работает?). 

 

Пожалуйста. Напишите ктото простой советник: 

- открываем Бай 

 - При етом тейк=20, стоп лосс=20;

-  когда сработывает тейк, то снова открываем Бай с точно такими параметрами(тейк=20;стоп=20).

-если же сработывает стоп лосс, то открываем Селл с точно такими параметрами(тейк=20;стоп=20). и так делее.

Можно точно такой же только сначала открываем не Бай, а Селл.

в качестве симвалической оплаты за труд могу паполнить счот на 5грн. (если украинские операторы) 

 

Почему при бегущем МА(20) в главном окне 

 WindowFind("MA(20)")

возвращает "-1" ?

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