|
AmiSite.ru
Форум по Ами |
Автор |
Сообщение |
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Наткнулся тут на один интересный индикатор. Написан он под МТ4. Вот описание: http://codebase.mql4.com/ru/7553
Вот код (МТ4):
Код: |
//+------------------------------------------------------------------+
//| Asymmetry.mq4 |
//| Fedor Igumnov |
//| igumnovfedor@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Fedor Igumnov"
#property link "igumnovfedor@yandex.ru"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
extern int AsPeriod=30;
//--- buffers
double Asymmetry[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicators
IndicatorBuffers(1);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Asymmetry);
short_name="Asym("+AsPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,AsPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int i,k;
double M,D,MD,stdDev=0;
double r1;
//---
if (Bars<AsPeriod)
return (0);
counted_bars=IndicatorCounted();
M=0;
D=0;
MD=0;
r1=0;
stdDev=0;
k=Bars-AsPeriod-1;
if(counted_bars>=AsPeriod)
k=Bars-counted_bars-1;
while(k>=0)
{
for (i=AsPeriod;i>=0;i--)
{
M+=iRSI(Symbol(),0,AsPeriod,PRICE_CLOSE,k+i);
}
M=M/(AsPeriod+2);
for (i=AsPeriod;i>=0;i--)
{
D+=(iRSI(Symbol(),0,AsPeriod,PRICE_CLOSE,k+i)-M)*(iRSI(Symbol(),0,AsPeriod,PRICE_CLOSE,k+i)-M);
}
D=D/(AsPeriod+2);
stdDev=MathSqrt(D);
for (i=AsPeriod;i>=0;i--)
{
MD+=(iRSI(Symbol(),0,AsPeriod,PRICE_CLOSE,k+i)-D)*(iRSI(Symbol(),0,AsPeriod,PRICE_CLOSE,k+i)-D);
}
MD=MD/(AsPeriod+2);
Asymmetry[k]=MathAbs(MD/(D*stdDev*10000));
k--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
|
Возьмется ли кто переписать его под Ами?
Заранее благодарю. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Читать код MQL я не умею, а описание там какое то мутное. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
Это индикатор SKEWNESS (коэффициент асиметрии), довольно интересная штука, работает как индикатор тренда.
Вот тут его описание
http://matlab.exponenta.ru/statist/book2/8/skewness.php
может тут понятнее |
_________________ Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает. |
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
| |