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

 
Vinin:
Только не забывайте что в init() не всегда доступно рыночное окружение
Ты же знаешЬ, что на "хитрую з***" всегда есть решение - нужное значение достаётся через цикл.
 
TarasBY:
Ты же знаешЬ, что на "хитрую з***" всегда есть решение - нужное значение достаётся через цикл.

Для работы функции init() существуют временные ограничения
 

Добрый вечер.

Советник следит за несколькими парами в нескольких фреймах. Как сделать, чтобы он реагировал не только на тики пары/окна к которому прикреплен, а на тики во всех парах. Спасибо!

 int start()

      {       

      double MA50 [4][9];      

      double OBarHigh [4][9];

      double OBarLow [4][9];

      for (int t=0; t<=3; t++)      // timeframe

         {

         for (int p=0; p<=8; p++)   // pair 

           {

           MA50[t][p]=iMA(pair[p],tframe[t],50,0,MODE_EMA,PRICE_CLOSE,0);

           OBarHigh [t][p]=iHigh(pair[p],tframe[t],0);

           OBarLow [t][p]=iLow(pair[p],tframe[t],0);

 
imux:

Добрый вечер.

Советник следит за несколькими парами в нескольких фреймах. Как сделать, чтобы он реагировал не только на тики пары/окна к которому прикреплен, а на тики во всех парах. Спасибо!



Возможно поможет зацикленный советник
 
Vinin:

Для работы функции init() существуют временные ограничения
Я в советнике в init() достаю не меньше десятка значений из рыночного окружения. На начальном этапе иногда были проблемы - теперь всё работает. Это мой личный опыт - на правило я не претендую. ;)
 
silhouette:

Помогите, пожалуйста, правильно разобраться в проблеме поиска дивергенции на осциляторах. В данном случае пусть будет MACD. Набросал такой алгоритм:

1) Отсчитываем бары от начала и ищем пики на осциляторе:

 2) Создаем массивы, содержащие время пиков:

 и вносим в них значение MACD[i] при выполненном условии. При том, последний новый пик должен имеет индекс [n], а предпоследний [n+1];

3)  Рассмотрим дальнейшее решения в рамках ситуации (1):

 

Собственно проблема с пунктом 2: как правильно организовать такой массив, как в таймсерии, что бы при каждом новом пике значения сдвигались?  


Помогите пожалуйста!
 
paladin80:

Решил вот немного пошариться в вашем коде...


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

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

Теперь по делу:

if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {   if(OrderSymbol() != Symb) continue;
          if(OrderMagicNumber() != 777) continue;
          return;
      }
   }
}

 Действительно в таком виде осуществляется полный перебор ордеров, и дальнейший анализ идет по открытым ордерам.(здесь все понятно)

 

Symb=  Symbol();
...
Min_Lot= MarketInfo(Symbol(),MODE_MINLOT);
...
Steep=   MarketInfo(Symbol(),MODE_LOTSTEP);

 Эту часть кода тоже переделал, но участники форума пишут что функции init() не всегда доступно рыночное окружение, получается что значения

некоторых переменных может не  определиться, или я что-то не так понял?

Логика этой записи мне не понятна - (объясняю свое видение этого оператора)

while(true)
...

 У меня есть блок обработки ошибок. 

if (Fun_Error(GetLastError())==1)      // Обработка ошибок
continue;                              // Повторная попытка

В случае если ошибка является преодолимой, то выполняется повторная попытка проверки условий и открытия ордера.

А оператор while работает когда его значение равно true, т.е. получается что значение false он не принимает.

 

Ребята спасибо Вам за помощь. 

 
silhouette:

Помогите пожалуйста!


Почитай здесь: https://www.mql5.com/ru/articles/1357 Все просто и доступно

 
r772ra:


Почитай здесь: https://www.mql5.com/ru/articles/1357 Все просто и доступно

 

Благодарю!
 
Доброго времени суток! Помогите пожалуйста, не могу отладить эксперт ( открытие и закрытие ордеров не работают по критерию как положено (по пересечению стохастика каждый раз), открываются  по стохастику очень редко и я не могу понять почему((((  ), также все ордера закрываются только по стоплосу или тейкпрофиту (ошибка номера тикета,тоже не могу понять где ошибка).Спасибо за любые ответы: 
Файлы:
Причина обращения: