Есть ли словари/ассоциативные массивы в mql5? - страница 2

 
pronych:

Да уж, чётко сказано. Действительно, можно не задумываясь спокойно начинать каждую строчку с if

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

Роботам надо как можно более подробно объяснять о всех возможных реалиях этой жизни, а то начудить могут.
 
C-4:
Специально для Вас (как реализовать универсальную проверку перечислений подумайте сами):Но повторяю, проблему это не решает.

Как я и говорил - доработай напильником!

Но есть и плюсы: изобретая собственный велосипед - поднимаешь уровень своего мастерства.

 
 Fleder:
Роботам надо как можно более подробно объяснять о всех возможных реалиях этой жизни, а то начудить могут.

Дохеджировался ))

Надо быть осторожней с округлением объемов встречных/хедж/арбтражных позиций. А то может получится, что в попытке привести его в соответствие с основным объемом, робот начнет скакать вокруг дробной части.

когда встречный лот(кратный единице)  на 0.5 больше  ==>   sell  ==> на 0.5 меньше  ==> buy   ==> на 0.5 больше... и тд.

Имхо. Как вариант...  

 
pronych:

Дохеджировался ))

Надо быть осторожней с округлением объемов встречных/хедж/арбтражных позиций. А то может получится, что в попытке привести его в соответствие с основным объемом, робот начнет скакать вокруг дробной части.

когда встречный лот(кратный единице)  на 0.5 больше  ==>   sell  ==> на 0.5 меньше  ==> buy   ==> на 0.5 больше... и тд.

Имхо. Как вариант...  

Особенности биржевой торговли.

Была даже версия, что в логику робота не был заложен анализ того, как он сам своими большими объёмами может раскачивать рынок.

Не говоря уже про аварийную остановку торговли после получения больших убытков за малое время. 

 
pronych:
Потому что их нет. Делать надо.))

собрался с мыслями, накатил стакан, потом ещё один и сделал... Что получилось то получилось. Отправил на модерацию в Кодебазу. Ждите скоро будет.

CHashArrayStringString

 
micle:

собрался с мыслями, накатил стакан, потом ещё один и сделал... Что получилось то получилось. Отправил на модерацию в Кодебазу. Ждите скоро будет.

CHashArrayStringString

Крутяк! ))
 
pronych:
Крутяк! ))
Весь прикол в том, что изначально планировал сделать просто как пример реализации, не заморачиваясь особо над оптимизацией производительности и прочей около научной деятельностью. Пока модератор думает стоит ли ему посмотреть на код, я уже и производительность замерил и немного заточить успел )) похоже код до форума доедет раньше чем код базу попадёт )))
 
#include <HashArray.mqh>
void OnStart()
{
   CHashArrayStringString Hash();
   uint StartTime=GetTickCount();
   for(int n=0; n<10000; n++)
   {
      Hash["key"+IntegerToString(n)] = "trash";
   }
   uint timeTotal = GetTickCount() - StartTime;
   Alert("add 10k elements in ", IntegerToString(timeTotal), " ms");
}
add 10k elements in 31 ms



Вот. На затравку. )

 
micle:

собрался с мыслями, накатил стакан, потом ещё один и сделал... Что получилось то получилось. Отправил на модерацию в Кодебазу. Ждите скоро будет.

CHashArrayStringString

Случилось! Раньше я и не предполагал, насколько всё строго )) Отдельное спасибо Rosh за экспертные замечания по коду.
 
micle:
Случилось! Раньше я и не предполагал, насколько всё строго )) Отдельное спасибо Rosh за экспертные замечания по коду.
Уже успел глянуть код - спасибо за реализацию! Но хотелось бы расширить функционал. В первую очередь хотелось бы реализовать возможность хранения в словаре универсального объекта, а не только string. В принципе в словаре можно хранить любой объект, при условии, что у этого объекта будет уникальный идентификатор в качестве строки. Было бы еще круче, если бы можно было получить доступ к адресному пространству объекта. Получив набор байтов этого объекта без труда можно было бы на их основе создать уникальный хеш. Жаль в MQL5 подобные операции запрещены.
Причина обращения: