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

 
ЗЫ - лот = 0 - вызовет ошибку при попытке выставить сделку...
 
Помогите пожалуйста разобраться. Стоит советник doubleminus_1(по коду чем-то напоминает Ilan 1.6 Pipstep). Недавно всё чаще случается так, что сделки открываются только в одну сторону, но через несколько часов снова всё становится нормально. Переодичность разная и от волатильности не зависит. Так как код советника слишком длинный, чтобы добавить его сюда, прикрепляю сам файл советника.

	          
Файлы:
 
ierehon:
Помогите пожалуйста разобраться. Стоит советник doubleminus_1(по коду чем-то напоминает Ilan 1.6 Pipstep). Недавно всё чаще случается так, что сделки открываются только в одну сторону, но через несколько часов снова всё становится нормально. Переодичность разная и от волатильности не зависит. Так как код советника слишком длинный, чтобы добавить его сюда, прикрепляю сам файл советника.

Это - нонсенс. Попробуйте его поюзать на другом ДЦ. Например, этом - пашет согласно алгоритму без вопросов.
 
Roman.:

Это - нонсенс. Попробуйте его поюзать на другом ДЦ. Например, этом - пашет согласно алгоритму без вопросов.
Я сам не понимаю почему так происходит, тем не менее это факт. Так работает то он прекрасно, просто у него случаются такие периоды, когда он открывает сделки только в одну сторону. По наблюдениям это случается после резкого роста или падения без серьёзных коррекций. Единственное, что приходит в голову, что это может быть связано с RSI, но как именно не знаю.
 
ierehon:
Я сам не понимаю почему так происходит, тем не менее это факт. Так работает то он прекрасно, просто у него случаются такие периоды, когда он открывает сделки только в одну сторону. По наблюдениям это случается после резкого роста или падения без серьёзных коррекций. Единственное, что приходит в голову, что это может быть связано с RSI, но как именно не знаю.
Как так? Изучите внимательно сигнальную часть эксперта... Там входы осуществляются при пересечении индиком РСИ определённых уровней. Всё работает верно, если не сможете разобраться, так что не парьтесь попусту...
 
Roman.:
Как так? Изучите внимательно сигнальную часть эксперта... Там входы осуществляются при пересечении индиком РСИ определённых уровней. Всё работает верно, если не сможете разобраться, так что не парьтесь попусту...
Тогда что это может быть? Ограничений по времени нет, ограничений на количество ордеров тоже нет (стоит более 1000)...
 
ierehon:
Тогда что это может быть? Ограничений по времени нет, ограничений на количество ордеров тоже нет (стоит более 1000)...

НЕ пришло время выполнения (сработки) сигналов на вход (усреднение) в рынкет. Ожидайте...
 
SkinnerDE:

Всем привет. Помогите пожалуйста найти ошибку в коде, сил уже нет - ничего не могу сделать.

Вероятнее всего в последней части.


ObjectSetText

в самом верху к чему относиццо? Уберите.

 

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

Но после получения новой котировки значение резко меняется.

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

extern int History=1000;
extern int D1_Period=21;
//+------------------------------------------------------------------+
double Buf_0[];
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer(0, Buf_0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
   int Counted_Bars, i, n, count=0;
   double L_High, L_Low, L_Range, Sum=0, range;
//+------------------------------------------------------------------+
   Counted_Bars=IndicatorCounted();
   i=Bars-Counted_Bars-1;
   if(i>History-1)
      i=History-1;
   while(i>=0)
    {
     for(n=i;n<=D1_Period+i;n++)
      {
        L_High=iHigh(NULL,PERIOD_D1,n);
        L_Low =iLow(NULL,PERIOD_D1,n);
        L_Range=(L_High-L_Low)/Point;
        Sum=Sum+L_Range;
        count++;         
      }
     range=MathRound(Sum/count);
     Buf_0[i]=range; 
     i--;
    }   
   return(0);
  }
//+------------------------------------------------------------------+
В чем заключается причина?
 
silhouette:

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

Но после получения новой котировки значение резко меняется.

В чем заключается причина?


Проблема в этом цикле

     for(n=i;n<=D1_Period+i;n++)
      {
        L_High=iHigh(NULL,PERIOD_D1,n);
        L_Low =iLow(NULL,PERIOD_D1,n);
        L_Range=(L_High-L_Low)/Point;
        Sum=Sum+L_Range;
        count++;         
      }
Причина обращения: