Используете ли вы стандартную библиотеку для торговых операций? - страница 4

 
mrProF:

Воспользоваться как? Где?

https://www.mql5.com/ru/code/1146
ALGLIB - библиотека численного анализа
ALGLIB - библиотека численного анализа
  • голосов: 33
  • 2012.10.12
  • Сергей Бочканов
  • www.mql5.com
Библиотека математических функций ALGLIB version 3.5.0, портированная на MQL5.
 

Ааа, и что если просто импортировать и совсем не использовать aglib, то все равно будет много весить?

Там структура скорее всего очень многоуровневая и недостижимого кода очень мало при использовании...

 
mrProF:
Ааа, и что если просто импортировать и совсем не использовать aglib, то все равно будет много весить?

Вот такая "программа" весит 961 кб

#include <Math\Alglib\alglib.mqh>
void OnStart()
{ 
}
 
Yurich:

Вот такая "программа" весит 961 кб

У нее есть особенность - класс CAlglib содержит дикое количество статически связанных функций, которые вызывают все 100% функций всей библиотеки:

//+------------------------------------------------------------------+
//| The main class, which includes functions for users               |
//+------------------------------------------------------------------+
class CAlglib
  {
public:
   //--- constructor, destructor
                     CAlglib(void);
                    ~CAlglib(void);
   //--- function of package alglibmisc
   //--- high quality random number generator
   static void       HQRndRandomize(CHighQualityRandStateShell &state);
   static void       HQRndSeed(const int s1,const int s2,CHighQualityRandStateShell &state);
   static double     HQRndUniformR(CHighQualityRandStateShell &state);
   static int        HQRndUniformI(CHighQualityRandStateShell &state,const int n);
   static double     HQRndNormal(CHighQualityRandStateShell &state);
   static void       HQRndUnit2(CHighQualityRandStateShell &state,double &x,double &y);
   static void       HQRndNormal2(CHighQualityRandStateShell &state,double &x1,double &x2);
   static double     HQRndExponential(CHighQualityRandStateShell &state,const double lambdav);
   //---
   ... тут толпа функций
  };


Но тут есть наша недоработка - мы статические функции считали неприкосновенными.

Проработаем этот случай, большое спасибо за указание на проблему.

 
sergeev:

вы только объявления классов показывайте, а весь функционал - в ex5.

два файла и продавайте - mqh (заголовки с описанием, взаимосвязями, наследованием),  ex5 - спрятанный имплемент.

https://www.mql5.com/ru/articles/362

Пока воздержусь - простой и изящный перенес С++ -> MQL5 проблематичен (отсутствует множественное наследование)

 
A100:

Пока воздержусь - простой и изящный перенес С++ -> MQL5 проблематичен (отсутствует множественное наследование)

я даже не догадывался, что речь про C++

поэтому тоже воздержусь от советов.

 
sergeev:

поэтому тоже воздержусь от советов.

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

MqlDateTime mdtIn;
...
MqlDateTime mdtOut = mdtIn;

//или

MqlDateTime mdtIn;
MqlDateTime mdtOut;
...
__Copy( mdtIn, mdtOut ); //хотя так наверное нельзя, если mdtIn/mdtOut приватные члены класса
 
A100:

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

1 сейчас можно.
2. когда она создавалась - не было возможности.
3. возможно нужно не все поля копировать.
 
sergeev:
1 сейчас можно.
с MqlTradeResult не так всё просто https://www.mql5.com/ru/forum/1111/page893#comment_369451
 

копирование структур работает.

а с такими проблемами не ко мне, а в СД,

в структуре string   - это нельзя