Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1428

 
ANDREY:

Общую идею понял...как мне кажется. Спасибо за подсказку. Если не сложно подскажите что означает знак доллара перед названием массива $ array[]  и перед  значением   $var

Мне почему то кажется, что это не из mql4.

да, это не из mql, но смысл в ресурсозатратности одинаков

 
Aleksei Stepanenko:
В Вашем случае, интересен ответ на главный вопрос: Почему необходимо делать сортировку каждую минуту? Как можно реализовать Вашу идею более экономичным способом?

Код который я запостил просто пример той проблемы которую я не мог решить. А в реальном коде сортировку нужно будет делать на каждом тике в столбце  размером от 20 до 30 элементов. У меня четырехядерный процессор и поэтому при тестировании я пока не ощущаю ни каких задержек. К тому же и реальный код не очень большой. Но я свой замысел еще не до конца представил себе в виде кода. Когда я его полностью закодирую, тогда уже буду думать как его усовершенствовать с точки зрения быстродействия. 

А правильно я понял, что в mql перебор допустим 1000 значений в цикле занимает меньше времени, чем сортировка 1000 элементов массива или какие то еще другие операции с массивами? Кстати , подскажите пожалуйста..... а вообще какие операции в mql4 занимают много времени?

Спасибо за помощь

 
Vitaly Muzichenko:

да, это не из mql, но смысл в ресурсозатратности одинаков

А какой это язык и правильно ли я понимаю что некоторые конструкции этого языка можно употреблять в mql? Думаю, что на будущее эта информация мне была бы полезна
Спасибо за помощь.

 
ANDREY:

А какой это язык и правильно ли я понимаю что некоторые конструкции этого языка можно употреблять в mql? Думаю, что на будущее эта информация мне была бы полезна
Спасибо за помощь.

Это php, но не думаю, что вам нужно в него смотреть, ответов по mql достаточно и на этом форуме.

 
Vitaly Muzichenko:

Это php, но не думаю, что вам нужно в него смотреть, ответов по mql достаточно и на этом форуме.

Понял. Спасибо.

 
ANDREY:

Понял. Спасибо.

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

Для этого достаточно только мониторить изменение ситуации и уже после этого делать тяжёлые расчёты, нежели их делать на каждом тике без нужды

 
Vitaly Muzichenko:

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

Для этого достаточно только мониторить изменение ситуации и уже после этого делать тяжёлые расчёты, нежели их делать на каждом тике без нужды

Логику я уже продумал и четко понимаю что хочу получить на выходе. Мql4 ( и немного  Мql5) уже начал понимать до такой степени, что многое (но не все) из того, что мне нужно из того  что написано в Справочнике понимаю самостоятельно. И главное - понимаю почти все ,  что мне объясняют на этом форуме .Сейчас я пытаюсь закодировать свой замысел. Но не как попало, а так что бы исполнение кода занимало минимум времени, потому что мне нужно будет тестировать его на многих инструментах и на больших временных периодах. Да и вообще .... мне нравится экономить  в принципе :-).  То есть сейчас я , во многом , методом проб и ошибок (опыт кодирования у меня очень маленький ) пытаюсь оптимальным образом  закодировать свой замысел и одновременно узнавать что то новое и полезное для будущих попыток. 

 
ANDREY:

Но не как попало, а так что бы исполнение кода занимало минимум времени

Так Вы скажите, для чего нужна сортировка, может идею другой реализации подкинем.

 
Aleksei Stepanenko:

Так Вы скажите, для чего нужна сортировка, может идею другой реализации подкинем.

Спасибо за помощь. Вы меня заинтриговали .....Думаю в течении 1-2 дней  довести до ума ( в других отношениях не касающихся сортировки) часть реального кода с сортировкой  и тогда выложу его здесь, что бы  узнать мнение профессионала в Вашем лице.

А еще у меня есть один вопрос по информации которую дал мне  Maxim Kuznetsov  вот в этом посте    Он , как мне кажется намного реже бывает здесь чем Вы, поэтому буду признателен если разъясните мне кое что по его коду

void Convert_7x2_2x7 (const double &src[7][2],double &dst[2][7]) {

   for(int i=0;i<7;i++)

   for(int j=0;j<2;j++) {

dst[j][i]=src[i][j];

   }

}

Я внимательно и долго его изучал и вот , что мне пришло в голову...

1.Это пользовательская функция

2.Обращение к ней в коде который выше нет. Оно подразумевается в основном коде в рамках void OnTick()

3.В этом коде меняются только индексы массива. А что происходит со значениями элементов массива я могу только догадываться.

Не пойму я вот что...

1.Если в результате окончательного исполнения этой функции  dst[j][i] получит новые значения индексов  dst[7][2], то зачем было для этого крутить циклы.? Разве нельзя было сразу и  явно присвоить  dst[j][i] эти значения индексов?

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

3. Буду признателен , если напишете как выглядит обращение к этой пользовательской функции.

Тема массивов для меня сравнительно новая и хоть эта информация не относится к моему текущему коду, уверен , что в будущем она будет мне полезна. А я по характеру очень люблю делать запасы на будущее. :-) 
Спасибо за помощь.

 

не, до профессионала далекооооо

double LoY[31][2], Mirror[2][31];

//вызывается так:
ConvertArray(LoY,Mirror);

//все значения строк из массива LoY запишутся в столбцы Mirror,
//условно сказать, массив повернётся
void ConvertArray(const double &src[31][2],double &dst[2][31])
   {
   for(int i=0; i<31; i++) for(int j=0; j<2; j++) dst[j][i]=src[i][j];
   }