Автор |
Сообщение |
roma095
Зарегистрирован: 02.02.2012
Сообщения: 170
|
У меня каждые 200 тиков рисуется свеча. Как определить сколько свечей появилось например за 3 минуты и как быстро появлялись свечи |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
На вскидку.
Берем TimeNum() бара. Отнимаем 3 минуты и ищем бар у которого TimeNum() меньше. Берем индекс этого бара и сравниваем с индексом исследуемого. Разница индексов и есть число баров нарисованное за 3 минуты. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
denis_
Зарегистрирован: 18.10.2011
Сообщения: 78
|
000 писал(а): |
На вскидку.
Берем TimeNum() бара. Отнимаем 3 минуты и ищем бар у которого TimeNum() меньше. Берем индекс этого бара и сравниваем с индексом исследуемого. Разница индексов и есть число баров нарисованное за 3 минуты. |
Добрый день!
Олег, если не затруднит,распиши пожалуйста формулами.Не могу сообразить. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не совсем так как писал, но принцип тот же
Код: |
CurMinute = Minute(); // минуты бара
Time = IIf((CurMinute - 3) < 0, CurMinute - 3 + 60, CurMinute - 3); // время 3 минуты назад
j = 0;
for(i = 30; i < BarCount; i++)
{
k = i;
do
{
k--;
j[i]++;
} while(CurMinute[k] > Time[i]);
}
Plot(j, "qqq", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот так правильнее
Код: |
CurTime = Minute()*100 + Second(); // минуты и секунды бара
Time = IIf((CurTime - 300) < 0, CurTime - 300 + 6000, CurTime - 300); // время 3 минуты назад
j = 0;
for(i = 30; i < BarCount; i++)
{
k = i;
do
{
k--;
j[i]++;
} while(CurTime[k] >= Time[i]);
}
Plot(j, "qqq", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
denis_
Зарегистрирован: 18.10.2011
Сообщения: 78
|
В таких циклах совсем не соображаю.
Ругается:Error 10. Subscript out of range. You must not access array elements outside 0..(BarCount-1) range.
Для чего умножать на 100. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот тут
Код: |
for(i = 30; i < BarCount; i++) |
вместо 30 поставь 50 или еще больше. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
denis_ писал(а): |
Для чего умножать на 100. |
Делается такое число типа 1244 = 12 минут 44 секунды. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
denis_
Зарегистрирован: 18.10.2011
Сообщения: 78
|
Правильно ли я понимаю.
Исходя из графика, двойка означает, что за три минуты появились две двухсот тиковые свечи. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
denis_
Зарегистрирован: 18.10.2011
Сообщения: 78
|
Тогда немного странно.Исходя из показателя данной формулы (см.скрин) за 3 минуты появилось 71 штука двухсот тиковых свечей. Но на графике невооруженным глазом видно, что их было несколько штук.
Если упростить , то необходим индикатор который бы показывал количество свечей в единицу времени. По сути получаем индикатор скорости. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это глюк какой то в индикаторе. В остальное время он показывает правильно. Я проверял и во время проверки к сожалению на такой глюк не нарвался. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вроде отловил
Код: |
CurTime = Minute()*100 + Second(); // минуты и секунды бара
Time = IIf((CurTime - 300) < 0, CurTime + 5700, CurTime - 300); // время 3 минуты назад
j = 0;
for(i = 3; i < BarCount; i++)
{
k = i;
do
{
k--;
j[i]++;
if(k < 2)
break;
if(Time[i] < 60 AND CurTime[k] > 100)
break;
} while(CurTime[k] >= Time[i]);
}
Plot(j, "qqq", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|