Автор |
Сообщение |
Sturman
Зарегистрирован: 24.09.2009
Сообщения: 17
|
Нужно нарисовать опорную линию уровня, чтобы она проходила через весь экран.
Если делаю
Код: |
Plot (Level1, "Level1", colorBlack, styleLine + 32); |
то линия рисуется ступенчато, а мне нужно зафиксировать только последнее значение.
Если делаю
Код: |
PlotGrid (Level1, colorBlack); |
то рисует с округлением, а не точное значение.
Как быть? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
Plot (LastValue(Level1), "Level1", colorBlack, styleLine + 32);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
Здравствуйте . В настройках Quik , в индикаторах на графике можно показать горизонтальной линией уровень цены ,
надо закодировать это в Ami . Делаю так
Level1=C;
Plot ( Level1, " ", colorBlue, StyleLine );
но получается просто кривая повторяющая цену . |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
Level1=LastValue(C); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
Совмещаю в одном окне горизонтальную линию уровня цены и моментум,
_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
Сообщения: 9106
|
Разумеется его будет плющить. Цена может быть очень большой, а моментум маленький. И все это надо на один график.
Попробуй так
Код: |
_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
Сообщения: 99
|
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
|
Здравствуйте.
У меня такой вопрос.
Почему-то низкоуровневая графика (Low-level graphics) рисуется поверх горизонтальной оси времени. Можно ли сделать так, чтобы горизонтальная ось времени была поверх низкоуровневой графики?
Я экспериментировал с GfxSetZOrder - не помогает. ( |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
GfxSetOverlayMode( mode = 1 ); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
Попробовал эту функцию.
Но всё равно объекты низкоуровневой графики налезают на ось времени. Точнее на ту область, где указаны метки времени.
Кроме того, линии сетки становятся поверх низкоуровневой графики. И невозможно использовать GfxSetZOrder. ( |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Объекты налезают, но получаются под осью времени. Т.е. ось на них видно.
К сожалению я не знаю как сделать чтобы объекты были ниже оси времени и в то же время выше уровня сетки. По моему это не возможно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
У меня есть соблазн самому нарисовать горизонтальную ось времени с помощью той же низкоуровневой графики. Но тогда придётся и метки времени самому расставлять.
Я заметил, что они совпадают с вертикальными уровнями сетки. Есть ли какой-нибудь способ узнать из кода AFL где проходят эти вертикальные линии сетки? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Черт, не знаю. Подумаю.
Сам думал предложить нарисовать горизонтальную ось. Но, блин, геморой. Оно того стоит? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Swell
Зарегистрирован: 18.01.2013
Сообщения: 117
|
Если какого-нибудь простого способа нет, то действительно оно того не стоит. Не думал, что это может вызвать такие сложности.
Придётся как-нибудь обойтись.
Но вообще это недосмотр производителя данного ПО... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Aleksandr
Зарегистрирован: 13.11.2011
Сообщения: 99
|
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 );
линия цены стоит на месте .. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|