Discussion of article "Statistical Distributions in MQL5 - taking the best of R" - page 2

 
Реter Konow:

Why is it that when we get the desired innovations they are constantly criticised?

If a language is criticised, it means it is alive.

In fact, it is a great happiness for developers when there is criticism and discussions afterwards. Only from traders from this site we receive more than 3000 tickets to Service Desk every month. This is 100 requests every day, including weekends. And this does not include discussions in the forum.

 
Renat Fatkhullin:

If a language is criticised, it means it is alive.

In fact, it is a great happiness for developers when there is criticism and discussions afterwards. Only from traders from this site we receive more than 3000 tickets to Service Desk every month. This is 100 requests every day, including weekends. And this does not include forum discussions.

To be honest, I never looked at it that way. It seemed to me that endless criticism and requests of users are a burden for developers. I myself never turned to the servicedeck, never asked for anything and never criticised, even when I lacked something. As it turned out, I did the right thing, as there were plenty of people asking for it without me.... But I learnt to adapt and use the possibilities of the language as efficiently as possible. Fortunately, the language was very suitable for solving my tasks. Sometimes I was just surprised by coincidences. For example, in the development of a programme I often needed different functions, but due to my poor knowledge of the language I didn't know if they existed at all, but every time I turned to the documentation and did a little digging I was convinced that the tools I needed were available in the language. Even the function returning the length of the text string, which is so necessary for the interface, was found by me at the time, and I was convinced that the language really tried. At the moment I have a lot of tasks, but before contacting the servicedeck, I use every opportunity to solve them myself. If there will be something where developers' help will be needed, then maybe someday I will apply....


P.S. Although, maybe this is the development process: criticism, complaints, requests, discussions.... Then it turns out that I don't participate in language development. More precisely, I participate, but in my own way. Like each of us.

 

It's certainly a lot of work. But I don't understand, why reinvent the wheel again and again? Similar and much more functional and, moreover, publicly available libraries are already available, and why overload MQL with functionality needed by, say, 5% of users? Isn't it easier to make an adapter to R itself, or rather, to call its functions? The computational capabilities of R, SciLab or MathLab cannot keep up with them anyway. To avoid accusations of bias, I don't plan to connect R to MT.

 
Yuriy Asaulenko:

It's certainly a lot of work. But I don't understand, why reinvent the wheel again and again? Similar and much more functional and, moreover, publicly available libraries are already available, and why overload MQL with functionality needed by, say, 5% of users? Isn't it easier to make an adapter to R itself, or rather, to call its functions? The computational capabilities of R, SciLab or MathLab cannot keep up with them anyway. In order not to be accused of bias, I don't plan to connect R to MT.

We are not overloading the language, but supplementing the standard library.

Mathematical libraries are added in MQL5 sources and are available in /Include/Math catalogues. Now there are 3 standard mathematical libraries: Alglib, Fuzzy and statistical functions as in R.


I have already explained the problem of using third-party systems in https://www.mql5.com/ru/forum/96176/page11#comment_2859489.

Используете ли вы CExpert при создании роботов?
Используете ли вы CExpert при создании роботов?
  • www.mql5.com
Да Нет, пишу класс робота с нуля Нет, у меня есть свой базовый класс робота Нет, я не использую ООП Хочу посмотреть результат...
 

In connection with Renat's words, please do not delete the post again.

Если язык критикуют, значит он живой.

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



I think it would be interesting in this case to make a poll among forum members - who uses what at the moment - standard libraries, third-party software - R, matlab, Python, as well as the number of projects on this or that solution in development or already available, does not use anything. And the second question is whether you (users) are going to use standard libraries, of course, in the context of matlab libraries.

In codebase I myself have encountered and used only one product that uses alglib, it is https://www.mql5.com/en/code/11859. For the sake of interest, I have now looked through the codebase on the topic of neural networks. All available examples do NOT use alglib or similar in-house libraries. And I found only one more code using alglib https://www.mql5.com/en/code/15865.

That's all, there is nothing else either on the market or in the codebase. Either people don't publish or don't use them. So maybe it's worth to conduct the most primitive marketing survey beforehand, so as not to waste resources on unnecessary things?

And another quote.

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

From the point of view of monetisation everything is clear. Using in-house libraries, products can be sold through the market, respectively, developers will have from this additional income. But, as I have already pointed out above, there are NO products now, from the word at all, using such things. So the expectation of strong monetisation of such an idea, I think, is exaggerated.

also in God knows what year such thoughts were expressed https://www.mql5.com/ru/forum/6505/page11#comment_195723.

Portfolio Modeller
Portfolio Modeller
  • votes: 44
  • 2014.09.24
  • //www.mql5.com/ru/users/transcendreamer">
  • www.mql5.com
