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



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

СообщениеДобавлено: Ср Окт 07, 2009 12:25 pm Ответить с цитатой Вернуться к началу

Нужно нарисовать опорную линию уровня, чтобы она проходила через весь экран.

Если делаю
Код:
Plot (Level1, "Level1", colorBlack, styleLine + 32);

то линия рисуется ступенчато, а мне нужно зафиксировать только последнее значение.

Если делаю
Код:
PlotGrid (Level1, colorBlack);

то рисует с округлением, а не точное значение.

Как быть?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Окт 07, 2009 9:13 pm Ответить с цитатой Вернуться к началу

Код:

Plot (LastValue(Level1), "Level1", colorBlack, styleLine + 32);

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



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

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

Здравствуйте . В настройках Quik , в индикаторах на графике можно показать горизонтальной линией уровень цены ,
надо закодировать это в Ami . Делаю так
Level1=C;
Plot ( Level1, " ", colorBlue, StyleLine );
но получается просто кривая повторяющая цену .
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Код:
Level1=LastValue(C);

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



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

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

Совмещаю в одном окне горизонтальную линию уровня цены и моментум,
_SECTION_BEGIN("Momentum");
function Momentum( array, period )
{
return array - Ref( array, -period );
}

Plot( Momentum( ParamField( "Field" ), Param("Period", 10, 1, 100 ) ),
_DEFAULT_NAME(), ParamColor("Color", ColorCycle ) );

_SECTION_END();
_SECTION_BEGIN("L") ;
Level1=LastValue(C);
Plot ( Level1, " ", colorBlue, StyleLine );
_SECTION_END();
а график плющит ?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Разумеется его будет плющить. Цена может быть очень большой, а моментум маленький. И все это надо на один график.
Попробуй так
Код:

_SECTION_BEGIN("Momentum");
function Momentum( array, period )
{
   return array - Ref( array, -period );
}

Plot( Momentum( ParamField( "Field" ), Param("Period", 10, 1, 100 ) ),
_DEFAULT_NAME(), ParamColor("Color", ColorCycle ) );

_SECTION_END();
_SECTION_BEGIN("L") ;
Level1=LastValue(C);
Plot ( Level1, " ", colorBlue, styleLine|styleOwnScale );
_SECTION_END();

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



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

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

000 писал(а):
Разумеется его будет плющить. Цена может быть очень большой, а моментум маленький. И все это надо на один график.
Попробуй так
Код:

_SECTION_BEGIN("Momentum");
function Momentum( array, period )
{
   return array - Ref( array, -period );
}

Plot( Momentum( ParamField( "Field" ), Param("Period", 10, 1, 100 ) ),
_DEFAULT_NAME(), ParamColor("Color", ColorCycle ) );

_SECTION_END();
_SECTION_BEGIN("L") ;
Level1=LastValue(C);
Plot ( Level1, " ", colorBlue, styleLine|styleOwnScale );
_SECTION_END();

Спасибо.
Посмотреть профиль Отправить личное сообщение
Swell



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

СообщениеДобавлено: Вс Июл 18, 2021 5:30 pm Ответить с цитатой Вернуться к началу

Здравствуйте.
У меня такой вопрос.
Почему-то низкоуровневая графика (Low-level graphics) рисуется поверх горизонтальной оси времени. Можно ли сделать так, чтобы горизонтальная ось времени была поверх низкоуровневой графики?
Я экспериментировал с GfxSetZOrder - не помогает. (
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Июл 19, 2021 9:33 am Ответить с цитатой Вернуться к началу

Код:
GfxSetOverlayMode( mode = 1 );

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



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

СообщениеДобавлено: Пн Июл 19, 2021 2:03 pm Ответить с цитатой Вернуться к началу

Попробовал эту функцию.
Но всё равно объекты низкоуровневой графики налезают на ось времени. Точнее на ту область, где указаны метки времени.
Кроме того, линии сетки становятся поверх низкоуровневой графики. И невозможно использовать GfxSetZOrder. (
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Июл 19, 2021 3:58 pm Ответить с цитатой Вернуться к началу

Объекты налезают, но получаются под осью времени. Т.е. ось на них видно.
К сожалению я не знаю как сделать чтобы объекты были ниже оси времени и в то же время выше уровня сетки. По моему это не возможно.

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



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

СообщениеДобавлено: Вт Июл 20, 2021 11:09 am Ответить с цитатой Вернуться к началу

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


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

СообщениеДобавлено: Вт Июл 20, 2021 4:38 pm Ответить с цитатой Вернуться к началу

Черт, не знаю. Подумаю.
Сам думал предложить нарисовать горизонтальную ось. Но, блин, геморой. Оно того стоит?

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



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

СообщениеДобавлено: Ср Июл 21, 2021 4:04 pm Ответить с цитатой Вернуться к началу

Если какого-нибудь простого способа нет, то действительно оно того не стоит. Не думал, что это может вызвать такие сложности.
Придётся как-нибудь обойтись.
Но вообще это недосмотр производителя данного ПО...
Посмотреть профиль Отправить личное сообщение
Aleksandr



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

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

Aleksandr писал(а):
000 писал(а):
Разумеется его будет плющить. Цена может быть очень большой, а моментум маленький. И все это надо на один график.
Попробуй так
Код:

_SECTION_BEGIN("Momentum");
function Momentum( array, period )
{
   return array - Ref( array, -period );
}

Plot( Momentum( ParamField( "Field" ), Param("Period", 10, 1, 100 ) ),
_DEFAULT_NAME(), ParamColor("Color", ColorCycle ) );

_SECTION_END();

_SECTION_BEGIN("L") ;
Level1=LastValue(C);
Plot ( Level1, " ", colorBlue, styleLine|styleOwnScale );
_SECTION_END();

Спасибо.

Олег Здравствуй . Время будет посмотри пожалуйста код
_SECTION_BEGIN("MACD");
r1 = Param( "Fast avg", 12, 2, 200, 1 );
r2 = Param( "Slow avg", 26, 2, 200, 1 );
r3 = Param( "Signal avg", 9, 2, 200, 1 );
Plot( ml = MACD(r1, r2), StrFormat(_SECTION_NAME()+"(%g,%g)", r1, r2), ParamColor("MACD color", colorRed ), ParamStyle("MACD style") );
Plot( sl = Signal(r1,r2,r3), "Signal" + _PARAM_VALUES(), ParamColor("Signal color", colorBlue ), ParamStyle("Signal style") );

Buy = Cross(ml, sl);
Sell = Cross(sl, ml);
Short=Sell;
Cover=Buy;

shape = Buy * shapeUpArrow + Sell * shapeDownArrow;
PlotShapes( shape, IIf( Buy, colorGreen, colorRed ), 0, ml );
_SECTION_END();

Level1=LastValue(C);
Plot ( Level1, " ", colorBlue, styleLine|styleOwnScale );
линия цены стоит на месте ..
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen