Индикаторы: Proper MA - страница 2

 

А кто мешает линейную аппроксимацию делать, или, что еще проще, рисовать секциями?
Тогда и ступенек не будет...

//+------------------------------------------------------------------+
//|                                                       SMA_TF.mq4 |
//|                                                    ПавелИванович |
//|                                              p231970@hotmail.com |
//+------------------------------------------------------------------+
#property copyright "ПавелИванович"
#property link      "p231970@hotmail.com"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern int       TF=60;
extern int       iPeriod=3;
extern int       Price=PRICE_CLOSE;
//---- buffers
double B1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
   SetIndexStyle(0,DRAW_SECTION);
   SetIndexBuffer(0,B1);
   SetIndexEmptyValue(0,0.0);
//----
   return(0);
}
int start()
{
   int pos = Bars-IndicatorCounted()-1;
   if(pos<(2*TF)) pos = 2*TF;
   for(int i=pos;i>=0;i--)
   {
      datetime dt = Time[i];
      pos = iBarShift(Symbol(),TF,Time[i]);
      MapPoint(i,pos);
   }
   return(0);
}
void MapPoint(int i, int pos)
{
   if(Time[i]==iTime(Symbol(),TF,pos)+60*(TF-Period()))
      B1[i]=iMA(Symbol(),TF,iPeriod,0,MODE_SMA,Price,pos);
   else
      B1[i] = 0;
}
 
api:

А кто мешает линейную аппроксимацию делать, или, что еще проще, рисовать секциями?
Тогда и ступенек не будет...

в вашем коде они останутся. только перестанут отображаться. А принцип не в убирании некрасивостей - а получении тех значений индюка, которые были на момент фиксации младшего ТФ на старшем.
 
sergeev:
А принцип не в убирании некрасивостей - а получении тех значений индюка, которые были на момент фиксации младшего ТФ на старшем.
Значит я не понял Вашей цели. Так и надо было эту фразу вставить в описание.
 

И, кстати, у Вас все равно ошибка в вычислениях. С кодом я толком не разбирался, но если все должно работать так, как Вы пишете, то ступенек зеленой линии не должно быть. А они есть... Возможно, iMAOnArray или iBarShift работают не так, как Вы от них ожидаете. Например, iMAOnArray возможно кеширует расчеты.

 
api:

И, кстати, у Вас все равно ошибка в вычислениях. С кодом я толком не разбирался, но если все должно работать так, как Вы пишете, то ступенек зеленой линии не должно быть. А они есть... Возможно, iMAOnArray или iBarShift работают не так, как Вы от них ожидаете. Например, iMAOnArray возможно кеширует расчеты.


нет. с этим я тоже разбирался. Все дело в том, что эксперт ведь тоже по барам идёт. И каждая ступенька зеленой линии - это просто подвигание вычисления по барам старшего ТФ. (так же как и в красной линии). Но как с этим боротся - я не придумал. Если будут мысли, напишите.
 

Подскажите, а где взять индикатор который именно порожками рисует?

и можно ли получать значение такого индикатора(с порожками) функцией iMA  ?  пока слаб м программировании.. ((

 
Kabachkov:

Подскажите, а где взять индикатор который именно порожками рисует?

и можно ли получать значение такого индикатора(с порожками) функцией iMA ? пока слаб м программировании.. ((


iMA вполне подойдет для вашей задачи. указывайте требуемый таймфрейм в эту функцию.