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



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

СообщениеДобавлено: Вс Мар 04, 2018 7:09 am Ответить с цитатой Вернуться к началу

привет
нужен коллективный разум.
нужно посчитать сумму Volume для каждого бара торговой сессии за 5 последних дней
Например - имеем 5мин бары и время 10-00 - и мне нужно знать сумму объемов которые были в 10-00 за 5 последних дней.
Первая мысль была просто написать Ref(v,-7Cool + Ref(v,-78*2)
но такой вариант не работает так как далеко не всегда есть 78 баров внутри дня (например, не было сделок на не очень ликвидном интсрументе)
Так же при таком подходе придется отключать премаркет, что не хотелось бы.
Вообщем нужно как-то обратиться к предыдущим ТОРГОВЫМ дням...а как я не могу придумать
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Мар 04, 2018 9:29 am Ответить с цитатой Вернуться к началу

Если за последние 5 дней бар 10:00 был только 4 раза то что делаем?

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



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

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

000 писал(а):
Если за последние 5 дней бар 10:00 был только 4 раза то что делаем?


тогда он = 0
например = 1200 + 3243 + 0 +3243 + 2353
Посмотреть профиль Отправить личное сообщение
max



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

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

[quote="max"]
000 писал(а):
Если за последние 5 дней бар 10:00 был только 4 раза то что делаем?


Ээх - похоже нет никаких идей Sad
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Идеи есть, времени не хватает.

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


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

СообщениеДобавлено: Чт Мар 08, 2018 1:34 pm Ответить с цитатой Вернуться к началу

Код:

TN = TimeNum();
D = Day() != Ref(Day(), -1);
DayBar = ValueWhen(D, BarIndex(), 1) - ValueWhen(D, BarIndex(), 2);
DayBar = Highest(DayBar);

mV = 0;
for(i = 1; i < 1+(5*LastValue(DayBar)); i++)//i < 1+(5*LastValue(DayBar)); i++)
{
   bV = IIf(TN == TN[i], V, 0);
   SumbV = Sum(bV, ceil(DayBar*5.5));
   SumbV = IIf(TN == TN[i], SumbV, 0);
   mV = Max(mV, SumbV);
}

Plot(mV, "DW", colorRed, styleArea);

Вроде правильно. Проверь...

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



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

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

Спасибо большое
Почти все правильно.
1. Складываются 6 дней, т.е последний тоже, но объем последнего дня должен делить сумму предыдущих. Я попробовал 1+(4*LastValue(DayBar)) но не сработало
2.Странно, но почему-то очень медленно все пересчитывается
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Мар 09, 2018 7:09 am Ответить с цитатой Вернуться к началу

max писал(а):
Спасибо большое
Почти все правильно.
1. Складываются 6 дней, т.е последний тоже, но объем последнего дня должен делить сумму предыдущих. Я попробовал 1+(4*LastValue(DayBar)) но не сработало

Не понял про последний день. Сколько дней будет складывать зависит от SumbV = Sum(bV, ceil(DayBar*5.5)); поставь 4.5 вместо 5.5. Но, последний день в любом случае будет считаться.

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



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

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

так в этом то и фишка, чтобы не считать последний день
задача понять на сколько % объем текущего бара больше чем средний объем баров в это же время впредыдущих 5 днях
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Перечитай свое первое сообщение. Где там про то, что последний день не считается?

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



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

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

000 писал(а):
Перечитай свое первое сообщение. Где там про то, что последний день не считается?


Да....Sad мой косяк...не корректно сформулировал с начала
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Вот. И получается, что придумываешь классный алгоритм и потом начинаешь лепить на него заплатки... И в итоге получается такое говно...

Ну ладно. Допустим. А что тебе мешает самому убрать последний бар? Всего делов то

mV = Max(mV, SumbV);
}
mV = mV - V;
Plot(mV, "DW", colorRed, styleArea);

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



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

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

Ух, наконец-то добрался до компа
Спасибо, подшаманил, теперь работает как нужно. Немного тормозит, но в целом ок, для тестов сойдет.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Вот тут
5*LastValue(DayBar)
можно уменьшить до 3 вместо 5. Полегче будет.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen