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



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

СообщениеДобавлено: Пт Дек 19, 2008 9:23 am Ответить с цитатой Вернуться к началу

Помогите решить проблему….
Загрузил историю за несколько месяцев в тестер. Построил графики - среднии. Планирую торговать в течение одного дня. Систему необходимо тестить на оном дне. Руками устанавливать (перебирать) по одному дню не удобно. Поэтому устанавливаю большой период (месяц, полгода).
Так вот, вопрос, как сделать чтобы график прерывался в конце дня и со следующего дня строился заново и не учитывал данные прошлого дня. (особенно это заметно если был скачек вверх или вниз при открытии следующего дня.)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Для начала надо написать код который будет определять начало дня. Это очень просто
Код:

NewDay = Day() != Ref(Day(), -1);
Plot(NewDay, "", colorRed);

Затем, для вычисления средней, необходимо узнать сколько баров прошло с начала дня.
Код:

NewDay = Day() != Ref(Day(), -1);
Bars = BarsSince(NewDay) + 1;
Plot(Bars, "", colorRed);

Некоторые функции индикаторов в Ами могут использовать переменный период. Одной из таких функций как раз является функция расчитывающая скользящую средную. Если число баров прошедшее с начала дня подставить в эту функцию, то получим средую которая начинает считаться с начала дня
Код:

NewDay = Day() != Ref(Day(), -1);
Bars = BarsSince(NewDay) + 1;
Mov = MA(C, Bars);
Plot(Mov, "", colorRed);

В таком случае получается, что в конце дня средняя имеет период равный числу баров которое прошло с начала дня. Возможно, в некоторых случаях, это будет слишком длинный мувинг. Можно сделать так, чтобы по достижению определенного периода длинна мувинга фиксировалась. Вот например код для максимального периода 20
Код:

NewDay = Day() != Ref(Day(), -1);
Bars = BarsSince(NewDay) + 1;
Bars = IIf(Bars > 20, 20, Bars);
Mov = MA(C, Bars);
Plot(Mov, "", colorRed);

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen