Помогите упаковать индикатор в советник!.. - страница 2

 

Я использую:

double s;

s=iStochastic(0,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
// значение основной линии для последнего бара на текущем графике и периоде.
// Используем баров для вычисления линий %K, %D и замедления
// соответственно: 5, 3 и 3. Метод усреднения: простое скользящее среднее.
// Используем цены: Low/High.

Я использую свой метод усреднения. Сил писать индикатор уже нет. А уж заменить функцию усреднения прямо в советнике у меня должно получиться. А получится -- краешком глаза дам и вам посмотреть! :) А любоваться на индикатор нет ни малейшего желания. Мне нужна функция, да и забыть всё это, как страшный сон!

 
Swetten писал (а) >>

Я использую:

double s;

s=iStochastic(0,0,5,3,3,MODE_SMA,0,MODE_MAIN,0);
// значение основной линии для последнего бара на текущем графике и периоде.
// Используем баров для вычисления линий %K, %D и замедления
// соответственно: 5, 3 и 3. Метод усреднения: простое скользящее среднее.
// Используем цены: Low/High.

Я использую свой метод усреднения. Сил писать индикатор уже нет. А уж заменить функцию усреднения прямо в советнике у меня должно получиться. А получится -- краешком глаза дам и вам посмотреть! :) А любоваться на индикатор нет ни малейшего желания. Мне нужна функция, да и забыть всё это, как страшный сон!

Т.е. я понимаю что нужна всего лишь функция которая будет выдавать значения стохастика с оригинальным усреднением в эксперте? Сейчас времени нет, но вечером попробую написать.

 
//+------------------------------------------------------------------+
//+ Функция Stochastic производит расчет значения основной линии     +
//+    параметры:                                                    +
//+    KPeriod  -  период для расчета                                +
//+    Nbar     -  номер бара на котором надо получить значение      +
//+------------------------------------------------------------------+
double Stochastic(int KPeriod, int Nbar) {
   int i;
   double value,min,max;
   
   min=Low[Nbar];
   max=High[Nbar];
   for(i=Nbar;i<Nbar+KPeriod;i++) {
      if(min>Low[i]) min=Low[i];
      if(max<High[i]) max=High[i];
   }
   if((max-min)!=0)
      value=100*(Close[Nbar]-min)/(max-min);
      else return(-1);
   return(value);
}
Вместо Low и High надо добавить Ваш оригинальный расчет.
 
Talex писал (а) >>
Вместо Low и High надо добавить Ваш оригинальный расчет.

Ах!!!

Спасибо вам огромное!!!

Теперь надо дождаться вечера...

:)

 
Talex писал (а) >>
Вместо Low и High надо добавить Ваш оригинальный расчет.

Чегой-то он не лезет... Кучу ошибок получила... В таком виде это классический "Стохастик", правильно?

 
Swetten писал (а) >>

В таком виде это классический "Стохастик", правильно?

Да.

 
Talex писал (а) >>

Да.

Полночи просидела...

Даже в чистом виде не лезет...

 
Swetten писал (а) >>

Полночи просидела...

Даже в чистом виде не лезет...

Сочувствую. Надо начинать изучать язык MQL4 или заказать у кого-нибудь, то что хотите.

Вот пример построения индикатора с помощью функции (верхний график) и с помощью стандартного индикатора.

Вот сам пример:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime

double Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
IndicatorBuffers(1);
   SetIndexBuffer(0,Buffer);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   for(int i=0;i<100;i++) {
      Buffer[i]=Stochastic(12,i);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+ Функция Stochastic производит расчет значения основной линии     +
//+    параметры:                                                    +
//+    KPeriod  -  период для расчета                                +
//+    Nbar     -  номер бара на котором надо получить значение      +
//+------------------------------------------------------------------+
double Stochastic(int KPeriod, int Nbar) {
   int i;
   double value,min,max;
   
   min=Low[Nbar];
   max=High[Nbar];
   for(i=Nbar;i<Nbar+KPeriod;i++) {
      if(min>Low[i]) min=Low[i];
      if(max<High[i]) max=High[i];
   }
   if((max-min)!=0)
      value=100*(Close[Nbar]-min)/(max-min);
      else return(-1);
   return(value);
}
 
Talex писал (а) >>

Сочувствую. Надо начинать изучать язык MQL4 или заказать у кого-нибудь, то что хотите.

Вот пример построения индикатора с помощью функции (верхний график) и с помощью стандартного индикатора.

Вот сам пример:

Готова вам заказать. Возьмётесь?

 
Swetten писал (а) >>

Готова вам заказать. Возьмётесь?

На заказ не пишу. Так что извиняйте.

Причина обращения: