Мульти-ядерная оптимизация - страница 2

 
Alexander Nikolaev:

Можно ли пользоваться данной библиотекой, делая советники для маркета или фриланса?

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

 
Igor Makanu:

не правильно, библиотека одна MT4Orders.mqh, остальное примеры

-  скачайте библиотеку 

- напишите в своем коде в самом верху 

- enjoy it

ну ордера это одно, а как оно прочитает предопределенные таймсерии и прочие синтаксические штуки, свойственные только MQL4. Оно ведь не заработает.. Мне получается все равно нужно переписать код везде, кроме ордеров

 
Denis Glaz:

ну ордера это одно, а как оно прочитает предопределенные таймсерии и прочие синтаксические штуки, свойственные только MQL4. Оно ведь не заработает.. Мне получается все равно нужно переписать код везде, кроме ордеров

оно заработает

а переписать, по сути, придется High[1] на iHigh(NULL,0,1)

там пример как раз есть, но в целом работы по переписыванию даже "кода от  не пойми-кого" на 500-700 строк - в течении часа  я переписывал,

но при условии, что знаете "новый MQL4" - т.е. не тот, который по форумам с момента появления МТ4 - если не ошибаюсь, то интеграцию МТ4/МТ5 разработчики сделали года 4 назад, языки сейчас на 90-95% совместимы, за исключением ордерной системы

 
Igor Makanu:

оно заработает

а переписать, по сути, придется High[1] на iHigh(NULL,0,1)

там пример как раз есть, но в целом работы по переписыванию даже "кода от  не пойми-кого" на 500-700 строк в течении часа - я переписывал,

но при условии, что знаете "новый MQL4" - т.е. не тот, который по форумам с момента появления МТ4 - если не ошибаюсь, то интеграцию МТ4/МТ5 разработчики сделали года 4 назад, языки сейчас на 90-95% совместимы, за исключением ордерной системы

ну да.. у меня таймсерии, Bid, Ask, а еще численные представления таймфреймов переписать. Хотя признаю, с ордерами возни больше

 
Alexander Nikolaev:

Ну не знаю, пробовал писать на МТ5 - никому не нужны такие советники, покупок 0 и скачиваний мало, по сравнению с советниками для МТ4.

как говорил Грант Кардон, бизнес-тренер: "Почему я в снапчате, хоть мне и 60? Потому, что вы в снапчате. Я иду туда, где сидят мои клиенты!"

Alexander Nikolaev:
Почему нельзя сделать многопоточную оптимизацию в МТ4, в чём сложность? 

политика компании.
чтобы все переходили на мт5.

Alexander Nikolaev:

Кроме того, в коде советника, что в МТ4, что в МТ5 нельзя выполнение программы распараллелить на несколько потоков.

Хотя бы сделали еще один вариант цикла for

цикл for_multithread

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

Ведь циклы больше всего тормозят программы.


Правда не знаю, возможно ли это, я не знаком с написанием языков программирования.

 
Denis Glaz:

Bid, Ask

#ifdef __MQL5__
#define Ask SymbolInfoDouble(_Symbol,SYMBOL_ASK)
#define Bid SymbolInfoDouble(_Symbol,SYMBOL_BID)
#endif

UPD:

вот нашел и таймсерии в виде массивов под MQL5 https://www.mql5.com/ru/forum/318901/page6#comment_12626567 

но по моему проще и быстрее переписать ошибки компиляции под MQL5 руками, что касается таймсерий

 
Igor Makanu:
SymbolInfoDouble(_Symbol,SYMBOL_BID)

а здесь написано, что нужно так переписывать:
MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Bid=last_tick.bid;


и почему они не взяли ваш вариант?...

 
multiplicator:

а здесь написано, что нужно так переписывать:


и почему они не взяли ваш вариант?...

есть притча про пути разработчика неисповедимы... ну не доказывать же мне мою правоту? ))) - я выложил пример того, что проверил, и что работает в 99% случаев, 1% оставлю на отсутствие проверки результата SymbolInfoDouble()

цель же у ТС какая тестировать? или все таки уже в бой - торговать?   ;)  -  в тестере все будет работать как часы, да и на реале скорее всего если не нагружать терминал, что он будет тормозить, будет работать без проблем

ЗЫ: SymbolInfoTick() чуть медленнее  SymbolInfoDouble() - вчера проверил, ускорил еще на 10 секунд на 5000 проходов оптимизатора https://www.mql5.com/ru/forum/1111/page2589#comment_13478214

 
Vladimir Karputov:

Это нужно было делать лет пять назад. Кто опоздал - теперь да, так сказать очень сильно им нужно стараться :)

А еще, лет 10-15 назад надо было изучить МТ4, и тогда бы он не казался старым.

 
Denis Glaz:

И так собственно вопрос: есть ли способ как-то модифицировать тестер, чтобы он работал с несколькими ядрами? (как на МТ5). Может есть патчи, или можно как-то внедрить тестер МТ5 внутрь МТ4 терминала..

Запускайте параллельно несколько терминалов по числу ядер процессора и оптимизируйте с разбивкой по параметрам/датам/инструментам/советникам.

Лично я так только и оптимизирую на MT4.

Причина обращения: