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


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

СообщениеДобавлено: Пт Апр 30, 2010 11:32 am Ответить с цитатой Вернуться к началу

А что хочешь получить когда делаешь Ref() уже експанденому MID??? Это безсмысленное действие.

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



Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск

СообщениеДобавлено: Пт Апр 30, 2010 12:13 pm Ответить с цитатой Вернуться к началу

000 писал(а):
А что хочешь получить когда делаешь Ref() уже експанденому MID??? Это безсмысленное действие.

///Этого мне пока не понять... А хочу я простого:
Если написано:f=Ref(a,-2); - то теперь f равно значению переменной a, взятой 2 бара назад. и Наплевать какое оно там экспандерное или нет. Вопрос простой: а,-2 - это есть или нету? если фактически есть, то дайте... Ну это к разработчикам конечно...
Сегодня проверял разные варианты. Всплывают еще вопросы, например если мы обращаемся к прошлым значениям цены, то правльно будет писать вообще без экспанд ласт или ферст. а писать только индайли и все.
А вот если речь идет например о вычисленном значении, то уже надо писать экспандферст - для варианта настырного, когда ами обманывают вначале...
Вот это что????? - Разная логика при обращении к разным переменным.
Я еще не проверял составных условий, когда участвует и цена и вычисленное значение, например такое:f=O>ref(MID,-1); это для дней.
А теперь представь, сколько надо перебрать вариантов, чтобы найти правильный ответ (я уж забыл факториалы, но где то туда идет...
3шт для f -просто индайли/ферст/ласт
3шт для o -то же самое
6 шт для мид - учитывая (-1) и (-2)
я уже не пишу про возможность сделать мид не из чистых H,L,C, а из тех, что будут разжиматься сжиматься - ну и гет прайс еще отдельно...
Так как же правильно?
Какого ... чтобы написать h>ref(h,-1); надо разжать одним образом, а для того, чтобы написать:
H>ref(MID,-1); надо разжимать по другому.
Код внизу показывает правильно.
Если есть желание проверить то, что сказано вверху, надо убрать // от других вариантов, и заремить основной.
Чтобы показать все сразу - уже не хватает пространства на экране и букв в алфавите... Ну, 3 буквы еще остались, конечно...
Картинку не креплю, но есть, если надо.

////////////////Настырный 3+ SY
TimeFrameSet(inDaily);
MID=(C+H+L)/3;
R_HD_1 = H;
R_LD_1 = L;
R_MID_1 = Ref(MID,-1);
R_MID_2 = Ref(MID,-2);
TimeFrameRestore();
////строка ниже только, чтобы правильно отобразить
MIDD=TimeFrameExpand(MID,inDaily,expandFirst);
HD = TimeFrameGetPrice( "H", inDaily );
LD = TimeFrameGetPrice( "L", inDaily );

RHD1=TimeFrameExpand(R_HD_1,inDaily);
//RHD1F=TimeFrameExpand(R_HD_1,inDaily,expandFirst);
//RHD1L=TimeFrameExpand(R_HD_1,inDaily,expandLast);

RLD1=TimeFrameExpand(R_LD_1,inDaily);

RMID1=TimeFrameExpand(R_MID_1,inDaily);
RMID1F=TimeFrameExpand(R_MID_1,inDaily,expandFirst);
RMID1L=TimeFrameExpand(R_MID_1,inDaily,expandLast);

RMID2=TimeFrameExpand(R_MID_2,inDaily);
RMID2F=TimeFrameExpand(R_MID_2,inDaily,expandFirst);
RMID2L=TimeFrameExpand(R_MID_2,inDaily,expandLast);

//a=H>RMID1;
a=H>RMID1F;
//a=H>RMID1L;
//b=H>RMID2;
b=H>RMID2F;
//b=H>RMID2L;
d=H>RHD1;
//e=H>RHD1F;
//f=H>RHD1L;
PlotShapes(a*shapeSmallUpTriangle,colorBlue,0,L,10);
PlotShapes(b*shapeSmallUpTriangle,colorRed,0,L,-20);
PlotShapes(d*shapeSmallUpTriangle,colorGreen,0,L,-30);
//PlotShapes(e*shapeSmallUpTriangle,colorOrange,0,L,-40);
//PlotShapes(e*shapeSmallUpTriangle,colorBlue,0,L,-40);

Plot(MIDD,"MIDD",colorWhite,512,XShift = 1);
Plot(HD,"HD",colorBlue);
Plot(LD,"LD",colorRed);
Plot(RHD1,"RHD1",colorBlue,32);
Plot(RLD1,"RLD1",colorRed,32);

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пт Апр 30, 2010 7:38 pm Ответить с цитатой Вернуться к началу

настырный писал(а):
commenced писал(а):
Код:

SetBarsRequired(100000,0);

k = IIf(TimeNum() == 103000,1,0);


O1 = ValueWhen(k==1, O, n = 1);

for(i = 1; i < BarCount; i ++) 
{  if(k[i] == 1)     

Ц Ы К Л     
 




ЮРИЙ!!!!
БИЛИН!!!! Ну а цикл-то зачем?! пока что задачка простая, решаемая без циклов. Отобрать у вас мощные процессора, посадить за 486ой + 487 сопр. Посмотрел бы я на вас! Twisted Evil

to Sergiovy:
поэкспериментируй со значениями сдвигов в операторе Ref() в режиме дневок.

И, похоже, ошибка в следующем: не забывать разжимать данные после возвращения в интрадей. На сколько я понимаю Ами, то в интрадее не видны переменные, которые инициализировались на дневном таймфрейме.
Кроме того, в "староглиняные времена" существовало поверие, что нельзя называть переменные одинаково. Например:
MIDD=TimeFrameExpand(MIDD,inDaily);

Как сейчас не знаю. Но на всякий случай всегда переменные в дневном тайм фрейме я обозначаю иначе, чем в интрадее. Например:
MIDD=TimeFrameExpand(M_IDD,inDaily);


Да какой мощный проц, не смеши цикл прост и лишнего Г вроде нет. Хотя цикл можно заменить легко типа так

k = IIf(TimeNum() == 103000,1,0);
n=barssince(k==1);
h1=hhv(h,n);
l1=llv(l,n);

Но циклом сцука красивше Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

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

Sergiovy писал(а):
000 писал(а):
А что хочешь получить когда делаешь Ref() уже експанденому MID??? Это безсмысленное действие.

///Этого мне пока не понять... А хочу я простого:
Если написано:f=Ref(a,-2); - то теперь f равно значению переменной a, взятой 2 бара назад. и Наплевать какое оно там экспандерное или нет. Вопрос простой: а,-2 - это есть или нету? если фактически есть, то дайте... Ну это к разработчикам конечно...
Сегодня проверял разные варианты. Всплывают еще вопросы, например если мы обращаемся к прошлым значениям цены, то правльно будет писать вообще без экспанд ласт или ферст. а писать только индайли и все.
А вот если речь идет например о вычисленном значении, то уже надо писать экспандферст - для варианта настырного, когда ами обманывают вначале...
Вот это что????? - Разная логика при обращении к разным переменным.
Я еще не проверял составных условий, когда участвует и цена и вычисленное значение, например такое:f=O>ref(MID,-1); это для дней.
А теперь представь, сколько надо перебрать вариантов, чтобы найти правильный ответ (я уж забыл факториалы, но где то туда идет...
3шт для f -просто индайли/ферст/ласт
3шт для o -то же самое
6 шт для мид - учитывая (-1) и (-2)
я уже не пишу про возможность сделать мид не из чистых H,L,C, а из тех, что будут разжиматься сжиматься - ну и гет прайс еще отдельно...
Так как же правильно?
Какого ... чтобы написать h>ref(h,-1); надо разжать одним образом, а для того, чтобы написать:
H>ref(MID,-1); надо разжимать по другому.
Код внизу показывает правильно.
Если есть желание проверить то, что сказано вверху, надо убрать // от других вариантов, и заремить основной.
Чтобы показать все сразу - уже не хватает пространства на экране и букв в алфавите... Ну, 3 буквы еще остались, конечно...
Картинку не креплю, но есть, если надо.

////////////////Настырный 3+ SY
TimeFrameSet(inDaily);
MID=(C+H+L)/3;
R_HD_1 = H;
R_LD_1 = L;
R_MID_1 = Ref(MID,-1);
R_MID_2 = Ref(MID,-2);
TimeFrameRestore();
////строка ниже только, чтобы правильно отобразить
MIDD=TimeFrameExpand(MID,inDaily,expandFirst);
HD = TimeFrameGetPrice( "H", inDaily );
LD = TimeFrameGetPrice( "L", inDaily );

RHD1=TimeFrameExpand(R_HD_1,inDaily);
//RHD1F=TimeFrameExpand(R_HD_1,inDaily,expandFirst);
//RHD1L=TimeFrameExpand(R_HD_1,inDaily,expandLast);

RLD1=TimeFrameExpand(R_LD_1,inDaily);

RMID1=TimeFrameExpand(R_MID_1,inDaily);
RMID1F=TimeFrameExpand(R_MID_1,inDaily,expandFirst);
RMID1L=TimeFrameExpand(R_MID_1,inDaily,expandLast);

RMID2=TimeFrameExpand(R_MID_2,inDaily);
RMID2F=TimeFrameExpand(R_MID_2,inDaily,expandFirst);
RMID2L=TimeFrameExpand(R_MID_2,inDaily,expandLast);

//a=H>RMID1;
a=H>RMID1F;
//a=H>RMID1L;
//b=H>RMID2;
b=H>RMID2F;
//b=H>RMID2L;
d=H>RHD1;
//e=H>RHD1F;
//f=H>RHD1L;
PlotShapes(a*shapeSmallUpTriangle,colorBlue,0,L,10);
PlotShapes(b*shapeSmallUpTriangle,colorRed,0,L,-20);
PlotShapes(d*shapeSmallUpTriangle,colorGreen,0,L,-30);
//PlotShapes(e*shapeSmallUpTriangle,colorOrange,0,L,-40);
//PlotShapes(e*shapeSmallUpTriangle,colorBlue,0,L,-40);

Plot(MIDD,"MIDD",colorWhite,512,XShift = 1);
Plot(HD,"HD",colorBlue);
Plot(LD,"LD",colorRed);
Plot(RHD1,"RHD1",colorBlue,32);
Plot(RLD1,"RLD1",colorRed,32);
Попробуй график покрутить, у тебя линии текущие плывут, короче для прошлых дневок используй мой блок, для текущего можеш цикл можеш из предыдущего поста.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Sergiovy



Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск

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

[/quote] Попробуй график покрутить, у тебя линии текущие плывут, короче для прошлых дневок используй мой блок, для текущего можеш цикл можеш из предыдущего поста.[/quote]
Покрутил, но чего то не заметил проблем.
Но для стратегии мне нужно всего обращаться к прошлому дню и позапрошлому дню. Все.
Я выше писал, что думать об обращении к например реф,-4 как то совсем не хочется. Учитывая, что все по разному, да и сам реф, тоже то кажет то не имеет смысла, как говорит Олег...
На картинке белая линия - мид - а стрелочки: синяя - это превышение хая над вчерашним мид, красная, над позавчерашним, зеленая- над вчерашним хаем. Сам хай: синяя линия вверху без пунктира.
Вроде все работает, по кр мере в пределах этих 3-х дней:
Сегодня, вчера и позавчера...

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Обращаться к прошлому, позапрошлому и т.д. дням проще всего используя опцию shift функции TIMEFRAMEGETPRICE
Только надо иметь ввиду, придется завести несколько массивов каждый из которых будет соответствовать своему "сдвигу"
Типа так.
YesterdayClose = TIMEFRAMEGETPRICE( "C", inDaily, -1 );
BeforeYesterdayClose = TIMEFRAMEGETPRICE( "C", inDaily, -2 );
и т.п.
Писал по памяти, не проверая. Просто чтобы объяснить смысл.

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



Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск

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

000 писал(а):
Обращаться к прошлому, позапрошлому и т.д. дням проще всего используя опцию shift функции TIMEFRAMEGETPRICE
Только надо иметь ввиду, придется завести несколько массивов каждый из которых будет соответствовать своему "сдвигу"
Типа так.
YesterdayClose = TIMEFRAMEGETPRICE( "C", inDaily, -1 );
BeforeYesterdayClose = TIMEFRAMEGETPRICE( "C", inDaily, -2 );
и т.п.
Писал по памяти, не проверая. Просто чтобы объяснить смысл.

*******************************
Всех с прошедшими и наступающими!
Гет прайс не дает возможности обратиться к ЛЮБОЙ переменной, например мид или ххв итд.
Придумал тут составить табличку типа экселя: по горизонтали - возможные необходимые обращения, по вертикали - как это можно сделать в разных вариантах. Должно быть наглядо видно, что для производства однотипных действий надо использовать как минимум разные опции команд, а иногда и другие команды. Для того чтобы увидеть все это на реальном чарте - надо тоже "чуть чуть" подправить команду. Я уж не говорю про опции настроек базы, когда в зависимости от настроек интрадэй, то бар реплай не работает, то день начинается раньше на неск баров, то команды таймфреймххх делают чего то непотребное...
P.S. Чего то мало приводят примеров с Опен...
Можно ли получить из 5 мин графика сегодняшнее(текущее) открытие на днях? а также уже достигнутый ( но конечно не окончательный) Хай, лоу. ) Ну с клоуз слава богу все ясно - он совпадает с 5 мин.
Ведь на простом реальном дневном графике - все это есть. а вот из 5 мин? Пока использую тайм нун 103000 для опена, а также хайест синс и лоуест синс для текущего дневного хая и лоу. Но разве это не гемор??? Или можно с пом гетпрайс шифт0Smile
У меня не получилось Sad

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
Sergiovy



Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск

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

000 писал(а):
Обращаться к прошлому, позапрошлому и т.д. дням проще всего используя опцию shift функции TIMEFRAMEGETPRICE
Только надо иметь ввиду, придется завести несколько массивов каждый из которых будет соответствовать своему "сдвигу"
Типа так.
YesterdayClose = TIMEFRAMEGETPRICE( "C", inDaily, -1 );
BeforeYesterdayClose = TIMEFRAMEGETPRICE( "C", inDaily, -2 );
и т.п.
Писал по памяти, не проверая. Просто чтобы объяснить смысл.

***************************
Проверил с ценами Опен.
Действительно работает одинаково и для показа и для сравнения. (проверял до уровня реф -2.)
Недостатки: главный - это возможно только с ценами OHLCVOI,
действительно - надо заводить новые массивы для каждого необходимого реф, в т.ч. и для текущего (РАБОТАЕТ!)
Выглядит это так:
doD=TimeFrameGetPrice( "O", inDaily, shift=0,expandFirst);
R_DO_2=TimeFrameGetPrice( "O", inDaily, shift=-2,expandFirst);
e=H>DOD;
g=H>R_do_2;
PlotShapes(e*shapeSmallUpTriangle,colorBlue,0,L,-20);
PlotShapes(g*shapeSmallUpTriangle,colorRed,0,L,-40);
Plot(doD,"DO",colorGreen);
Plot(R_DO_2,"DO_1",colorGreen,32);

Не забудьте про режим экспанд ферст - без него никак...
А с ним - логика нормальная (ну, кроме использования вместо реф - шифт) Но хотя бы в остальном как то логично и одинаково что для отображения, что для сравнения на разных удалениях от текущего - меняется только чиселка в шифт.
Вот если бы хотя бы так было с другими переменными - цены бы не было имSmile)) (Томашу и к)

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
Sergiovy



Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск

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

000 писал(а):
Обращаться к прошлому, позапрошлому и т.д.
*************

//////////////////
Кино и немцы.
Приветствую, еще не окончательно запутавшихся в компрессах и экспандахSmile
Научился обращаться к прошлым значениям как к ценам, так и к переменным, научился отображать чего то там.
Не могу сделать так, как на дневном графике:
Что есть на дневном графике: например ххв(н,2); ллв(L,2);
Пусть еще MID - средняя цена дня.
Что видно на днях, без всяких компрессов/экспандов:
Для определенности обозначис сегодняшнее число и время , пусть 05 Мая 2010 г 12 00 дня. Итак, видно:
- вчерашний ххв, ллв, мид, ну соответственно позавчерашний итд, причем вчерашний например ххв отображается над шкалой времени 04 Мая 2010 г - весь день, позавчерашний над 03 Мая итд И все остальные переменные на месте.
Сегодня: Видно среднюю цену дня (0505) на 12 00 часов, видно линиию ххв,2 если текущий достигнутый хай на 12 00 меньше - чем вчерашнее ххв, то линия ххв,2 совпадает со вчерашней, а если сегодня хай был выше, то и новая линия ххв,2 выше вчерашнего ххв. Аналогично с ллв. Ну, МИД сам по себе движетсятуда/сюда.
Вот простая и ясная картина.

