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


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

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

Код:
GfxSetOverlayMode( mode = 1 ) ;

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


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

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

или
Код:

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

СообщениеДобавлено: Чт Мар 31, 2016 11:20 am Ответить с цитатой Вернуться к началу

GfxSetZOrder - как раз то, что доктор прописал.
Олег, спасибо. Ты как всегда меня выручил).

Правда GfxSetZOrder отсутствует в моей версии Ами. Но есть в последующей. Похоже придётся мигрировать....

А GfxSetOverlayMode не совсем то, что надо. Эта функция помещает низкоуровневую графику либо поверх всех элементов карты, либо ниже всех элементов карты. А хотелось бы где-нибудь между ними...
Посмотреть профиль Отправить личное сообщение
trashfx



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

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

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

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

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

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

Здравствуйте, помогите пожалуйста новичку, ни-как не могу сообразить, как, например получить максимальный Хай в период времени с 16.30 до 18.30. Заранее спасибо. (голову сломал))
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Апр 08, 2016 3:35 pm Ответить с цитатой Вернуться к началу

Код:

BeginTime = 163000;
PremarcetHigh = HighestSince(BeginTime, H, 1);

Это максимальная цена начиная с 16:30 Как остановить поиск максимума после 18:30 подумай сам. Не придумаешь - пиши. Smile

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



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

СообщениеДобавлено: Пт Апр 08, 2016 3:54 pm Ответить с цитатой Вернуться к началу

highestsince( EXPRESSION, ARRAY, Nth = 1 )
Возвращает число баров прошедших с максимума случившегося после того, как выражение EXPRESSION было истинным Nth раз назад
т.е. это идет подсчет баров, а мне необходимо знать цену, я думаю надо цикл использовать, но подобраться к циклу не могу,
примерно так должно быть

TimePoz=TimeNum() >= 163000 AND TimeNum() <= 183000 ;
внутри цикла
MaxH=ValueWhen(TimePoz,H)
на выходе должно получиться максимальный хай в это промежуток времени.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Апр 08, 2016 4:22 pm Ответить с цитатой Вернуться к началу

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

СообщениеДобавлено: Пт Апр 08, 2016 4:32 pm Ответить с цитатой Вернуться к началу

Линия хаи каждого бара отрисовывает) Sad
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Бля...
Прошу прощения. Поспешишь - людей насмешишь...

Код:
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

СообщениеДобавлено: Вс Апр 10, 2016 10:55 am Ответить с цитатой Вернуться к началу

Спасибо Олег, очень помог.

Остановку максимума после 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

СообщениеДобавлено: Вс Апр 10, 2016 6:14 pm Ответить с цитатой Вернуться к началу

Ага. Все правильно.

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



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

СообщениеДобавлено: Вт Апр 19, 2016 1:01 pm Ответить с цитатой Вернуться к началу

Подскажите пожалуйста, как покупать в определенный день, например 28 апреля
Buy = DateTime () == StrToDateTime("2011-04-28 11:00");, что то типо этого, но без года.
Посмотреть профиль Отправить личное сообщение
DMITRY



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

СообщениеДобавлено: Вт Апр 19, 2016 2:20 pm Ответить с цитатой Вернуться к началу

Код:
buy = month() == 4 AND Day() == 28;
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen