Errors, bugs, questions - page 578

 
Fia:

2) Is there a function in MQL5 to delete an element (one in the middle of the array) from a dynamic array i? If not, what is the best way to do it with the language?

There are no ready-made functions for this in the language, but the Standard Library contains Basic Object Class CArrayObj
 

Good afternoon

Please tell me how to interpret the balance/equity graph on this example


Why do the charts diverge immediately at one point and converge at different times(by the same level on "y"). It seems that at the time of opening the balance graph does not know that it will increase.

Or maybe I don't understand it.

Thanks.

 
papaklass:
Ok, your position is clear. Indeed, let's end on that note. Thanks for the time you spent answering my questions.

I will explain with a simple example.

One woman can have a baby in nine months. Nine women will not give birth to a single child in one month.

This is to the question about possibility to process several consecutive ticks in parallel in several threads. The point is that in most cases the result of processing one tick has a great impact on the result of processing the next tick. Roughly speaking, on 4 threads you can get 4 trade operations simultaneously instead of one on the first tick

 
olyakish:

Hello.

Please tell me how to interpret the balance/equity chart on this example


Why in one point the charts diverge at once, and converge at different times (at the same level of "y"). It seems that at the time of opening the balance graph does not know that it will increase.

Or maybe I don't understand something.

Thanks.


on the bar where the trade was opened the price went up and the trade went in the red, but did not close - a drawdown occurred, on the next bars it "moved to the right" and maybe on the last or next-to-last bar it went lower than the close price and therefore the equity became higher than the final result, on the last bar the trade was closed and the equity became equal to the balance

And you had two trades, one made a profit and the other closed with nil, but the equity was still oscillating.

 
Rosh:
There are no ready-made functions for this in the language, but the Standard Library has The CArrayObj object base class
Thanks for the answers!
 
Lazarev:

on the bar where the trade was opened the price went up and the trade went in the red, but did not close - a drawdown occurred, on the next bars it "moved to the right" and maybe on the last or next-to-last bar it went lower than the close price and that is why the equity became higher than the final result; on the last bar the trade was closed and the equity became equal to the balance

And you had two trades, one was profitable and the other was closed with zero equity which was still oscillating

>On the same bar where the trade was opened, the price went up and the trade went down but did not close - a drawdown occurred,

drawdown on Equity but not on balance. => balance should be on one line (do not change)

>You have two trades, one of which turned out to be a profit and the other closed with zero equity (however, the equity was still oscillating).

Actually this is one trade consisting of sell in (opening a sell position) and buy out(closing a sellposition )

 
papaklass:

2. You should stoop to my level and explain to me and others like me, without snobbishness, in language I can understand. Why in a tester, in a single run, can't you use all the power of the computer? I think parameterization of event handlers can also be referred to the same topic.

I just tried to explain it to you. You cannot process consecutive ticks in parallel, because the result of processing of one tick affects the processing of the next tick.

Where could parallel calculations be used in a tester? Only in calculation of indicators. While one tick is being processed, we calculate the indicator values for the next tick(s). We will die in synchronization and dispatching and we won't get any profit. We have spent (and still spend) a lot of time to increase the system performance, and we also considered this possibility.

Parameterisation of event handlers is a slightly different matter. And we haven't given up on parametrized events yet

 
Standard int type conversion functions to Example

doubleMathRound(
double value//rounded value
);

Returns double errors but the warnings are very annoying

possible loss of data due to type conversion Tester.mqh 192 20

0 error(s), 22 warning(s) 1 23

Is there any workaround method.

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
ivandurak:

Is there any method of bypassing the .spz

Give the types explicitly. Then there will be no warnings.

I.e.

int i = int(MathRound(5.5));
или
int i = (int)MathRound(5.5);
 

papaklass:

2. You should stoop to my level and explain to me and others like me, without snobbishness, in language I can understand. Why in a tester, in a single run, you can't use all the power of the computer? The parameterisation of event handlers, I think, can also be referred to the same topic.

1. Parametrization can be done. But it is expensive for developers and obviously not a priority.

2. You really can't implement threading in this orchestration. Not only it will be expensive for time and other resources, but in a form of a standard solution it will cause a lot of problems for most users (who obviously are not professional programmers).

You either need to change the architecture of the platform itself or create something very cumbersome and associated with additional resources and technologies.