Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
GfxSetOverlayMode( mode = 1 ) ; |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
или
Код: |
GfxSetZOrder( 0 );
GfxSelectSolidBrush(colorRed);
GfxRectangle(5, 5, 400, 200);
Plot(C, "", colorBlack, styleCandle, Null, Null, 0, 5, 1);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
GfxSetZOrder - как раз то, что доктор прописал.
Олег, спасибо. Ты как всегда меня выручил).
Правда GfxSetZOrder отсутствует в моей версии Ами. Но есть в последующей. Похоже придётся мигрировать....
А GfxSetOverlayMode не совсем то, что надо. Эта функция помещает низкоуровневую графику либо поверх всех элементов карты, либо ниже всех элементов карты. А хотелось бы где-нибудь между ними... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
Swell писал(а): |
Вобщем проблема в том, что низкоуровневая графика не имеет параметра Z-Order... Она либо поверх всей карты, либо за ней. Один из вариантов - нарисовать линии сетки с помощью той же низкоуровневой графики... |
That's not true. You guys always claim things that are not based on actual facts. You should not base your assumptions on technology of years ago but on current technology.
As Oleg has pointed out, there is GfxSetZOrder() (being available for a few years already) which provides z-shift from level -128 to level 128. -128 is bottommost level , 128 is topmost level.
BTW, GfxSetZOrder can be used multiple times with different shiftings within the same code. So it is very flexible.
GfxSetOverlayMode is older technology which provides less flexible z-shifting. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
trashfx писал(а): |
Swell писал(а): |
Вобщем проблема в том, что низкоуровневая графика не имеет параметра Z-Order... Она либо поверх всей карты, либо за ней. Один из вариантов - нарисовать линии сетки с помощью той же низкоуровневой графики... |
That's not true. You guys always claim things that are not based on actual facts. You should not base your assumptions on technology of years ago but on current technology.
As Oleg has pointed out, there is GfxSetZOrder() (being available for a few years already) which provides z-shift from level -128 to level 128. -128 is bottommost level , 128 is topmost level.
BTW, GfxSetZOrder can be used multiple times with different shiftings within the same code. So it is very flexible.
GfxSetOverlayMode is older technology which provides less flexible z-shifting. |
Example
Код: |
// z order
Plot( C, "Price", colorDefault, styleLine, Null, Null, 0, 0, 2 );
GraphGridZOrder = 1;
GfxSetZOrder( 0 );
GfxSelectSolidBrush( colorGreen );
GfxCircle( 100, 100, 100 );
GfxSetZOrder( -1 );
GfxSelectSolidBrush( colorRed );
GfxCircle( 150, 150, 100 );
GfxSetZOrder( -2 );
GfxSelectSolidBrush( colorBlue );
GfxCircle( 180, 180, 100 );
/*
In this example green circle would be plotted below grid lines but above price chart and other Gfx,
red would show behind price chart but above blue.
As you noticed using GfxSetZOrder you will be able to change the natural ordering of plots
Best regards,
Tomasz Janeczko
amibroker.com*/ |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
Sergey51
Зарегистрирован: 05.09.2015
Сообщения: 30
|
Здравствуйте, помогите пожалуйста новичку, ни-как не могу сообразить, как, например получить максимальный Хай в период времени с 16.30 до 18.30. Заранее спасибо. (голову сломал)) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
BeginTime = 163000;
PremarcetHigh = HighestSince(BeginTime, H, 1);
|
Это максимальная цена начиная с 16:30 Как остановить поиск максимума после 18:30 подумай сам. Не придумаешь - пиши. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Sergey51
Зарегистрирован: 05.09.2015
Сообщения: 30
|
highestsince( EXPRESSION, ARRAY, Nth = 1 )
Возвращает число баров прошедших с максимума случившегося после того, как выражение EXPRESSION было истинным Nth раз назад
т.е. это идет подсчет баров, а мне необходимо знать цену, я думаю надо цикл использовать, но подобраться к циклу не могу,
примерно так должно быть
TimePoz=TimeNum() >= 163000 AND TimeNum() <= 183000 ;
внутри цикла
MaxH=ValueWhen(TimePoz,H)
на выходе должно получиться максимальный хай в это промежуток времени. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
highestsince возвращает максимальное значение после того как выражение было истинным.
Цитата: |
Returns the highest ARRAY value since EXPRESSION was true on the Nth most recent occurrence |
Код: |
BeginTime = 163000;
TH = HighestSince(BeginTime, H, 1);
Plot(C, "", colorBlack, styleCandle);
Plot(TH, "", colorRed); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Sergey51
Зарегистрирован: 05.09.2015
Сообщения: 30
|
Линия хаи каждого бара отрисовывает) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Бля...
Прошу прощения. Поспешишь - людей насмешишь...
Код: |
BeginTime = 163000;
BeginTime = TimeNum() >= BeginTime AND Ref(TimeNum(), -1) < BeginTime;
TH = HighestSince(BeginTime, H, 1);
Plot(C, "", colorBlack, styleCandle);
Plot(TH, "", colorRed); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Sergey51
Зарегистрирован: 05.09.2015
Сообщения: 30
|
Спасибо Олег, очень помог.
Остановку максимума после 18.30 решил так
BeginTime = 163000;
BeginTime = TimeNum() >= BeginTime AND Ref(TimeNum(), -1) < BeginTime;
TH = HighestSince(BeginTime, H, 1);
PriceS=ValueWhen(TimeNum() == 183000 ,TH);
Plot(C, "", colorBlack, styleCandle);
Plot(PriceS, "", colorRed); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ага. Все правильно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Sergey51
Зарегистрирован: 05.09.2015
Сообщения: 30
|
Подскажите пожалуйста, как покупать в определенный день, например 28 апреля
Buy = DateTime () == StrToDateTime("2011-04-28 11:00");, что то типо этого, но без года. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
DMITRY
Зарегистрирован: 18.09.2009
Сообщения: 179
|
Код: |
buy = month() == 4 AND Day() == 28; |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|