Теперь переходим на младший фрейм, пытаемся всеми возможными способами распаковать/запаковать итд все эти переменные и хоть убей не получается увидеть то же самое.
Или сегодня (над шкалой сегодня) висит ххв за 04 мая (экспанд ласт),
или висит уже будущее ххв, которое было достигнуто или нет за весь день. -экспанд ферст, но у нас то последняя свеча 12-00, на кой мне будущее? и зачем мне прошлое?
На днях я что вижу в реальном времени? - см выше. достигнутые на 12 00 итд. а тут никак.
В общем или я уж совсем тупой или все же ами не может так, как в жизни. Ну, а если не может, то может как то можно, хотя бы не рисовать сегодняшние переменные, ну они явно липовые ( или подсмотренные, или вчерашние) И рисовать (для ххв, ллв,) если они уже другие, чем вчера. Для мид нет даже идеи, Кроме той, что в текущий незакрытый бар как то отменить плотвсех этих экспанд/компресс, а вычислять их заново с начала бара, и рисовать только на этом текущем баре...
Или это бред, и есть идеи проще.
(Получить в точности такую же картинку как на днях из младщего фрейма - имеются ввиду не свечки конечно, а линии на любое текущее время...)
Хотя бы так: у кого то получалось такое?
Если да, то киньте идею, плз, где копать?

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Уже писал подобное. Еще раз.
Возми ДНЕВНУЮ свечку за 5 мая (готовую целую дневную свечу) и глядя только на неё скажи какой был Hi, Low и Mid в 12 часов дня. Неможешь? А Ами как это сможет?
Если надо смотреть как менялись дневные параметры в течении дня на внутридневном фрейме то это делается СОВСЕМ НЕ ТАК. Для этого нельзя использовать таймфреймгетпрайс или таймфреймсет.

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



