Ошибки, баги, вопросы - страница 2339

 
pavlick_:

Скомпилировать не удаётся, ошибки:
   'a' - too complex, simplify the macro    temp.mq5    24    10
   's' - struct member undefined    temp.mq5    24    10
   ...

Т.е. препроцессор,  видимо, пытается рекурсивно раскрыть a.М

Возвращаюсь к теме подсветки

#define a       s.a

Если                              .a не подсвечивается - значит компилятор не считает её макросом. В тоже время ошибка. Получается подсветка сама по себе... а фактическая компиляция сама по себе, при том что они должны работать синхронно в паре как в следующих примерах:

#define b       b.x

void OnStart()
{
        int b = 1;
#define b   b + 2
        Print( b ); //Error: 'b' - too complex, simplify the macro
}
Сама по себе такая работа неправильная (потому что в C++ компилируется без ошибок и результат: 3), но по крайней мере синхронная (и подсветка и компилятор руководствуются единой логикой)
 
fxsaber:

У меня и на реальных данных не работает.

создал тестового эксперта:

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
input int BreakTick = 5;
int OnInit()
  {
   count = 0;
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
static int count = 0;
void OnTick()
  {
   if(count++>5) DebugBreak();
   Print("count = ",count," , Ask = ",Ask);
   
  }
//+------------------------------------------------------------------+

не работает останов по DebugBreak() если нажать кнопку в Метаэдиторе "Запуск профилирования на реальных данных", но работает останов если нажать "Начало/продолжение отладки на реальных данных F5"

в тестере вообще ничего ничего работает - невозможно остановить выполнение  программы и выйти в отладчик, лог:

2018.12.05 14:46:19.413 tst EURUSD,H1: count = 6 , Ask = 1.13397

2018.12.05 14:46:18.740 tst EURUSD,H1: count = 5 , Ask = 1.13396

2018.12.05 14:46:09.004 tst EURUSD,H1: count = 4 , Ask = 1.13396

2018.12.05 14:46:03.079 tst EURUSD,H1: count = 3 , Ask = 1.13395

2018.12.05 14:46:02.830 tst EURUSD,H1: count = 2 , Ask = 1.13395

2018.12.05 14:46:02.595 tst EURUSD,H1: count = 1 , Ask = 1.13394

2018.12.05 14:45:53.889 tst EURUSD,H1: initialized

2018.12.05 14:45:53.869 tst EURUSD,H1 inputs: BreakTick=5; 

2018.12.05 14:45:52.131 Expert tst EURUSD,H1: loaded successfully

2018.12.05 14:45:45.899 Expert tst EURUSD,H1: removed

2018.12.05 14:45:45.814 tst EURUSD,H1: uninit reason 1

2018.12.05 14:45:44.510 tst EURUSD,H1: count = 14 , Ask = 1.13393

2018.12.05 14:45:44.177 tst EURUSD,H1: count = 13 , Ask = 1.13392

2018.12.05 14:45:42.966 tst EURUSD,H1: count = 12 , Ask = 1.13393

2018.12.05 14:45:42.152 tst EURUSD,H1: count = 11 , Ask = 1.13393

2018.12.05 14:45:41.996 tst EURUSD,H1: count = 10 , Ask = 1.13392

2018.12.05 14:45:39.544 tst EURUSD,H1: count = 9 , Ask = 1.13393

2018.12.05 14:45:39.345 tst EURUSD,H1: count = 8 , Ask = 1.13392

2018.12.05 14:45:35.605 tst EURUSD,H1: count = 7 , Ask = 1.13394

2018.12.05 14:45:32.049 tst EURUSD,H1: count = 6 , Ask = 1.13394

2018.12.05 14:45:29.085 tst EURUSD,H1: count = 5 , Ask = 1.13393

2018.12.05 14:45:27.735 tst EURUSD,H1: count = 4 , Ask = 1.13393

2018.12.05 14:45:27.580 tst EURUSD,H1: count = 3 , Ask = 1.13393

2018.12.05 14:45:26.212 tst EURUSD,H1: count = 2 , Ask = 1.13393

2018.12.05 14:45:25.853 tst EURUSD,H1: count = 1 , Ask = 1.13392

2018.12.05 14:45:25.684 tst EURUSD,H1: initialized

2018.12.05 14:45:25.664 tst EURUSD,H1 inputs: BreakTick=5; 

2018.12.05 14:45:24.163 Expert tst EURUSD,H1: loaded successfully

сначала был запуск из метаэдитора через "Запуск профилирования на реальных данных" - удалил эксперта руками, лишь тогда попал в редактор, затем запуск по F5 -  тут все сработало, но смущает, что был выполнен Print("count = ",count," , Ask = ",Ask); который после точки останова
 
Igor Makanu:

создал тестового эксперта:

не работает останов по DebugBreak() если нажать кнопку в Метаэдиторе "Запуск профилирования на реальных данных", но работает останов если нажать "Начало/продолжение отладки на реальных данных F5"

в тестере вообще ничего ничего работает - невозможно остановить выполнение  программы и выйти в отладчик, лог:

сначала был запуск из метаэдитора через "Запуск профилирования на реальных данных" - удалил эксперта руками, лишь тогда попал в редактор, затем запуск по F5 -  тут все сработало

Спасибо, действительно, работает. Что-то пугающе часто стал публиковать ошибочные утверждения...

 
fxsaber:

Спасибо, действительно, работает. Что-то пугающе часто стал публиковать ошибочные утверждения...

дедушка мой всегда говорил: не ошибается лишь тот кто ничего не делает!

;)

мой пример вот так должен был работать, вернее задумывалось, что останов после 5-ти тиков:

void OnTick()
  {
   if(++count>5) DebugBreak();
   Print("count = ",count," , Ask = ",Ask);
  }

лог:

2018.12.05 15:27:06.815 tst EURUSD,H1: count = 5 , Ask = 1.13563

2018.12.05 15:27:06.488 tst EURUSD,H1: count = 4 , Ask = 1.13563

2018.12.05 15:27:05.469 tst EURUSD,H1: count = 3 , Ask = 1.13563

2018.12.05 15:27:04.795 tst EURUSD,H1: count = 2 , Ask = 1.13563

2018.12.05 15:27:04.288 tst EURUSD,H1: count = 1 , Ask = 1.13563

2018.12.05 15:27:03.057 tst EURUSD,H1: initialized

2018.12.05 15:27:03.024 tst EURUSD,H1 inputs: BreakTick=5; 

2018.12.05 15:27:01.376 Expert tst EURUSD,H1: loaded successfully

 

Мне нужно протестировать корректность работы синхронизатора виртуального торгового окружения с реальным.

Для этого нужно в Визуализаторе запустить тестовый советник и руками начать мешать ему - выставлять позиции, удалять отложки и т.д.


Понятно, что MT5 для этого не годится абсолютно сразу из-за нескольких ограничений (только кнопки нажимаются и индикаторы не могут торговать).

Прошу подсказать индикатор (не советник или советник, не сложно переделывающийся в индикатор) для MT4, который можно повесить на окно визуализатора и с помощью которого "пакостить", руками отправляя в Тестер торговые приказы.


ЗЫ Если у кого есть такой EX4-индикатор - просьба помочь в личку. В Маркете много подобного, но это все советники.

ЗЫЫ Искал так, индикатор найти не получилось, но нашел библу. Разберусь, спасибо.

 
fxsaber:

Мне нужно протестировать корректность работы синхронизатора виртуального торгового окружения с реальным.

Для этого нужно в Визуализаторе запустить тестовый советник и руками начать мешать ему - выставлять позиции, удалять отложки и т.д.


Понятно, что MT5 для этого не годится абсолютно сразу из-за нескольких ограничений (только кнопки нажимаются и индикаторы не могут торговать).

Прошу подсказать индикатор (не советник или советник, не сложно переделывающийся в индикатор) для MT4, который можно повесить на окно визуализатора и с помощью которого "пакостить", руками отправляя в Тестер торговые приказы.


ЗЫ Если у кого есть такой EX4-индикатор - просьба помочь в личку. В Маркете много подобного, но это все советники.

ЗЫЫ Искал так, индикатор найти не получилось, но нашел библу. Разберусь, спасибо.

В индикаторах запрещено использование торговых функций. Т.е. они не могут торговать.

 
Andrey Barinov:

В индикаторах запрещено использование торговых функций. Т.е. они не могут торговать.

Даже в MT4?

 
fxsaber:

Даже в MT4?

К сожалению в любом индикаторе вызов торговых функций запрещён. 
Вы пробовали мою библиотеку,  что нашли? 

 
Vladislav Andruschenko:
К сожалению в любом индикаторе вызов торговых функций запрещён. 
Вы пробовали мою библиотеку,  что нашли? 

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


Возможно ли в MT4-визуализаторе параллельно к тестовому советнику прикрутить (запустить) бесконечный торговый скрипт?

 
fxsaber:

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

Окей. По случаю обновляю библу до последней  версии. 
Причина обращения: