10$ за модернизацию индикатора - страница 6

 
Svinozavr >>:
Ну набросал я индикатор по SMA. Вообще-то, что весовая часть дробной части приходится на старший бар, логично. Отсчитываем-то назад, в историю.
Вот картинка. красный - SMA(4), синий - SMA(3.5), зеленый - SMA(4.5):

Индюк прикреплен, и вот код:

Здорово!
И не 200 строк кода...
;)

 
Кстати, понаблюдал за SMA с периодами 1.1, 1.2 и т.д. Забавно.
Короче, развлекуха тут получилась. Подобное не имеет - ИМХО - никакого практического применения, но в качестве актуализации оксюморона "простая скользячка с дробным периодом"))) сойдет. Есть в этом что-то от дзенских баек ("Хлопок одной ладонью" и пр.))))
===
Эту тему надо бы Алексею в ветку про задачки, не связанные с торговлей, засунуть изначально.)))
 
А ларчик просто открывался...
 
grell >>:
А ларчик просто открывался...

Да... не в этом дело. Просто мне, как челу сугубо практическому, в голову не приходило этот ларчик открывать. Своих ларчиков, я бы даже сказал, шкатулок (Пандоры))) хватает.
===
В базу, что ли, выложить? Или все же лучше не позориться с безделушками?)))

 
//+------------------------------------------------------------------+
//|                                                          kMa.mq4 |
//|                                                            Grell |
//|                                                dwgrell@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Grell"
#property link      "dwgrell@gmail.com"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Yellow
#property indicator_color3 Green
extern int    per1=3;
extern double perk=3.7;
extern int    per2=4;
double Buffer1[];
double Bufferk[];
double Buffer2[];
int init()
  {
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,Buffer1);
  SetIndexStyle(1,DRAW_LINE);
  SetIndexBuffer(1,Bufferk);
  SetIndexStyle(2,DRAW_LINE);
  SetIndexBuffer(2,Buffer2);
  return(0);
  }
int deinit()
  {
  return(0);
  }
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   double a1=perk-MathFloor(perk);
   double a2=MathCeil(perk)-perk;
   for(int i=0; i<limit; i++)
     {
     Buffer1[i]=iMA(NULL,0,per1,0,0,0,i);
     Buffer2[i]=iMA(NULL,0,per2,0,0,0,i);
     Bufferk[i]=a1*iMA(NULL,0,per2,0,0,0,i)+a2*iMA(NULL,0,per1,0,0,0,i);
     }
   return(0);
  }
//+------------------------------------------------------------------+
 
Голова работает, но не в том ключе.
 
grell >>:
Голова работает, но не в том ключе.

Тогда продолжим. ;)

Остались -

2. для линейно взвешенной
3. для экспоненциальной?
 
Садись "5" - подъеб защитан. Остался 4 вариант, но решается также как и предыдущие 2.
 
grell >>:
Садись "5" - подъеб защитан. Остался 4 вариант, но решается также как и предыдущие 2.
Линейная комбинация для экспоненты?
:о)
 
avatara >>:

Тогда продолжим. ;)

Остались -

А чего для экпоненциальной? Она и так изначально с "дробным" периодом, которого у нее, собственно, и нет - там только коэфф. обратной связи. Это в МТ так сделали, что EMA не дробная. А так она всегда имела дробный параметр. Пересчитывайте из дробного периода этот коэфф-т и все дела. k=2.0/(1+period);
Ну, а остальные из стандартных - элементарно уже делаются.

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