[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 657

 
IgorM:

спс да оно - то что искал, ктонить замерял скорость однотипного кода для МТ4 и МТ5 ?

Я бы добавил. Больше всего интересует разница в скорости тестирования/оптимизации однотипных советников.
 
ToLik_SRGV:

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


Анатолий, большое спасибо, жаль здесь нельзя вставить иконку, как в Скайпе с поклоном. Всё просто и элегантно получилось. Из общения с другими программами тех. анализа, понимаю, что так и должно быть, но практики работы с mql пока не хватает. Спасибо за подсказку с выделением в метод - по разбираюсь.

На послед, не подскажите как избежать, множественного выставления ордеров на одном баре этим советником? Добрые люди уже давали подсказки, но надушу не легли.

 

 

 
granit77:
Я бы добавил. Больше всего интересует разница в скорости тестирования/оптимизации однотипных советников.


понимаете оптимизация МТ4 и МТ5 должна сильно отличаться хотя бы из-за того, что в МТ5 уже реализованная неполная проверка условий - для МТ4 чтобы достичь такого надо делать множество вложенных операторов if - а это уменьшает читабельность кода и приводит к логическим ошибкам
 
IgorM:


спс да оно - то что искал, ктонить замерял скорость однотипного кода для МТ4 и МТ5 ?


2010.06.29 16:29:56 Test_Speed EURUSD,M1: время 1641 мсек МТ-4

2010.06.29 16:28:56 Test_Speed (EURUSD,M1) время 359 мсек МТ-5

код вот этот переводить как видите не нужно всё подходит и для 5 и для 4

 int start_=GetTickCount();
 int d=0;
 for(int i=0;i<100000000;i++)d+=11;
 Print("время ",GetTickCount()-start_," мсек");

и это на элементарном сложении, представьте что там наворотили разработчики чтоб ускорить сложные функции.

 
Urain:

и это на элементарном сложении, представьте что там наворотили разработчики чтоб ускорить сложные функции.


будем надеяться что это так, в МТ4 обработка кода советника весьма похожа на яву - встроенные функции очень быстро выполняются, а вот пользовательские функции не так быстро, даже элементарные действия

в части оптимизации слишком смущает полная проверка условий - я о таком не слышал уже лет 20 - школьный Бейсик :)

 

Не могу найти мультивалютный индикатор, в котором есть GoldUSD. Ткните, плиз, ссылкой.

upg индексов который

 
IgorM:


поконкретнее сформулируйте вопрос

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


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

не подскажете как это реализовать в коде? 

 
zelek:


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

не подскажете как это реализовать в коде? 


я просто задачу не пойму, Вы открыли ордер и хотите записывать в массив данных текущие цены- зачем? есть бары они Вам и дадут цены и минимальные и максимальные, если писать цены по тикам, я даже не представляю сколько данных будет в массиве - тики от 20 до 80 шт/мин

или Вам надо цены при которых  открывались ордера? - есть возможность посмотреть закрытые и открытые ордера в терминале

 
IgorM:


я просто задачу не пойму, Вы открыли ордер и хотите записывать в массив данных текущие цены- зачем? есть бары они Вам и дадут цены и минимальные и максимальные, если писать цены по тикам, я даже не представляю сколько данных будет в массиве - тики от 20 до 80 шт/мин

или Вам надо цены при которых  открывались ордера? - есть возможность посмотреть закрытые и открытые ордера в терминале


я хочу реализовать нечто похожее на виртуальный трейлинг-стоп от одного пункта

для этого и надо на каждом новом тике знать максимальное значение 

 
zelek:


я хочу реализовать нечто похожее на виртуальный трейлинг-стоп от одного пункта

для этого и надо на каждом новом тике знать максимальное значение


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