Зарегистрирован: 03.03.2008
Сообщения: 180
Откуда: Мурманск

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

000 писал(а):
Уже писал подобное. Еще раз.
Возми ДНЕВНУЮ свечку за 5 мая (готовую целую дневную свечу) и глядя только на неё скажи какой был Hi, Low и Mid в 12 часов дня. Неможешь? А Ами как это сможет?
Если надо смотреть как менялись дневные параметры в течении дня на внутридневном фрейме то это делается СОВСЕМ НЕ ТАК. Для этого нельзя использовать таймфреймгетпрайс или таймфреймсет.


Привет!
Олег, я нахожусь в точке 05 мая 12 часов. все!
У меня нет полной свечи за 05 мая.
Если я смотрю на дневки - то я вижу все до 12-00 - как описано.
Если я перехожу на 5 мин (дата у меня 1 минутная) без всяких компрессов. - то глазами тоже вижу где был дневной макс мин.
Даже барреплай показывает это.
Но стоит мне попробовать нарисоовать эти дневные линии из 5 мин графика, используя ну все эти временные выкрутасы - все - никак такую картину не получить.
Ами не надо получать дневную картину на 12 часов при полностью закрытой дневной свече. Ее просто еще нету. Надо получить точно такую же картинку как на дневках, только свечек будет больше, в зависимости от фрейма, но линии то должны быть там же?
И если не так, то как? Кинь идею плз!
Не надо забывать, что есть еще линии прошлого дня и позапрошлого дня, их бы тоже на месте не мешало бы увидеть - как раз над своими датами. Слава богу, других нету.

В общем я тут повозился - когда барреплай работает, то как то получается похоже - видимо АМИ тогда имитирует "незнание" будущих значений переменных.
А когда просто крутишь график мышкой - ни фига. Картинка по линиям или сдвинута или видны будущие значения....
Эта идея рисовать (плот) отдельно последний бар (дневной, в виде развернутых свеч меньшего фрейма)- это не то?
Или есть другие способы?
Подскажи плз как все таки это можно сделать? Лучше со своей оценкой сложности. После сидения неск дней я конечно научился в мозгах все переворачивать в норм вид, Но нутро никак не хочет смириться с такими проблемами.
Может вот так:
при прокручивании по барам на младшем фрейме - линии со старшего фрейма ( с последней свечи старшего фрейма) - ведут себя не так, как вели себя в реале. а тупо стоят на месте или вчерашние или будущие, но никак не те, которые должны были быть.
Вот ты говоришь, что АМи не знает, но все же данные есть по 1 минуте - бери и тупо прогоняй ( расчитывай последнюю живую свечку старшего фрейма из свечек младшего) Вроде не должно быть это сложно...

_________________
"Единственная pабота, достойная нас, — pабота над собой". Шон де Уоppен
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Ясн. Вот если данные заканциваются 5/05/2010 12:00, то Ами нарисует правильно, то, что есть на текущий момент, но если данные есть и ты их просто спрятал за правый край шкалы, то он их видит. И ничего тут поделать нельзя.

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



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

СообщениеДобавлено: Вс Янв 23, 2011 5:44 pm Ответить с цитатой Вернуться к началу

Написал простой код:
Код:
a = Param("days",1, -10, 10, 1);

daily_open = TimeFrameCompress (Open, inDaily);
daily_open = TimeFrameExpand( daily_open, inDaily);

daily_High = TimeFrameCompress ( Ref(High, a), inDaily);
daily_High = TimeFrameExpand( daily_high, inDaily);

Plot( daily_open, "Open", colorRed );
Plot( daily_high, "High", colorBlue ); 

Перетащил на часовки:
Image

И видно, что часовки пробивают High, сначала подумал, что High дня берётся в конце дня, но и это не подходит - достаточно взглянуть как он едва-едва отходит от дневного опена на этих же часовках. Прикрутил ref, но результаты лучше не стали.

Хотел видеть дневной хай (лоу) на часовках до их реального появления.
Посмотреть профиль Отправить личное сообщение ICQ Number
kosbar



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

СообщениеДобавлено: Вс Янв 23, 2011 6:20 pm Ответить с цитатой Вернуться к началу

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


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

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

Это можно только не при помощи функций работы с фременными интервалами. Для High вот так
Код:

NewDay = Day() != Ref(Day(), -1);
Hi = HighestSince(NewDay, H, 1);

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen