Navigation:Home > Content >

Lagrange.mq4

Time: 2014-02-05 | Download file:Lagrange.mq4

//+------------------------------------------------------------------+
//|                                         		      siLagrange.mq4 |
//|                                 Copyright © 2007 Сергеев Алексей |
//|                                                los@we.kherson.ua |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Сергеев Алексей "
#property link      "mailto: los@we.kherson.ua"
//----
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 SkyBlue
#property indicator_color2 Crimson
#property indicator_color3 Crimson
//----
extern int Pow=3;//Степень полинома Лагранжа. Желательно 3..8
extern int Depth=12;//минимальное расстояние между опорными точками
extern int Mode=MODE_HIGH;//MODE_HIGH, MODE_LOW, MODE_CLOSE
extern int TimeFrame=0;
extern int Shift=10;//На сколько баров продлеваем в будущее
//----
double Lx[];//Полином Лагранжа
double Lx0[];//Полином Лагранжа в будущее на shift баров
double Pnt[];//Индикатор опорных точек построения

int X[];//Номера баров по которым строится полином
double Y[];//Значения цены в точках (O, H, L или C)
double C[];//Коэффициенты полинома

int init()
{	
//---- indicator line
	SetIndexBuffer(0,Lx); SetIndexStyle(0,DRAW_LINE);
	SetIndexBuffer(1,Lx0); SetIndexStyle(1,DRAW_LINE); SetIndexShift(1, Shift); 
	SetIndexBuffer(2,Pnt); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2, 159);

	ArrayResize(X, Pow); ArrayResize(Y, Pow); ArrayResize(C, Pow);

	return(0);
}

void FindPoint()
{
	int pos, pos2, pos_prev = -1;
	if (Depth<=0) Depth=2;
	int i=Depth;
	int n=0;//счетчик точек (до Pow)
	while((i=21) Pow = 20;//проверка корректности

	//0. Определяем таблицу значений X и Y для построения полинома 
	FindPoint();
	//
	Lagrange();
	//----
	return(0);
}
//+------------------------------------------------------------------+

Recommend