//+------------------------------------------------------------------+ //| CheckStart.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ru/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/ru/" //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- Print("Init done"); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Print("Deinit done"); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- Print("Start done"); //---- return(0); } //+------------------------------------------------------------------+
, набрасываем этот советник на график и начинаем компилировать его, не снимая с графика . Видим такой лог-файл в терминале:
2007.02.14 10:26:30 CheckStart EURUSD,M30: Start done
2007.02.14 10:26:29 CheckStart EURUSD,M30: Start done
2007.02.14 10:26:24 CheckStart EURUSD,M30: initialized
2007.02.14 10:26:24 CheckStart EURUSD,M30: Init done
2007.02.14 10:26:24 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:26:24 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:26:24 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:26:09 CheckStart EURUSD,M30: initialized
2007.02.14 10:26:09 CheckStart EURUSD,M30: Init done
2007.02.14 10:26:09 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:26:09 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:26:09 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:26:02 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:58 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:56 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:55 CheckStart EURUSD,M30: initialized
2007.02.14 10:25:55 CheckStart EURUSD,M30: Init done
2007.02.14 10:25:55 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:25:55 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:25:55 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:25:44 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:39 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:38 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:36 CheckStart EURUSD,M30: initialized
2007.02.14 10:25:36 CheckStart EURUSD,M30: Init done
2007.02.14 10:25:36 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:25:36 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:25:36 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:25:32 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:30 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:12 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:08 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:07 CheckStart EURUSD,M30: initialized
2007.02.14 10:25:07 CheckStart EURUSD,M30: Init done
2007.02.14 10:25:07 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:25:07 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:25:07 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:25:07 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:05 CheckStart EURUSD,M30: Start done
2007.02.14 10:25:03 CheckStart EURUSD,M30: Start done
2007.02.14 10:24:42 CheckStart EURUSD,M30: initialized
2007.02.14 10:24:42 CheckStart EURUSD,M30: Init done
2007.02.14 10:24:42 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:24:42 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:24:42 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:24:39 CheckStart EURUSD,M30: Start done
2007.02.14 10:24:38 CheckStart EURUSD,M30: Start done
2007.02.14 10:24:13 CheckStart EURUSD,M30: Start done
2007.02.14 10:24:05 CheckStart EURUSD,M30: initialized
2007.02.14 10:24:05 CheckStart EURUSD,M30: Init done
2007.02.14 10:24:05 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:24:05 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:24:05 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:24:03 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:54 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:49 CheckStart EURUSD,M30: initialized
2007.02.14 10:23:49 CheckStart EURUSD,M30: Init done
2007.02.14 10:23:49 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:49 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:23:49 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:23:46 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:45 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:42 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:37 CheckStart EURUSD,M30: initialized
2007.02.14 10:23:37 CheckStart EURUSD,M30: Init done
2007.02.14 10:23:37 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:37 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:23:37 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:23:36 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:35 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:32 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:27 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:19 CheckStart EURUSD,M30: initialized
2007.02.14 10:23:19 CheckStart EURUSD,M30: Init done
2007.02.14 10:23:19 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:19 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:23:19 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:23:04 CheckStart EURUSD,M30: Start done
2007.02.14 10:23:02 CheckStart EURUSD,M30: initialized
2007.02.14 10:23:02 CheckStart EURUSD,M30: Init done
2007.02.14 10:23:02 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:02 CheckStart EURUSD,M30: deinitialized
2007.02.14 10:23:02 CheckStart EURUSD,M30: Deinit done
2007.02.14 10:22:56 CheckStart EURUSD,M30: Start done
2007.02.14 10:22:46 CheckStart EURUSD,M30: Start done
2007.02.14 10:22:23 CheckStart EURUSD,M30: initialized
2007.02.14 10:22:23 CheckStart EURUSD,M30: Init done
2007.02.14 10:22:22 CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:22:03 Compiling 'CheckStart'
2007.02.14 10:26:24 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:26:09 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:25:55 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:25:36 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:25:07 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:24:42 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:24:05 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:49 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:37 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:19 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:23:02 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.14 10:22:22 Expert CheckStart EURUSD,M30: loaded successfully
2007.02.13 13:25:39 '429959': login (4.00, #299A8BB9)
Таким образом, видно, что последовательность функций nit(), deinit() и start() работает правильно - то есть, при компиляции советника сначала вызывается deinit(), советник снимается, затем загружается новая версия советника и срабатыает функция init(), а затем после приход первого тика запускается функция start(). Значит, проблема может быть только в коде советника - использования глобальных переменных, которые "забывают" изменить, необработка рыночного окружения при первом запуске start() и другие .
Вопрос снимается.
Разобрался где глюкало.
Ничего, мой пример тоже не помешает, пока я его публиковал, Вы уже и сами нашли у себя косяк, а в другой раз кто-то не сможет найти, и ему пойдет на пользу.
Код приведенный в первом посте полностью показывает в чем проблема.
Я немного добавил вывода в лог,чтобы было легче обнаружить ошибку в алгоритме советника:
//+------------------------------------------------------------------+ //| CheckOpenBar.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ru/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/" extern int Periods = 60; // Рабочий таймфрейм для всех индикаторов extern bool OpenBar = true; // Вкл./Откл. открытие на новом баре bool New_Bar = false; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- New_Bar = false; Print("Init done:New_Bar=",New_Bar); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int ticket; //---- Print("Start done:New_Bar=",New_Bar); if (OpenBar == true) { Print("Вызываем функцию Fun_New_Bar"); Fun_New_Bar(); if (New_Bar == false) { Comment("ЖДЁМ ОТКРЫТИЯ НОВОГО БАРА"); return(0); } else { Comment("ПОЛУЧАЕМ СИГНАЛ"); } } //---- if (OrdersTotal()<=10) { //ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #",16384,0,Green); } return(0); } //+----------------------------------------------------------------------------+ //| Открытие только на новом баре | //+----------------------------------------------------------------------------+ void Fun_New_Bar() { // Ф-ия обнаружения нового бара static datetime New_Time=0; // Время текущего бара New_Bar = false; // Нового бара нет Print("Fun_New_Bar: New_Time=",TimeToStr(New_Time)); if(New_Time != iTime(Symbol(),Periods,0)) { // Сравниваем время New_Time = iTime(Symbol(),Periods,0); // Теперь время такое if (New_Time == iTime(Symbol(),Periods,0)) { New_Bar = true; } else { New_Bar = false; // Поймался новый бар } } } //+------------------------------------------------------------------+
Вот результат работы при компиляции:
2007.02.14 12:21:38 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14 10:00
2007.02.14 12:21:38 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:21:38 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:21:37 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:21:37 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:21:37 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:21:27 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:21:27 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:21:27 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:21:26 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:21:26 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:21:26 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:21:07 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:21:07 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:21:07 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:20:36 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:20:36 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:20:36 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:20:34 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:20:34 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:20:34 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:20:24 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:20:24 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:20:24 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:20:23 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:20:23 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:20:23 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:20:14 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:20:14 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:20:14 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:20:12 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:20:12 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:20:12 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:20:03 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:20:03 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:20:03 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:18:58 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:18:58 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:58 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:18:53 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:18:53 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:53 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:18:52 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:18:52 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:52 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:18:51 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:18:51 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:51 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:18:51 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:18:51 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:51 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:18:45 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:18:45 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:45 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:18:34 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:18:34 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:34 CheckOpenBar EURUSD,M30: Start done:New_Bar=1
2007.02.14 12:18:31 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=1970. 01.01
00:00
2007.02.14 12:18:31 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:18:31 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:17:51 CheckOpenBar EURUSD,M30 inputs: Periods=60; OpenBar=true;
2007.02.14 12:17:51 CheckOpenBar EURUSD,M30: initialized
2007.02.14 12:17:51 CheckOpenBar EURUSD,M30: Init done:New_Bar=0
2007.02.14 12:17:51 CheckOpenBar EURUSD,M30: loaded successfully
2007.02.14 12:17:51 CheckOpenBar EURUSD,M30: deinitialized
2007.02.14 12:17:33 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:17:33 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:17:33 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:16:49 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:16:49 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:16:49 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:16:45 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:16:45 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:16:45 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:16:38 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:16:38 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:16:38 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:16:37 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:16:37 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:16:37 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:16:35 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:16:35 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:16:35 CheckOpenBar EURUSD,M30: Start done:New_Bar=1
2007.02.14 12:16:27 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=1970. 01.01
00:00
2007.02.14 12:16:27 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:16:27 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:16:25 CheckOpenBar EURUSD,M30 inputs: Periods=60; OpenBar=true;
2007.02.14 12:16:25 CheckOpenBar EURUSD,M30: initialized
2007.02.14 12:16:25 CheckOpenBar EURUSD,M30: Init done:New_Bar=0
2007.02.14 12:16:25 CheckOpenBar EURUSD,M30: loaded successfully
2007.02.14 12:16:25 CheckOpenBar EURUSD,M30: deinitialized
2007.02.14 12:15:23 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:15:23 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:15:23 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:15:22 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:15:22 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:15:22 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:15:10 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:15:10 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:15:10 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:14:42 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:14:42 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:14:42 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:14:23 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:14:23 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:14:23 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:14:12 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:14:12 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:14:12 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:13:50 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:13:50 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:13:50 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:13:48 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:13:48 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:13:48 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:13:01 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:13:01 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:13:01 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:13:00 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:13:00 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:13:00 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:58 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:58 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:58 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:56 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:56 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:56 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:43 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:43 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:43 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:35 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:35 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:35 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:33 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:33 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:33 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:29 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:29 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:29 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:28 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:28 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:28 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:18 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:18 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:18 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:15 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:15 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:15 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:08 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:08 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:08 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:08 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:08 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:08 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:07 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:07 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:07 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:12:00 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=2007. 02.14
10:00
2007.02.14 12:12:00 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:12:00 CheckOpenBar EURUSD,M30: Start done:New_Bar=1
2007.02.14 12:11:57 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=1970. 01.01
00:00
2007.02.14 12:11:57 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:11:57 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:11:03 CheckOpenBar EURUSD,M30: initialized
2007.02.14 12:11:03 CheckOpenBar EURUSD,M30: Init done:New_Bar=0
2007.02.14 12:11:03 CheckOpenBar EURUSD,M30 inputs: Periods=60; OpenBar=true;
2007.02.14 12:11:01 CheckOpenBar EURUSD,M30: loaded successfully
2007.02.14 12:10:53 Compiling 'CheckOpenBar'
А почему Вы сами не хотите найти причину в Вашем коде?
Я немного добавил вывода в лог,чтобы было легче обнаружить ошибку в алгоритме советника:
//+------------------------------------------------------------------+ //| CheckOpenBar.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ru/ | //+------------------------------------------------------------------+ Вот результат работы при компиляции:
2007.02.14 12:12:00 CheckOpenBar EURUSD,M30: Start done:New_Bar=1
2007.02.14 12:10:53 Compiling 'CheckOpenBar'
Если New_Bar == true работаем дальше если false то return(0);
Нет ли тут какой-нибудь логической ошибки?
То что вокзал отходит верно замечено.
Рассуждаем логически
2007.02.14 12:12:00 CheckOpenBar EURUSD,M30: Start done:New_Bar=1
2007.02.14 12:11:57 CheckOpenBar EURUSD,M30: Fun_New_Bar: New_Time=1970. 01.01
00:00
2007.02.14 12:11:57 CheckOpenBar EURUSD,M30: Вызываем функцию Fun_New_Bar
2007.02.14 12:11:57 CheckOpenBar EURUSD,M30: Start done:New_Bar=0
2007.02.14 12:11:03 CheckOpenBar EURUSD,M30: initialized
2007.02.14 12:11:03 CheckOpenBar EURUSD,M30: Init done:New_Bar=0
2007.02.14 12:11:03 CheckOpenBar EURUSD,M30 inputs: Periods=60; OpenBar=true;
подключили советник, в ините нового бара не нашлось, следующий
тик вызывает функцию Start, которая в свою очередь вызывает функцию
Fun_New_Bar(), т.е. проверяем есть ли новый бар. мне непонятно почему
проскакивает New_Bar=1, если вопрос с Fun_New_Bar: New_Time=1970.01.01 00:00 решается
достаточно просто, т.е. New_Time = iTime(Symbol(),Periods,0); выносим в инит и время бара теперь знаем.
Но от того что мы его знаем дело вобщем-то осталось таким же.
Бревна в своём глазу не вижу. Бывает же и такое.
подключили советник, в ините нового бара не нашлось, следующий
тик вызывает функцию Start, которая в свою очередь вызывает функцию
Fun_New_Bar(), т.е. проверяем есть ли новый бар. мне непонятно почему
проскакивает New_Bar=1, если вопрос с Fun_New_Bar: New_Time=1970.01.01 00:00 решается
достаточно просто, т.е. New_Time = iTime(Symbol(),Periods,0); выносим в инит и
время бара теперь знаем.
Но от того что мы его знаем дело вобщем-то осталось таким же
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Сталкнулся с такой проблемой.
Эксперт прикреплен на график и работает. Выставляет отложенные ордера, контролирует открытые, закрывает и открывает.
Но все это должно происходить только на открытии бара. (Открытие ордеров, выставление отложенных), но при редактировании эксперта и его перекомпеляции проскакивает ситуация что ордера открываются и выставляются отложенные. Не на всех парах, а 1-2 ордера по разным валютам проскакивает. Если перекомпелировать достаточно часто, то таких ордеров повыскакивает много. На тестере все открывается строго на начале бара.