[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 172

 
100yan:
Просит целочисленное значение, но массив можно объявить и переменной?!

переменная знаешь что такое? это ячейка в памяти, с возможностью изменения. int это тип переменной

https://book.mql4.com/ru/basics/vars

https://book.mql4.com/ru/basics/types

 
Для тестирования торговой системы в МТ4 на исторических данных, необходимо загрузить архив котировок, выбираю интересующую валютную пару, выбираю все таймфрэймы в т.ч. и минутный, загружаю. При тестировании никаких рассогласований графика не возникает, но есть проблема, существенно влияющая на результаты тестирования и оптимизации. В котировках часто встречаются разрывы по времени, к примеру на графике H1, после свечки 7 мая 2010г, идет сразу свечка относящаяся к 8 июля 2010г. т.е. разрыв в 1 месяц. и такие разрывы встречаются регулярно. Повторное скачивание архива котировок ситуацию не исправляет. Места на жестком диске для скачивания котировок более чем достаточно.

Вопрос: как корректно закачать все котировки без временных разрывов в МТ4?
 
polsvv:

Подскажите, что значит такая вот хрень в логах? Как можно этого избежать? Эксперт торгует с помощью этого индюка, после ошибки торговля замирает пока не перезагрузишь терминал так как при перезагрузке эксперта может снова вылететь.

22:39:53 +ZigZag_Levels CLJ1,M5: uninit reason 3
22:39:53 Zigzag CLJ1,M5: uninit reason 1

22:39:53 Zigzag CLJ1,M5: removed

Может это из-за того, что я пользуюсь терминалом на удаленном серваке и у себя на компе одновременно?

https://docs.mql4.com/ru/constants/uninit проверьте причины деинициализации, судя по всему вы меняете период/символ графика с работающим экспертом, отсюда и вылеты.
 
wizmon:
Вопрос: как корректно закачать все котировки без временных разрывов в МТ4?

+ перед закачкой (если у вас есть такие дыры) то желательно удалить имеющуюся историю

+ поставить в настройках глубины истории хотя бы 10000000 баров

+ после закачки истории нужно нажать снова на кнопку "Загрузить" и подтвердить пересчет всех ТФ.

 
polsvv:

Эксперт торгует с помощью этого индюка, после ошибки торговля замирает

вероятно зацикленный код.
 
polsvv:

Подскажите, что значит такая вот хрень в логах? Как можно этого избежать? Эксперт торгует с помощью этого индюка, после ошибки торговля замирает пока не перезагрузишь терминал так как при перезагрузке эксперта может снова вылететь.

22:39:53 +ZigZag_Levels CLJ1,M5: uninit reason 3
22:39:53 Zigzag CLJ1,M5: uninit reason 1

22:39:53 Zigzag CLJ1,M5: removed

Может это из-за того, что я пользуюсь терминалом на удаленном серваке и у себя на компе одновременно?

Код не думаю, что зациклен. Что вообще значит uninit reason 1 или 3 ??? Есть расшифровка ?

2 дня эксперт торговал нормально.

Еще раз повторю вопрос про терминалы.

Если у меня на удаленном сервере стоит терминал(включенный) с экспертом, а я у себя на компе запускаю тот же терминал и занимаюсь на нем своими делами. Оптимизирую и пр. При чем на домашнем терминале эксперт не стоит в окне инструмента на котором ведется торговля так как он живет именно локально на машине(удаленной), а не на серваке брокера.

Так может давать сбои советника работа в одном терминале, который запущен 2 раза одновременно???

 
polsvv:

Код не думаю, что зациклен. Что вообще значит uninit reason 1 или 3 ??? Есть расшифровка ?

читайте мой ответ выше
 
polsvv:

Код не думаю, что зациклен. Что вообще значит uninit reason 1 или 3 ??? Есть расшифровка ?


REASON_REMOVE1Программа удалена с графика
REASON_CHARTCHANGE3Символ или период графика был изменен
 
alsu:
https://docs.mql4.com/ru/constants/uninit проверьте причины деинициализации, судя по всему вы меняете период/символ графика с работающим экспертом, отсюда и вылеты.
Да. Судя по всему именно из-за этого. Спасибо за подсказку!
 

Здравствуйте.

Разбираю и модифицирую индикатор Laguerre, только не очень получается. Прошу помочь с кодом.

В конце Laguerre начал свой код.

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
for(int a=0; a<Bars; a++ )
{if(LRSI[i]>0.45)
   LastLag++;
  
  }
 

Как я понял сама линия индикатор обозначатся как LRSI.

Так вот я не могу присвоить ей значение счётчика. Например Когда линия пресекает отметку 0.45 вверх, LastLag прибавляется на один.

Пока загвозтка только в присвоении значение счётчика. Всю идею могу написать позже. Спасибо.

Файлы:
laguerre.mq4  4 kb
Причина обращения: