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

 
Techno:
надо другой способ найти анализа, графические функции очень медленные
Убрал всё, как ты сказал - скорость возросла на 60-70%, правда, теперь сложнее рассматривать, где какой ордер на графике. И ещё не применял совет Игоря с if.
 
volshebnik:
Убрал всё, как ты сказал - скорость возросла на 60-70%, правда, теперь сложнее рассматривать, где какой ордер на графике. И ещё не применял совет Игоря с if.
if большого быстродействия не даст, пара тактов только. Скажи конкретно что ты хочешь вывести на график, можно подумать как это сделать без потерь производительности
 
Techno:
if большого быстродействия не даст, пара тактов только. Скажи конкретно что ты хочешь вывести на график, можно подумать как это сделать без потерь производительности


if(NormalizeDouble(Bid,Digits)<=NormalizeDouble(ТЛ_ТPвниз[B],Digits)

? пара тактов? вопрос даже не в численном количестве, а в оптимизации вычислений - информация об полном расчете условий в mql4 есть - на форуме неоднократно писалось

, в mql5 уже реализовано сокращенный расчет условий

 
Techno:
if большого быстродействия не даст, пара тактов только. Скажи конкретно что ты хочешь вывести на график, можно подумать как это сделать без потерь производительности
В идеале мне нужны номера рыночных ордеров со знаками их отличия от других в момент их открытия. Я понимаю, что их можно поставить в реале, а при тестировании убрать. С ними просто удобнее и опять же - быстрее видеть, что правильно открылось, что - нет.
 
IgorM:


if(NormalizeDouble(Bid,Digits)<=NormalizeDouble(ТЛ_ТPвниз[B],Digits)

? пара тактов? вопрос даже не в численном количестве, а в оптимизации вычислений - информация об полном расчете условий в mql4 есть - на форуме неоднократно писалось

, в mql5 уже реализовано сокращенный расчет условий

да это, понятно, но по приоритету надо решить сначала что мешает эксперту тестироваться..
 
Techno:
да это, понятно, но по приоритету надо решить сначала что мешает эксперту тестироваться..


ну а если по приоритету, то достаточно сделать копию эксперта - в копии удалить все Comment(), Print() и графику, и все в тестер на оптимизацию, найдя приблизительные параметры, начинаем по годам тестить, а потом собираем финальный вариант с графикой

я так делал 

 
Доброе время суток! Все не выходит определить время закрытия последнего ордера относительно текущего бара.Суть в том, что необходимо запретить советнику совершать сделку если в течение текущего бара была закрыта позиция. А то в некоторых случаях открывает новый ордер сразу после стоп-лосса. Вот код который использую, но видать не то. Заранее благодарен.
for(int e1=1;e1<OrdersHistoryTotal();e1++)
   {
    if(OrderSelect(e1-1,SELECT_BY_POS,MODE_HISTORY)==true)
      {
         if(OrderSymbol()!=Symbol()){continue;}
         int Cl_time=OrderCloseTime();
         if(Cl_time>Time[0])
            {
              Trade=False; 
            }
            else
            {
             Trade=true;
            }
      }
   }
 
IgorM:


графика точно тормозит

и не забывайте в mql4 идет полный расчет условий в if(), т.е. если у Вас несколько && то будут расчитаны все значения и сравнены, хотя достаточно одного false, чтобы конструкция с && была false

можно разнести на несколько if()

в таком варианте после невыполнения первого if() вся конструкция ниже не будет рассматриваться

Игорь, благодарю! Здесь я что-то протормозил...((((( Не углядел за всем ( Ваш вариант дал прирост скорости 35 %. Итого вместе с "уборкой" графики и + if скорость увеличена почти в два раза - примерно на 125-130 % - это уже кое-что.
 
Почему скорость тестера падает к концу прохода третьего года ?
 
volshebnik:
Почему скорость тестера падает к концу прохода третьего года ?
перебор исторических ордеров есть?