MT4 зависает, не вызывает start() снова - страница 2

 

start():

int start()
  {     
   int TFInd;
   int k;  
   
   Print("start():  started . . .");  
   
   if (CheckDebug(DebugStart, 2))
      {
         DebugStr = "DebugStart: " + "begin: " + " InitialGapFound: " + BoolToString(InitialGapFound);
         PrintDebug(DebugFile, DebugStr);
      }

...

OK - это просто #define OK 0

мой файл журнала:

2013.11.15 14:35:30 Test reduced 0: USDJPY M15 Debug Init() begin:
2013.11.15 14:35:30 Тест уменьшен 0: USDJPY M15 DebugMyInit begin:
2013.11.15 14:35:30 Тест уменьшен 0: USDJPY M15 Debug Init() return:
2013.11.15 14:35:30 Тест уменьшен 0: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 0: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: начало: InitialGapFound: True
2013.11.15 14:35:30 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:31 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound
2013.11.15 14:35:32 Тест уменьшен 1180990: USDJPY M15 DebugStart: begin: InitialGapFound: True
2013.11.15 14:35:32 Тест уменьшен 1180990: USDJPY M15 DebugStart: InitialHistoryGapClosed
2013.11.15 14:35:32 Тест уменьшен 1180990: USDJPY M15 DebugMyInit begin:
2013.11.15 14:35:32 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 1 nach CreateHistory()
2013.11.15 14:35:33 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 2 nach CreateHistory()
2013.11.15 14:35:34 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 3 nach CreateHistory()
2013.11.15 14:35:35 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 4 nach CreateHistory()
2013.11.15 14:35:35 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 5 nach CreateHistory()
2013.11.15 14:35:36 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 6 nach CreateHistory()
2013.11.15 14:35:37 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 7 nach CreateHistory()
2013.11.15 14:35:37 Тест уменьшен 1180990: USDJPY M15 DebugMyInit return InitialMyInitCalls: 0 IndexCount: 8
2013.11.15 14:35:37 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound


Лог-файл MT4 ничего не показывает. Print() не работает в таком случае, когда MT4 зависает, потому что файл журнала MT4 не промывается. Вот почему я использую свою собственную функцию журнала.

см. также

WHRoeder2013.11.14 19:27#

Вести журнал где/как? Вы НЕ можете использовать Print/Alert, потому что вы вешаете поток GUI, вывод не будет записан.

Лог файл MT4:

13:38:00 GA_Pivot Points DE30.Z,M15: инициализировано
13:38:00 $CH_Stochastic Copyright Dec2009 DE30.Z,M15: инициализировано
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: деинициализировано
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: причина разблокировки 1
14:35:05 GA_Pivot Points _US30,M15: деинициализация
14:35:05 GA_Pivot Points _US30,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: деинициализировано
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: uninit reason 1
14:35:05 GA_Daily Range Lines V1.3 _US30,M15: удалено
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: удалено
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: удален
14:35:05 GA_Pivot Points _US30,M15: удалено
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: удален
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: uninit reason 1
14:35:05 GA_Pivot Points _US30,M15: деинициализация
14:35:05 GA_Pivot Points _US30,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: деинициализировано
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _US30,M15: удалено
14:35:05 GA_MTF MAs 2 V1.4 _US30,M15: удалено
14:35:05 GA_Pivot Points _US30,M15: удалено
14:35:05 $CH_Stochastic Copyright Dec2009 _US30,M15: удален
14:35:05 GA_MTF MAs 1 V1.4 _EUR50,Daily: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _EUR50,Daily: uninit reason 1
14:35:05 GA_Pivot Points _EUR50,Daily: деинициализация
14:35:05 GA_Pivot Points _EUR50,Daily: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: деинициализировано
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _EUR50,Daily: удалено
14:35:05 GA_MTF MAs 2 V1.4 _EUR50,Daily: удалено
14:35:05 GA_Pivot Points _EUR50,Daily: удалено
14:35:05 $CH_Stochastic Copyright Dec2009 _EUR50,Daily: удален
14:35:05 GA_MTF MAs 1 V1.4 _DE30,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 _DE30,M15: uninit reason 1
14:35:05 GA_Pivot Points _DE30,M15: деинициализация
14:35:05 GA_Pivot Points _DE30,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 _DE30,M15: деинициализировано
14:35:05 $CH_Stochastic Copyright Dec2009 _DE30,M15: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 _DE30,M15: удалено
14:35:05 GA_MTF MAs 2 V1.4 _DE30,M15: удалено
14:35:05 GA_Pivot Points _DE30,M15: удалено
14:35:05 $CH_Stochastic Copyright Dec2009 _DE30,M15: удален
14:35:05 GA_MTF MAs 1 V1.4 DE30.Z,M15: uninit reason 1
14:35:05 GA_MTF MAs 2 V1.4 DE30.Z,M15: uninit reason 1
14:35:05 GA_Pivot Points DE30.Z,M15: деинициализация
14:35:05 GA_Pivot Points DE30.Z,M15: uninit reason 1
14:35:05 $CH_Stochastic Copyright Dec2009 DE30.Z,M15: деинициализировано
14:35:05 $CH_Stochastic Copyright Dec2009 DE30.Z,M15: uninit reason 1
14:35:05 GA_MTF MAs 1 V1.4 DE30.Z,M15: удалено
14:35:05 GA_MTF MAs 2 V1.4 DE30.Z,M15: удалено
14:35:05 GA_Pivot Points DE30.Z,M15: удалено
14:35:05 $CH_Stochastic Copyright Dec2009 DE30.Z,M15: удален

 
mt4forum:

start():

OK - это просто #define OK 0

OK

Лог-файл MT4 ничего не показывает. Print() не работает в таком случае, когда MT4 зависает, потому что файл журнала MT4 не промывается. Вот почему я использую свою собственную функцию журнала.

см. также

WHRoeder2013.11.14 19:27#

Куда/как вести логи? Вы НЕ можете использовать Print/Alert, потому что вы вешаете поток GUI, вывод не будет записан.
Print() будет работать до зависания. ... если вы остановите работу советников, нажмете кнопку EA, разве лог-файл не должен быть прошит? тогда вы сможете увидеть последнюю печать ... или измените ее на Comment() и очистите комментарий в конце start() с помощью Comment("");
 

Я запускаю программу как индикатор.

Чтобы остановить ее, я должен убить процесс терминала MT4.

Я вставил comment(), как вы посоветовали.

Комментарий не появляется на графике.

 
         if (TimeLocal() >= LastInitialGapCloseCheck + HistoryDownloadCheckInterval)                                  // zzz
Почему вы вызываете TimeLocal Это ваше машинное время (в вашей TZ,) не время вашего брокера, не время тестера. Попробуйте TimeCurrent() в обоих местах.
 

Я знаю, я использую ее только для проверки того, сколько времени прошло до того, как я снова выполню какую-то проверку.

В этом случае я могу использовать любую функцию времени, если я всегда использую одну и ту же.

Проблема не в этом.

Возможно ли, что я каким-то образом разрушаю стек вызовов функции start()?

 
mt4forum: В этом случае я могу использовать любую функцию времени, пока я всегда использую одну и ту же. Проблема не в этом.
Это проблема, если вы когда-нибудь захотите использовать тестер/оптимизатор.
 
mt4forum:

Я запускаю программу как индикатор.

Вы замедляете поток интерфейса ?
 
RaptorUK:
Вы замедляете поток интерфейса?

Что вы имеете в виду?

 
mt4forum:

Что вы имеете в виду?

В индикаторе вы не можете Sleep() вы не можете использовать MessageBox() или если ваш код просто долго зацикливается ... .

"Функция не может быть вызвана из пользовательских индикаторов, так как они выполняются внутри потока интерфейса и не могут замедлить его."
 

Нет, я не использую sleep() или messagebox(), но я делаю много работы в функции MyInit(), которая занимает около 5 секунд.

Вы можете увидеть это в лог-файле:

2013.11.15 14:35:32 Test reduced 1180990: USDJPY M15 DebugStart: InitialHistoryGapClosed
2013.11.15 14:35:32 Тест уменьшен 1180990: USDJPY M15 DebugMyInit begin: <---------- работа начинается
2013.11.15 14:35:32 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 1 nach CreateHistory()
2013.11.15 14:35:33 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 2 nach CreateHistory()
2013.11.15 14:35:34 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 3 nach CreateHistory()
2013.11.15 14:35:35 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 4 nach CreateHistory()
2013.11.15 14:35:35 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 5 nach CreateHistory()
2013.11.15 14:35:36 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 6 nach CreateHistory()
2013.11.15 14:35:37 Тест уменьшен 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 7 nach CreateHistory()
2013.11.15 14:35:37 Тест уменьшен 1180990: USDJPY M15 DebugMyInit return InitialMyInitCalls: 0 IndexCount: 8 <---------- работа завершена
2013.11.15 14:35:37 Тест уменьшен 1180990: USDJPY M15 DebugStart: последний возврат в InitialGapFound

Но почему после этого MT4 зацикливается?

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