Автор |
Сообщение |
Mr. Foggs
Зарегистрирован: 03.07.2012
Сообщения: 5
|
Протестировал стратегию в Amibroker - пытаюсь перенести ее на другую систему (на C#), но, похоже в другой системе EMA считается иначе, ибо ничем другим несовпадение показателей свечей не могу объяснить на данном этапе.
Подскажите, по какой формуле в Amibroker считается EMA? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
per = 43; // Период
p = (Per+1)/2;
for( i = 1; i < BarCount; i++ )
{
if(i == 1)
MAE[i] = C[i];
else
{
MAE[i] = MAE[i-1]*(1 - 1/p) + C[i]*(1/p);
}
}
Plot(MAE, "", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Mr. Foggs
Зарегистрирован: 03.07.2012
Сообщения: 5
|
Спасибо. Как оказалось - в другой системе - так же. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
000 писал(а): |
Код: |
per = 43; // Период
p = (Per+1)/2;
for( i = 1; i < BarCount; i++ )
{
if(i == 1)
MAE[i] = C[i];
else
{
MAE[i] = MAE[i-1]*(1 - 1/p) + C[i]*(1/p);
}
}
Plot(MAE, "", colorRed);
|
|
Пожалуйста напишите формулу MACDи , в поиске не нашёл . |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
Aleksandr писал(а): |
000 писал(а): |
Код: |
per = 43; // Период
p = (Per+1)/2;
for( i = 1; i < BarCount; i++ )
{
if(i == 1)
MAE[i] = C[i];
else
{
MAE[i] = MAE[i-1]*(1 - 1/p) + C[i]*(1/p);
}
}
Plot(MAE, "", colorRed);
|
|
Пожалуйста напишите формулу MACDи , в поиске не нашёл . |
Вроде в стандартныъ формулах Амика он есть. Раздел Indicatros во вкладке Charts |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
Hokum писал(а): |
Aleksandr писал(а): |
000 писал(а): |
Код: |
per = 43; // Период
p = (Per+1)/2;
for( i = 1; i < BarCount; i++ )
{
if(i == 1)
MAE[i] = C[i];
else
{
MAE[i] = MAE[i-1]*(1 - 1/p) + C[i]*(1/p);
}
}
Plot(MAE, "", colorRed);
|
|
Пожалуйста напишите формулу MACDи , в поиске не нашёл . |
Вроде в стандартныъ формулах Амика он есть. Раздел Indicatros во вкладке Charts |
Мне нужна формула расчёта на AFL . |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Hokum
Зарегистрирован: 15.11.2013
Сообщения: 60
|
Код: |
_SECTION_BEGIN("MACD");
r1 = Param( "Fast avg", 12, 2, 200, 1 );
r2 = Param( "Slow avg", 26, 2, 200, 1 );
r3 = Param( "Signal avg", 9, 2, 200, 1 );
Plot( ml = MACD(r1, r2), StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorRed ), ParamStyle("MACD style") );
Plot( sl = Signal(r1,r2,r3), "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorBlue ), ParamStyle("Signal style") );
Plot( ml-sl, "MACD Histogram", ParamColor("Histogram color", colorDefault ), styleNoTitle | ParamStyle("Histogram style", styleHistogram | styleNoLabel, maskHistogram ) );
_SECTION_END();
|
ОНО? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
DMITRY
Зарегистрирован: 18.09.2009
Сообщения: 179
|
myMACD = EMA(C,9)*(EMA(C,12) - EMA(C,26));
srMACD = EMA(myMACD,9);
Plot(myMACD,"myMACD",colorRed,styleLine);
Plot(srMACD,"",colorBlue,styleLine);
Plot(myMACD-srMACD,"",colorYellow,styleHistogram); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
DMITRY писал(а): |
myMACD = EMA(C,9)*(EMA(C,12) - EMA(C,26));
srMACD = EMA(myMACD,9);
Plot(myMACD,"myMACD",colorRed,styleLine);
Plot(srMACD,"",colorBlue,styleLine);
Plot(myMACD-srMACD,"",colorYellow,styleHistogram); |
Ребята Спасибо Вам за ответы |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
Aleksandr писал(а): |
DMITRY писал(а): |
myMACD = EMA(C,9)*(EMA(C,12) - EMA(C,26));
srMACD = EMA(myMACD,9);
Plot(myMACD,"myMACD",colorRed,styleLine);
Plot(srMACD,"",colorBlue,styleLine);
Plot(myMACD-srMACD,"",colorYellow,styleHistogram); |
Ребята Спасибо Вам за ответы |
Вот в коде не пишется разность 12 и 26 периодной , а потом вычертить её |
|
|
Посмотреть профиль Отправить личное сообщение |
|
DMITRY
Зарегистрирован: 18.09.2009
Сообщения: 179
|
Код: |
per1 = 12; // Период
p = (Per1+1)/2;
for( i = 1; i < BarCount; i++ )
{
if(i == 1)
MAE1[i] = C[i];
else
{
MAE1[i] = MAE1[i-1]*(1 - 1/p) + C[i]*(1/p);
}
}
//Plot(MAE1, "MAE1", colorRed);
per2 = 26; // Период
p = (Per2+1)/2;
for( i = 1; i < BarCount; i++ )
{
if(i == 1)
MAE2[i] = C[i];
else
{
MAE2[i] = MAE2[i-1]*(1 - 1/p) + C[i]*(1/p);
}
}
//Plot(MAE2, "MAE2", colorBlue);
Plot(MAE1-MAE2,"",colorGreen,styleLine); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
А простую "MA" как рассчитать на AFL ? |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А зачем и чем не нравится встроенная функция MA(Array, Period)? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Для эксперимента. Встроенная функция - это чужая работа, работа - механизм которой нужно знать. |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
Period = 10;
MyMA = Sum(C, Period)/Period; |
Расчет простой МАшки прост как жопа. Какие там могут быть разночтения? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|