Errors, bugs, questions - page 2339

 
pavlick_:

Compile fails, errors:
'a' - too complex, simplify the macro temp.mq5 24 10
's' - struct member undefined temp.mq5 24 10
...

I.e. the preprocessor seems to be trying to recursively expand a.m

Returning to the subject of backlighting

#define a       s.a

If .a is not highlighted - then the compiler does not consider it a macro. At the same time it is an error. It turns out highlighting by itself... and actual compilation by itself, while they should work in sync as in the following examples:

#define b       b.x

void OnStart()
{
        int b = 1;
#define b   b + 2
        Print( b ); //Error: 'b' - too complex, simplify the macro
}
This in itself is wrong (because in C++ it compiles without errors and result: 3), but at least it is synchronous (both illuminator and compiler are guided by the same logic)
 
fxsaber:

It doesn't work for me on real data either.

I created a test EA:

#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() does not work if you press "Start profiling on real data" button in MetaEditor, but it works if you press "Start/continue debugging on real data F5"

Nothing works at all in tester - can't stop program execution and exit to debugger, log:

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

First there was a run from the meta-editor via "Run profiling on real data" - I deleted the expert by hand, only then I got into the editor, then a run on F5 - here everything worked, but it is confusing that Print("count = ",count," , Ask = ",Ask); which after the breakpoint was executed
 
Igor Makanu:

created a test EA:

DebugBreak() does not work if you press "Start profiling on real data" button in MetaEditor, but it works if you press "Start/continue debugging on real data F5"

nothing works at all in tester - can't stop program execution and exit to debugger, log:

First there was a run from the meta-editor via "Run profiling on real data" - deleted the EA by hand, only then got into the editor, then a run on F5 - everything worked here

Thank you, it does work. Something frighteningly often started posting erroneous statements...

 
fxsaber:

Thank you, it really works. Something frighteningly common to post erroneous statements...

My grandfather always said: only he who does nothing is not wrong!

;)

my example was supposed to work like this, or rather it was intended to stop after 5 ticks:

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

log:

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

 

I need to test if the virtual trading environment synchroniser works correctly with the real one.

To do this, I need to run a test EA in the Visualizer and start interfering with it by hand - placing positions, deleting pending orders, etc.


It is clear that MT5 is absolutely not suitable for that due to several limitations (only buttons can be pressed and indicators cannot trade).

I am asking for an indicator (not an Expert Advisor or an EA that is not difficult to change into an indicator) for MT4 that can be put in the visualizer window and used to "mess around" by sending trade orders to the Tester by hand.


If you have such an EX4-indicator, please send it to me as a private message. The market has a lot of them, but they are all advisers.

SZY Looking for so, the indicator could not find, but found a bible. I will deal with it, thank you.

 
fxsaber:

I need to test if the virtual trading environment synchroniser works correctly with the real one.

To do this, I need to run a test EA in the Visualizer and start interfering with it by hand - placing positions, deleting pending orders, etc.


It is clear that MT5 is absolutely not suitable for that due to several limitations (only buttons can be pressed and indicators cannot trade).

I am asking for an indicator (not an Expert Advisor or an EA that is not difficult to change into an indicator) for MT4 that can be put in the visualizer window and used to "mess around" by sending trade orders to the Tester by hand.


If you have such an EX4-indicator, please send it to me as a private message. The market has a lot of them, but they are all advisers.

SZY Looking for so, the indicator could not find, but found a bible. I will look it up, thank you.

The use of trading functions in indicators is forbidden. That is, they cannot trade.

 
Andrey Barinov:

Indicators are not allowed to use trading functions. I.e. they cannot trade.

Even in MT4?

 
fxsaber:

Even in MT4?

Unfortunately in any indicator calling trading functions is forbidden.
Have you tried my library, what have you found?

 
Vladislav Andruschenko:
Unfortunately in any indicator the call of trading functions is not allowed.
Have you tried my library, what have you found?

I haven't looked into it yet. The variant with the library should work - I'll write the library in the Expert Advisor I'm going to mess with to have a panel for manual trading.


Is it possible to attach (run) an infinite trading script parallel to a test Expert Advisor in MT4 Visualizer?

 
fxsaber:

I haven't looked into it yet. The library option should work - I'll write a library into the EA I'll be messing with to have a panel for manual trading.

Okay. On occasion, I will update the biblah to the latest version.
Reason: