Скачать MetaTrader 5

Фрактальная размерность

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
uranmaximum
14
uranmaximum  

Как вытащить из ФРАМЫ размерность? То есть так, чтобы это был отдельный индикатор. Сама формула размерности следующая (картинка) Тут А3 - это период размерности (например 16 - то есть 16 значение котировок), А1 - первая половина ряда котировок, то есть первые 8 значений, А2 - вторые 8 значений котировок. Формулу самой фрамы

//+------------------------------------------------------------------+
//| FRAMA.mq4 |
//| Rosh |
//| http://www.alpari-idc.ru/ru/experts/articles/ |
//+------------------------------------------------------------------+
#property copyright "Rosh"
#property link "http://www.alpari-idc.ru/ru/experts/articles/"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 DarkBlue
//---- input parameters
extern int PeriodFRAMA=10;
extern int PriceType=0;
//PRICE_CLOSE 0 Цена закрытия
//PRICE_OPEN 1 Цена открытия
//PRICE_HIGH 2 Максимальная цена
//PRICE_LOW 3 Минимальная цена
//PRICE_MEDIAN 4 Средняя цена, (high+low)/2
//PRICE_TYPICAL 5 Типичная цена, (high+low+close)/3
//PRICE_WEIGHTED 6 Взвешенная цена закрытия, (high+low+close+close)/4

//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| возвращает цену |
//+------------------------------------------------------------------+
double Price(int shift)
{
//----
double res;
//----
switch (PriceType)
{
case PRICE_OPEN: res=Open[shift]; break;
case PRICE_HIGH: res=High[shift]; break;
case PRICE_LOW: res=Low[shift]; break;
case PRICE_MEDIAN: res=(High[shift]+Low[shift])/2.0; break;
case PRICE_TYPICAL: res=(High[shift]+Low[shift]+Close[shift])/3.0; break;
case PRICE_WEIGHTED: res=(High[shift]+Low[shift]+2*Close[shift])/4.0; break;
default: res=Close[shift];break;
}
return(res);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double Hi1,Lo1,Hi2,Lo2,Hi3,Lo3;
double N1,N2,N3,D;
double ALFA;
int limit;
int counted_bars=IndicatorCounted();
if (counted_bars==0) limit=Bars-2*PeriodFRAMA;
if (counted_bars>0) limit=Bars-counted_bars;
limit--;

//----
for (int i=limit;i>=0;i--)
{
Hi1=High[iHighest(Symbol(),0,MODE_HIGH,PeriodFRAMA,i)];
Lo1=Low[iLowest(Symbol(),0,MODE_LOW,PeriodFRAMA,i)];
Hi2=High[iHighest(Symbol(),0,MODE_HIGH,PeriodFRAMA,i+PeriodFRAMA)];
Lo2=Low[iLowest(Symbol(),0,MODE_LOW,PeriodFRAMA,i+PeriodFRAMA)];
Hi3=High[iHighest(Symbol(),0,MODE_HIGH,2*PeriodFRAMA,i)];
Lo3=Low[iLowest(Symbol(),0,MODE_LOW,2*PeriodFRAMA,i)];
N1=(Hi1-Lo1)/PeriodFRAMA;
N2=(Hi2-Lo2)/PeriodFRAMA;
N3=(Hi3-Lo3)/(2.0*PeriodFRAMA);
D=(MathLog(N1+N2)-MathLog(N3))/MathLog(2.0);
ALFA=MathExp(-4.6*(D-1.0));
ExtMapBuffer1[i]=ALFA*Price(i)+(1-ALFA)*ExtMapBuffer1[i+1];
}
//----
return(0);
}
//+------------------------------------------------------------------+
Sceptic Philozoff
Модератор
17844
Sceptic Philozoff  

uranmaximum, научитесь вставлять код по-человечески.

Можно нажать Ctrl-Alt-M, а можно просто кнопочку SRC над окном редактирования сообщения.

uranmaximum
14
uranmaximum  
Mathemat:

uranmaximum, научитесь вставлять код по-человечески.

Можно нажать Ctrl-Alt-M, а можно просто кнопочку SRC над окном редактирования сообщения.


Для меня это лишние затраты времени
Алексей Тарабанов
7328
Алексей Тарабанов  
uranmaximum:

Для меня это лишние затраты времени
Совсем нема колы?
Sceptic Philozoff
Модератор
17844
Sceptic Philozoff  
uranmaximum: Для меня это лишние затраты времени

На картинку-то времени не жалко было. Ну и разбирайся сам, бизнесмен...

uranmaximum
14
uranmaximum  
Вчера разобрался) Только вот прикольно, программисты все такие выпендрежники? В интете на форумах больше всего пальцы гнут именно программисты, даже если спрашиваешь простейшие вещи) Пару лет назад спрашивал на одном из форумов, как котировки в ексель конвертировать, чтоб можно было рассчитывать их, там дискуссия на два дня развелась, включая предложения по созданию специальных программ за деньги. Оказалось, что надо было три кнопки нажать, как и предполагалось. Незаменимых, товарищи, нет)
Алексей Тарабанов
7328
Алексей Тарабанов  
uranmaximum:
Вчера разобрался) Только вот прикольно, программисты все такие выпендрежники? В интете на форумах больше всего пальцы гнут именно программисты, даже если спрашиваешь простейшие вещи) Пару лет назад спрашивал на одном из форумов, как котировки в ексель конвертировать, чтоб можно было рассчитывать их, там дискуссия на два дня развелась, включая предложения по созданию специальных программ за деньги. Оказалось, что надо было три кнопки нажать, как и предполагалось. Незаменимых, товарищи, нет)
Mathemat,- Вы - Программист?
Sceptic Philozoff
Модератор
17844
Sceptic Philozoff  
Ну в языке разбираюсь, но не настолько круто, как местные заслуженные кодеры.
Dmitry Fedoseev
44505
Dmitry Fedoseev  
uranmaximum:
Вчера разобрался) Только вот прикольно, программисты все такие выпендрежники? В интете на форумах больше всего пальцы гнут именно программисты, даже если спрашиваешь простейшие вещи) Пару лет назад спрашивал на одном из форумов, как котировки в ексель конвертировать, чтоб можно было рассчитывать их, там дискуссия на два дня развелась, включая предложения по созданию специальных программ за деньги. Оказалось, что надо было три кнопки нажать, как и предполагалось. Незаменимых, товарищи, нет)


Есть большая разница в смысле слов "конвертировать" и "импортировать". Видимо, как был вопрос поставлен, такой и ответ был. Конвертировать какой-либо файл с данными в формат екселя (в настоящий экселевский, в тот который имеет расширение xls) это действительно задача не такая простая, в отличие от импортирования. Если вопрос был про импортирование, то это вопрос не для программистского форума, а для форума юзеров-ламеров. Поэтому подумайте лучше о себе хорошо.

"Может это ты о-я" © Mr. Freeman.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий