Автор |
Сообщение |
Krechetov
Зарегистрирован: 05.08.2009
Сообщения: 76
|
Привет подскажите где косяк в простеньком переборе:
n=10;
t2=0;
t3=0;
while(N<100)
{
T1=C-Ref(C,-n);
T2=IIf(T1>T3,n,t2);
t3=t1;
n=n+1;}
почему значения T2 всегда от 90 до 100 хотя не должны быть такими ?
задача обнаружить n (период) соответствующий максимальному, минимальному значению T1 |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А почему собственно не должны?
Напиши подробнее что собственно хочешь.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Решил расписать как работает этот код
1. Берем n = 10
2. Строим моментум с периодом 10 (t1=C-Ref(C,-n)
3. В тех местах графика где этот моментум больше прошлого запоминаем n в остальных оставляем то, что было.(t2=IIf(t1>t3,n,t2)
4. Запоминаем моментум в массив t3 (t3=t1;)
берем n = 11
..... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Krechetov
Зарегистрирован: 05.08.2009
Сообщения: 76
|
000 писал(а): |
А почему собственно не должны?
Напиши подробнее что собственно хочешь.... |
ну потому что если смотреть в ручную то там совсем другие цифры выдаются
есть T1 это например C-ref(C,-n)
нужно сделав цикл while выдать такое n при котором значение T1 будет наименьшим или наибольшим....
давно в разных ситуациях сталкиваюсь с этой ерундой и что то никак не пойму где косяк.... если делать так как привёл выше результаты выдаються неправильные |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ты берешь кучу моментумов с периодом от 10 до 99
Очень мало шансов, что найдется такое место на графике где моментум с периодом например 20 будет больше чем все момментумы с периодом от 21 до 99 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Krechetov
Зарегистрирован: 05.08.2009
Сообщения: 76
|
000 писал(а): |
Ты берешь кучу моментумов с периодом от 10 до 99
Очень мало шансов, что найдется такое место на графике где моментум с периодом например 20 будет больше чем все момментумы с периодом от 21 до 99 |
ну в данном случае это разница двух цен.... Цены настоящей C и цены прошлой ref(C,-n) отстоящей на n периодов....
ну не реально чтобы эти значения были всегда от 90 до 100... а в том варианте который я привёл выдаётся именно так....
кроме того простым перебором понятно что иногда значения должны быть другие. Т.е. косяк в коде....
А вот в чём понять никак не могу..... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Krechetov
Зарегистрирован: 05.08.2009
Сообщения: 76
|
Зы.... Хорошо бы какой нить работающий код |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Krechetov
Зарегистрирован: 05.08.2009
Сообщения: 76
|
сейчас вот смотрю... подставить в код ma(c,n)... и всё прекрасно работает от 10 до 100. подставляю моментум этот и выдаётся ерунда в диапазоне 90-100.... для меня фантастика и слом мозга |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. Действительно косяк какой то...
Постараюсь разобраться... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Уф. Ну заморочил ты меня.
Вроде вот правильно.
Код: |
t2 = 10;
t3 = C-Ref(C, -10);
for(i = 10; i <= 100; i++)
{
t1 = C-Ref(C, -i);
t2 = IIf(t1 > t3, i, t2);
t3 = IIf(t1 > t3, t1, t3);
}
Plot(t2, "t2", colorRed);
|
А это для проверки
Код: |
for(i = 10; i < 100; i++)
{
t1 = C - Ref(C, -i);
Plot(t1, "t"+i, ColorHSB((i-10)*2, 255, 255));
}
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Krechetov
Зарегистрирован: 05.08.2009
Сообщения: 76
|
000 писал(а): |
Уф. Ну заморочил ты меня.
Вроде вот правильно.
Код: |
t2 = 10;
t3 = C-Ref(C, -10);
for(i = 10; i <= 100; i++)
{
t1 = C-Ref(C, -i);
t2 = IIf(t1 > t3, i, t2);
t3 = IIf(t1 > t3, t1, t3);
}
Plot(t2, "t2", colorRed);
|
А это для проверки
Код: |
for(i = 10; i < 100; i++)
{
t1 = C - Ref(C, -i);
Plot(t1, "t"+i, ColorHSB((i-10)*2, 255, 255));
}
|
|
Спасибо
зы.. а вроде такая простая задача, а так мозхг напрягает, щас этот вариант буду пробовать |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|