Индикатор Portfolio Modeller позволяет моделировать оптимальный портфель из нескольких инструментов. Советник Portfolio Manager помогает реализовать торговые операции с портфелем. Индикатор Portfolio Multigraph дает возможность работать с несколькими портфелями.
 
ivanivan_11:

But, as I have already pointed out above, there are NO products now, from the word go, using such things. So the expectation of strong monetisation of such an idea, I think, is exaggerated.

Think about the fact that kodobase is a minuscule part of the created code visible to the public. That's why you can't draw conclusions from it.

In fact, a staggering number of developers in Asia (and other regions) program silently and don't show themselves in any way in our community. We know this from the number of launch editors around the world.

Our big challenge is to support and help grow this underwater asberg by trying to get members to publicly manifest themselves on forums, kodobase, marketplace, etc.


Do a survey of libraries and analysis packages in use - it will be interesting for everyone.

 

I don't understand something.

Let's take

2.17.1 MathProbabilityDensityBinomial

The function calculates the value of probability mass function of binomial distribution with parameters n and p for a random variable x. In case of error it returns NaN. An analogue of dbinom() in R.

double MathProbabilityDensityBinomial(
  const double   x,           // [in] Value of the random variable (integer)
  const double   n,           // [in] Distribution parameter (number of trials)
  const double   p,           // [in] Distribution parameter (probability of success for each trial)
  int            &error_code  // [out] Variable for error code 

);

It is claimed that this is an analogue of the function R, which is specified in the text.

What is the result of calling the specified function in MQL? A scalar? A vector?

Here is what we have in R

n <- 2000

>

> k <- seq(0, n, by = 20)

>

> dbinom(k, n, pi/10, log = TRUE)

[1] -754.219687 -660.247472 -592.126636 -534.532344 -483.881605

[6] -438.460449 -397.256529 -359.600217 -325.015561 -293.146935

[11] -263.718651 -236.510862 -211.344286 -188.070044 -166.562645

[16] -146.714976 -128.434635 -111.641185 -96.264050 -82.240889

[21] -69.516303 -58.040813 -47.770020 -38.663934 -30.686405

[26] -23.804662 -17.988917 -13.212041 -9.449276 -6.678001

[31] -4.877524 -4.028903 -4.114796 -5.119322 -7.027950

[36] -9.827392 -13.505519 -18.051278 -23.454625 -29.706468

[41] -36.798607 -44.723697 -53.475197 -63.047346 -73.435124

[46] -84.634231 -96.641063 -109.452696 -123.066869 -137.481976

[51] -152.697057 -168.711791 -185.526498 -203.142139 -221.560321

[56] -240.783304 -260.814011 -281.656048 -303.313714 -325.792028

[61] -349.096753 -373.234428 -398.212400 -424.038867 -450.722923

[66] -478.274610 -506.704982 -536.026169 -566.251458 -597.395380

[71] -629.473815 -662.504106 -696.505196 -731.497775 -767.504466

[76] -804.550025 -842.661583 -881.868927 -922.204828 -963.705435

[81] -1006.410740 -1050.365139 -1095.618115 -1142.225065 -1190.248330

[86] -1239.758485 -1290.835969 -1343.573182 -1398.077239 -1454.473630

[91] -1512.911233 -1573.569331 -1636.667772 -1702.482242 -1771.368369

[96] -1843.802104 -1920.453074 -2002.333627 -2091.157734 -2190.508385

[101] -2315.710414

> a<-dbinom(k, n, pi/10, log = TRUE)

> str(a)

num [1:101] -754 -660 -592 -535 -484 ...

I.e. calling the function in R yields a vector, which can be drawn using the universal plot method

> plot(a)


An analogue is declared.

Can it be shown that the result of application per µl will be the same with R?


 
СанСаныч Фоменко:

When you want to pick on someone, you start with wording.

You input a vector to R. And in MQL-version - a scalar.

It is easy to convert scalar->vector. If you like using R, use it!

There will be no standard MQL-R padding, get lost.

 
fxsaber:

When you want to pick on someone, you start with wording.

You input a vector to R. And in MQL-version - a scalar.

It is easy to convert scalar->vector. If you like using R, use it!

There will be no standard MQL-R gasket, please.

Did I address you?

Article under discussion....

 
СанСаныч Фоменко:

Did I address you?

Article under discussion....

There is an obvious picking on the wording "analogue".

In the article it is analogue, and a complete analogue at that. In R, almost everything goes through vectors. These are issues of concise syntax, for which, in particular, R is loved so much and deservedly.

And it has nothing to do with the article. It's pure nagging.