Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 MFI Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Atlasraketa



Зарегистрирован: 12.07.2015
Сообщения: 133

СообщениеДобавлено: Сб Сен 12, 2015 6:07 pm Ответить с цитатой Вернуться к началу

Вот тестирую разные штуки Smile
Дошел до 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);



Не поможете? Rolling Eyes
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8493

СообщениеДобавлено: Сб Сен 12, 2015 7:25 pm Ответить с цитатой Вернуться к началу

Не совсем ответ. А почему это названо MFI ("Нидекс денежного потока")?
По расчету это голимый ROC. Так может просто взять его и не париться?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8493

СообщениеДобавлено: Сб Сен 12, 2015 7:34 pm Ответить с цитатой Вернуться к началу

И вот еще что.
MFI это встроенная в AFL функция. Для названия пользовательских функций это имя использовать нельзя

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Atlasraketa



Зарегистрирован: 12.07.2015
Сообщения: 133

СообщениеДобавлено: Сб Сен 12, 2015 8:06 pm Ответить с цитатой Вернуться к началу

Вот например когда я беру аналогично моментум, по такой формуле, оно работает. А mfi нет, значит чего-то не хватает в формуле.
Суть просто когда MFI с периодом меньшим пересекает больший лонг, и наоборот.
Посмотреть профиль Отправить личное сообщение
Atlasraketa



Зарегистрирован: 12.07.2015
Сообщения: 133

СообщениеДобавлено: Сб Сен 12, 2015 8:08 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Не совсем ответ. А почему это названо MFI ("Нидекс денежного потока")?
По расчету это голимый ROC. Так может просто взять его и не париться?


MFI вроде ВИльямс придумал, а ROC не знаю
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8493

СообщениеДобавлено: Сб Сен 12, 2015 10:07 pm Ответить с цитатой Вернуться к началу

Ну если тебе позарез надо именно так, то
Код:
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
Сообщения: 133

СообщениеДобавлено: Вс Сен 13, 2015 9:45 am Ответить с цитатой Вернуться к началу

Спасибо большое!!!
Посмотреть профиль Отправить личное сообщение
Marcello



Зарегистрирован: 30.05.2015
Сообщения: 58

СообщениеДобавлено: Пн Сен 14, 2015 10:50 am Ответить с цитатой Вернуться к началу

Если по задумке mf1opt - "короткий" период, а mf2opt - "длинный", то наверное в код стоит добавить строку
Код:
Exclude = mf1opt >= mf2opt;

для исключения "неправильных" сочетаний.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen