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



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

СообщениеДобавлено: Пн Мар 10, 2014 6:46 pm Ответить с цитатой Вернуться к началу

написал индикатор под меньший ТФ, а он зараза отрисовывать не хочет на минутках. выдаёт значение null. не врублюсь, что забыл?

Код:

style = ParamStyle("Style", defaultval = styleLine, mask = maskAll ) ;
atrPeriod = 11;

SetForeign( "SPY", True, True );
TimeFrameSet( inDaily ); // change to daily timeframe
ATR_D = ATR( atrPeriod );
TimeFrameRestore(); // restore timeframe
ATR_Value = TimeFrameExpand( ATR_D, inDaily );
RestorePriceArrays(True);

Plot(  ATR_Value, "ATR", colorBlue, style );


спасибо


Последний раз редактировалось: MrDrJOKER (Пн Мар 10, 2014 9:34 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Пн Мар 10, 2014 8:48 pm Ответить с цитатой Вернуться к началу

MrDrJOKER писал(а):
не врублюсь, что забыл?

Количество баров для расчёта указать.

Код:
style = ParamStyle("Style", defaultval = styleLine, mask = maskAll ) ;
atrPeriod = 11;

SetBarsRequired( atrPeriod * inDaily/Interval() );    // вот это забыл

SetForeign( "SPY", True, True );
TimeFrameSet( inDaily ); // change to daily timeframe
ATR_D = ATR( atrPeriod );
TimeFrameRestore(); // restore timeframe
ATR_Value = TimeFrameExpand( ATR_D, inDaily );
RestorePriceArrays(True);

Plot(  ATR_Value, "ATR", colorBlue, style );
Посмотреть профиль Отправить личное сообщение ICQ Number
MrDrJOKER



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

СообщениеДобавлено: Пн Мар 10, 2014 9:57 pm Ответить с цитатой Вернуться к началу

Mechanic писал(а):

Количество баров для расчёта указать.

заработало, пасибА)

такой расчёт немного отличается от стандартного ATR на дневках.
я так прикинул, может быть причиной то, что в TimeFrameSet интервал задаётся через inDaily = 24 * 3600 (день), а баров в дне на моих данных несколько меньше чем 24 часа? из-за чего происходит частичное увеличение периода.

edit: у меня почти 16 часов данных в сутки. пресчитал вместо inDaily мои 16 часов, получилось: 16*60*60=57180. ATR на минутках изменился почти в 2 раза и стал, естественно, уже совсем не такой как на дневках. Rolling Eyes поигрался с числами, выходят другие совсем значения. после уплотнил график и стало видно, что ами всё таки отслеживает начало и конец дня, а не тупо считает бары.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Мар 10, 2014 10:20 pm Ответить с цитатой Вернуться к началу

Нет. Такой расчет не должен отличаться от расчета на дневках.
Функция TimeFrameSet() работает совершенно так, как если просто переключать фрейм на графике

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



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

СообщениеДобавлено: Пн Мар 10, 2014 10:26 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Нет. Такой расчет не должен отличаться от расчета на дневках.
Функция TimeFrameSet() работает совершенно так, как если просто переключать фрейм на графике


обнаружил, что когда сжимаю минутный график(бегунок внизу чарта сжимаю), то параллельно меняется величина расчитанного ATR. Rolling Eyes
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Мар 10, 2014 10:37 pm Ответить с цитатой Вернуться к началу

Попробуй убрать из кода функцию SetForeign(). И сразу увидишь, что все хорошо.

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



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

СообщениеДобавлено: Пн Мар 10, 2014 10:46 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Попробуй убрать из кода функцию SetForeign(). И сразу увидишь, что все хорошо.

да как-то не особо помогло.
что интересно, около открыл обычный ATR на минутном чарте и при сжатии/расжатии чарта он тоже меняет значения.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Мар 10, 2014 10:56 pm Ответить с цитатой Вернуться к началу

SetBarsRequired(sbrAll, sbrAll); вместо SetBarsRequired( atrPeriod * inDaily/Interval() );

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



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

СообщениеДобавлено: Пн Мар 10, 2014 11:03 pm Ответить с цитатой Вернуться к началу

000 писал(а):
SetBarsRequired(sbrAll, sbrAll); вместо SetBarsRequired( atrPeriod * inDaily/Interval() );


теперь значение такое же, что и на дневках. благодарю.
Посмотреть профиль Отправить личное сообщение
MrDrJOKER



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

СообщениеДобавлено: Пн Мар 10, 2014 11:26 pm Ответить с цитатой Вернуться к началу

ещё такую особенность обнаружил. ATR расчитаный моим индикатором и обычным ATR тоже немного отличаются на дневках. при чём только на последнем/актуальном баре. почему так? хотелось бы исправить.
Посмотреть профиль Отправить личное сообщение
fujis84



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

СообщениеДобавлено: Вт Мар 11, 2014 4:43 am Ответить с цитатой Вернуться к началу

MrDrJOKER писал(а):
ещё такую особенность обнаружил. ATR расчитаный моим индикатором и обычным ATR тоже немного отличаются на дневках. при чём только на последнем/актуальном баре. почему так? хотелось бы исправить.


ATR_Value = TimeFrameExpand (ATR_D, inDaily, expandfirst );
Посмотреть профиль Отправить личное сообщение
MrDrJOKER



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

СообщениеДобавлено: Вт Мар 11, 2014 12:44 pm Ответить с цитатой Вернуться к началу

fujis84 писал(а):
MrDrJOKER писал(а):
ещё такую особенность обнаружил. ATR расчитаный моим индикатором и обычным ATR тоже немного отличаются на дневках. при чём только на последнем/актуальном баре. почему так? хотелось бы исправить.


ATR_Value = TimeFrameExpand (ATR_D, inDaily, expandfirst );


спасибо. т.е. значит значение в тестере использовалось по умолчанию expandLast. думаю, целесообразнее было бы его и использовать.
Посмотреть профиль Отправить личное сообщение
AlexLan73



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

СообщениеДобавлено: Чт Мар 20, 2014 4:13 pm Ответить с цитатой Вернуться к началу

Подскажите пожалуйста.
Кто нибудь реализовывал данную функцию hhv( ARRAY, periods ) с переменным периодом? Если да, то можно пример.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Мар 20, 2014 8:27 pm Ответить с цитатой Вернуться к началу

Не понятно в чем проблема? HHV() прекрасно работает с переменным периодом.

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



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

СообщениеДобавлено: Чт Мар 20, 2014 9:41 pm Ответить с цитатой Вернуться к началу

Олег, спасибо за ответ. Все заработало.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen