Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 603

 
001:

О дырах в истории, конечно же. И тебе тоже вопрос: как добиться качественной истории по инструменту?

На форуме исты есть инструкция. Автор, если правильно помню, Onna

Да так и есть. У меня в закладках сохранено, только не инста, а робо.

Правда как это будет сейчас с новым МТ не знаю, формат изменён.
 

По ходу работы советника встречается следующий эффект.

Открываю ордер по рынку. В рынке всегда только один ордер. Если профит выходит в плюс, должен тралиться СЛ.

Но в некоторых случаях на текущей свече трала не происходит. Но, как только открывается новая свеча, все прекрасно начинает работать (СЛ тралится).

При чем, это происходит не регулярно. Такое ощущение, что на текущей свече после открытия OrdersTotal() остается нулевым и поэтому при переборе не совершает никаких действий.

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

В чем может быть причина такого поведения?


Эффект встречался и на тестере, и на демо-счете тоже проявился.

Код стандартный. Билды: МетаЭдитор (версия 5.00) - 934, МетаТрейдер (версия 4.00) - 646.

   for(i= OrdersTotal()-1; i >=0; i--) 
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
       {
        if(OrderSymbol()==Symbol() && (Магик < 0 || OrderMagicNumber()==Магик))
         {
          Трал();
         }
       }
     }
 
Desead:

заглядывай не в будущее а в прошлое,сделай проверку на наличие дыры и всё.


А как открыть позу в 03:00 когда в терминале 04:00?
 
AlexeyVik:

На форуме исты есть инструкция. Автор, если правильно помню, Onna

Да так и есть. У меня в закладках сохранено, только не инста, а робо.

Правда как это будет сейчас с новым МТ не знаю, формат изменён.
Спасибо, почти то что хотел! К сожалению AllMinutes_Step1 не "залепил" дыры, предыдущими котировками, как я ожидал от него.
 
001:
Спасибо, почти то что хотел! К сожалению AllMinutes_Step1 не "залепил" дыры, предыдущими котировками, как я ожидал от него.

Я не пытался проделать всё что там описано, просто взял в конце готовую базу и прогнал советник. Я вообще почти не пользуюсь тестером, только для выявления ошибок в коде. Но учитывая изменения формата истории думаю надо переписывать те скрипты которые там есть с учётом этих изменений.
 
AlexeyVik:
Я не пытался проделать всё что там описано, просто взял в конце готовую базу и прогнал советник. Я вообще почти не пользуюсь тестером, только для выявления ошибок в коде. Но учитывая изменения формата истории думаю надо переписывать те скрипты которые там есть с учётом этих изменений.


Похоже придется переписывать. Или пользоваться старым терминалом+фаервол.
 
001:

Похоже придется переписывать. Или пользоваться старым терминалом+фаервол.
Фаер не поможет. Надо удалять файлы обновления. Путь к ним поищи по форуму.
 
AlexeyVik:
Фаер не поможет. Надо удалять файлы обновления. Путь к ним поищи по форуму.


Я имел ввиду терминал ТОЛЬКО для тестирования, т.е. не залогиненый+фаервол. Потому, что у меня даже незалогиненый сам взял и обновился.
 
001:

Я имел ввиду терминал ТОЛЬКО для тестирования, т.е. не залогиненый+фаервол. Потому, что у меня даже незалогиненый сам взял и обновился.

Вот для того чтобы не обновлялся и надо удалить файлы обновления. МТ не качает их каждый раз когда надо обновиться, они скачиваются и обновляются только один раз.
 

Народ подскажите плиз как правильно преобразовать double в int?

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

possible loss of data due to type conversion