Автор |
Сообщение |
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
Вот тестирую разные штуки
Дошел до MFI
не получается реализовать формулу.
Код: |
mf1opt=Optimize("MFI",4,1,30,1);
mf1=MFI(C,mf1opt);
mf2opt=Optimize("MFI",4,1,30,1);
mf2=MFI(C,mf2opt);
function mfi( array, period )
{
return (array - Ref( array, -period )) - 100;
}
Buy = Cross(mf1, mf2);
Sell = Cross(mf2, mf1);
Short = Sell;
Cover = Buy;
SetPositionSize(1, spsShares );
PlotShapes(Buy *shapeUpArrow, colorgreen, 0, L, Offset = -20);
PlotShapes(Sell *shapeHollowDownArrow, colorwhite, 0, H, Offset = -10);
PlotShapes(Short *shapeDownArrow, colorred, 0, H, Offset = -20);
PlotShapes(Cover *shapeHollowUpArrow, colorwhite, 0, L, Offset = -10);
|
Не поможете? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не совсем ответ. А почему это названо MFI ("Нидекс денежного потока")?
По расчету это голимый ROC. Так может просто взять его и не париться? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
И вот еще что.
MFI это встроенная в AFL функция. Для названия пользовательских функций это имя использовать нельзя |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
Вот например когда я беру аналогично моментум, по такой формуле, оно работает. А mfi нет, значит чего-то не хватает в формуле.
Суть просто когда MFI с периодом меньшим пересекает больший лонг, и наоборот. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
000 писал(а): |
Не совсем ответ. А почему это названо MFI ("Нидекс денежного потока")?
По расчету это голимый ROC. Так может просто взять его и не париться? |
MFI вроде ВИльямс придумал, а ROC не знаю |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну если тебе позарез надо именно так, то
Код: |
mf1opt=Optimize("MFI",4,1,30,1);
mf2opt=Optimize("MFI",10,1,30,1);
function mymfi( array, period )
{
return (array - Ref( array, -period )) - 100;
}
mf1=MyMFI(C,mf1opt);
mf2=MyMFI(C,mf2opt);
Buy = Cross(mf1, mf2);
Sell = Cross(mf2, mf1);
Short = Sell;
Cover = Buy;
SetPositionSize(1, spsShares );
Plot(C, "", colorBlack, styleCandle);
PlotShapes(Buy *shapeUpArrow, colorgreen, 0, L, Offset = -20);
PlotShapes(Sell *shapeHollowDownArrow, colorwhite, 0, H, Offset = -10);
PlotShapes(Short *shapeDownArrow, colorred, 0, H, Offset = -20);
PlotShapes(Cover *shapeHollowUpArrow, colorwhite, 0, L, Offset = -10); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
|
Посмотреть профиль Отправить личное сообщение |
|
Marcello
Зарегистрирован: 30.05.2015
Сообщения: 69
|
Если по задумке mf1opt - "короткий" период, а mf2opt - "длинный", то наверное в код стоит добавить строку
Код: |
Exclude = mf1opt >= mf2opt; |
для исключения "неправильных" сочетаний. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|